mirror of
https://github.com/SoDOff-Project/sodoff-mmo.git
synced 2025-10-11 08:18:49 -07:00
Update ChatMessageHandler.cs
This commit is contained in:
parent
15aacc282e
commit
2d86d32275
@ -1,87 +1,88 @@
|
|||||||
using sodoffmmo.Attributes;
|
using sodoffmmo.Attributes;
|
||||||
using sodoffmmo.Core;
|
using sodoffmmo.Core;
|
||||||
using sodoffmmo.Data;
|
using sodoffmmo.Data;
|
||||||
using sodoffmmo.Management;
|
using sodoffmmo.Management;
|
||||||
|
|
||||||
namespace sodoffmmo.CommandHandlers;
|
namespace sodoffmmo.CommandHandlers;
|
||||||
|
|
||||||
[ExtensionCommandHandler("SCM")]
|
[ExtensionCommandHandler("SCM")]
|
||||||
class ChatMessageHandler : CommandHandler {
|
class ChatMessageHandler : CommandHandler {
|
||||||
public override Task Handle(Client client, NetworkObject receivedObject) {
|
public override Task Handle(Client client, NetworkObject receivedObject) {
|
||||||
string message = receivedObject.Get<NetworkObject>("p").Get<string>("chm");
|
string message = receivedObject.Get<NetworkObject>("p").Get<string>("chm");
|
||||||
string messageFilter = message.ToLower();
|
string messageFilter = message.ToLower();
|
||||||
if (ManagementCommandProcessor.ProcessCommand(message, client))
|
if (ManagementCommandProcessor.ProcessCommand(message, client))
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
if (client.TempMuted)
|
if (client.TempMuted)
|
||||||
{
|
{
|
||||||
ClientMuted(client);
|
ClientMuted(client);
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
messageFilter = messageFilter.Replace(",", "");//Hardcoded to remove commas from the message due to some issues
|
messageFilter = messageFilter.Replace(",", "");//Hardcoded to remove commas from the message due to some issues
|
||||||
|
|
||||||
foreach (var replaceable in ChatFilter.ChatFilterConfiguration.charsToRemove)//Rolls through the entire character replacement list
|
foreach (var replaceable in ChatFilter.ChatFilterConfiguration.charsToRemove)//Rolls through the entire character replacement list
|
||||||
{
|
{
|
||||||
if (replaceable.Contains(","))//Checks if the replace string is valid (has a comma)
|
if (replaceable.Contains(","))//Checks if the replace string is valid (has a comma)
|
||||||
{
|
{
|
||||||
string char1 = replaceable.Remove(replaceable.LastIndexOf(','));//Gets the character to be replaced
|
string char1 = replaceable.Remove(replaceable.LastIndexOf(','));//Gets the character to be replaced
|
||||||
string char2 = replaceable.Remove(0, replaceable.LastIndexOf(',') + 1);//Gets the replacement
|
string char2 = replaceable.Remove(0, replaceable.LastIndexOf(',') + 1);//Gets the replacement
|
||||||
messageFilter = messageFilter.Replace(char1, char2);
|
messageFilter = messageFilter.Replace(char1, char2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
messageFilter = messageFilter.Replace(" ", "");
|
messageFilter = messageFilter.Replace(" ", "");
|
||||||
|
|
||||||
foreach (var banned in ChatFilter.ChatFilterConfiguration.FilteredWords)//Rolls through the entire denylist
|
foreach (var banned in ChatFilter.ChatFilterConfiguration.FilteredWords)//Rolls through the entire denylist
|
||||||
{
|
{
|
||||||
if (messageFilter.Contains(banned))//Checks if your message contains a word from the denylist
|
if (messageFilter.Contains(banned))//Checks if your message contains a word from the denylist
|
||||||
{
|
{
|
||||||
Console.WriteLine("Banned message from " + client.PlayerData.Uid + " (" + client.PlayerData.DiplayName + "): \"" + messageFilter + "\", \"" + message + "\" in game: " + client.PlayerData.ZoneName);
|
Console.WriteLine("Banned message from " + client.PlayerData.Uid + " (" + client.PlayerData.DiplayName + "): \"" + messageFilter + "\", \"" + message + "\" in game: " + client.PlayerData.ZoneName);
|
||||||
ClientFilter(client);
|
ClientFilter(client);
|
||||||
if (!ChatFilter.ChatFilterConfiguration.blockedMessage.Equals(""))
|
if (!ChatFilter.ChatFilterConfiguration.blockedMessage.Equals(""))
|
||||||
Chat(client, ChatFilter.ChatFilterConfiguration.blockedMessage);//This replaces the user's message with the message in the string. TODO: Add the string to the chatfilter json for the purpose of customization (How do I do that)
|
Chat(client, ChatFilter.ChatFilterConfiguration.blockedMessage);//This replaces the user's message with the message in the string.
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Configuration.ServerConfiguration.EnableChat && !client.Room.AllowChatOverride)
|
if (!Configuration.ServerConfiguration.EnableChat && !client.Room.AllowChatOverride)
|
||||||
{
|
{
|
||||||
ChatDisabled(client);
|
ChatDisabled(client);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
Console.WriteLine("Message from " + client.PlayerData.Uid + " (" + client.PlayerData.DiplayName + "): \"" + messageFilter + "\", \"" + message + "\" in game: " + client.PlayerData.ZoneName);
|
{
|
||||||
Chat(client, message);
|
Console.WriteLine("Message from " + client.PlayerData.Uid + " (" + client.PlayerData.DiplayName + "): \"" + messageFilter + "\", \"" + message + "\" in game: " + client.PlayerData.ZoneName);
|
||||||
}
|
Chat(client, message);
|
||||||
return Task.CompletedTask;
|
}
|
||||||
}
|
return Task.CompletedTask;
|
||||||
|
}
|
||||||
public void ClientFilter(Client client)
|
|
||||||
{
|
public void ClientFilter(Client client)
|
||||||
client.Send(Utils.BuildServerSideMessage("This message contains a word or phrase not allowed on this server.", "Server"));
|
{
|
||||||
}
|
client.Send(Utils.BuildServerSideMessage("This message contains a word or phrase not allowed on this server.", "Server"));
|
||||||
|
}
|
||||||
public void ChatDisabled(Client client) {
|
|
||||||
client.Send(Utils.BuildServerSideMessage("Unfortunately, chat has been disabled by server administrators", "Server"));
|
public void ChatDisabled(Client client) {
|
||||||
}
|
client.Send(Utils.BuildServerSideMessage("Unfortunately, chat has been disabled by server administrators", "Server"));
|
||||||
|
}
|
||||||
public void ClientMuted(Client client) {
|
|
||||||
client.Send(Utils.BuildServerSideMessage("You have been muted by the moderators", "Server"));
|
public void ClientMuted(Client client) {
|
||||||
}
|
client.Send(Utils.BuildServerSideMessage("You have been muted by the moderators", "Server"));
|
||||||
|
}
|
||||||
public void Chat(Client client, string message) {
|
|
||||||
if (Configuration.ServerConfiguration.Authentication >= AuthenticationMode.RequiredForChat && client.PlayerData.DiplayName == "placeholder") {
|
public void Chat(Client client, string message) {
|
||||||
client.Send(Utils.BuildServerSideMessage("You must be authenticated to use the chat", "Server"));
|
if (Configuration.ServerConfiguration.Authentication >= AuthenticationMode.RequiredForChat && client.PlayerData.DiplayName == "placeholder") {
|
||||||
return;
|
client.Send(Utils.BuildServerSideMessage("You must be authenticated to use the chat", "Server"));
|
||||||
}
|
return;
|
||||||
|
}
|
||||||
client.Room.Send(Utils.BuildChatMessage(client.PlayerData.Uid, message, client.PlayerData.DiplayName), client);
|
|
||||||
|
client.Room.Send(Utils.BuildChatMessage(client.PlayerData.Uid, message, client.PlayerData.DiplayName), client);
|
||||||
NetworkObject cmd = new();
|
|
||||||
NetworkObject data = new();
|
NetworkObject cmd = new();
|
||||||
data.Add("arr", new string[] { "SCA", "-1", "1", message, "", "1" });
|
NetworkObject data = new();
|
||||||
cmd.Add("c", "SCA");
|
data.Add("arr", new string[] { "SCA", "-1", "1", message, "", "1" });
|
||||||
cmd.Add("p", data);
|
cmd.Add("c", "SCA");
|
||||||
NetworkPacket packet = NetworkObject.WrapObject(1, 13, cmd).Serialize();
|
cmd.Add("p", data);
|
||||||
client.Send(packet);
|
NetworkPacket packet = NetworkObject.WrapObject(1, 13, cmd).Serialize();
|
||||||
}
|
client.Send(packet);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user