sodoff-mmo/src/CommandHandlers/ChatMessageHandler.cs
2024-04-07 15:42:21 +02:00

51 lines
1.8 KiB
C#

using sodoffmmo.Attributes;
using sodoffmmo.Core;
using sodoffmmo.Data;
namespace sodoffmmo.CommandHandlers;
[ExtensionCommandHandler("SCM")]
class ChatMessageHandler : ICommandHandler {
public void Handle(Client client, NetworkObject receivedObject) {
if (!Configuration.ServerConfiguration.EnableChat) {
ChatDisabled(client, receivedObject);
return;
}
Chat(client, receivedObject);
}
public void ChatDisabled(Client client, NetworkObject receivedObject) {
NetworkObject cmd = new();
NetworkObject data = new();
data.Add("arr", new string[] { "CMR", "-1", "-1", "1", "Unfortunately, chat has been disabled by server administrators", "", "1", "Server" });
cmd.Add("c", "CMR");
cmd.Add("p", data);
NetworkPacket packet = NetworkObject.WrapObject(1, 13, cmd).Serialize();
client.Send(packet);
}
public void Chat(Client client, NetworkObject receivedObject) {
if (client.PlayerData.DiplayName == "")
return;
string message = receivedObject.Get<NetworkObject>("p").Get<string>("chm");
NetworkObject cmd = new();
NetworkObject data = new();
data.Add("arr", new string[] { "CMR", "-1", client.PlayerData.Uid, "1", message, "", "1", client.PlayerData.DiplayName });
cmd.Add("c", "CMR");
cmd.Add("p", data);
NetworkPacket packet = NetworkObject.WrapObject(1, 13, cmd).Serialize();
client.Room.Send(packet, client);
cmd = new();
data = new();
data.Add("arr", new string[] { "SCA", "-1", "1", message, "", "1" });
cmd.Add("c", "SCA");
cmd.Add("p", data);
packet = NetworkObject.WrapObject(1, 13, cmd).Serialize();
client.Send(packet);
}
}