// Parses message incoming from the player
public void ParseMessage(string message, bool fromConsole)
{
if (DateTime.Now < mutedUntil)
{
return;
}
switch (Commands.GetMessageType(message))
{
case MessageType.Chat:
if (CheckChatSpam())
{
return;
}
info.linesWritten++;
string displayedName = nick;
if (world.config.GetBool("ClassPrefixesInChat"))
{
displayedName = info.playerClass.prefix + displayedName;
}
if (world.config.GetBool("ClassColorsInChat") && info.playerClass.color != "" && info.playerClass.color != Color.White)
{
displayedName = info.playerClass.color + displayedName + Color.White;
}
world.SendToAll(PacketWriter.MakeMessage(displayedName + ": " + message), null);
world.log.Log("{0}: {1}", LogType.Chat, name, message);
break;
case MessageType.Command:
world.log.Log("{0}: {1}", LogType.UserCommand, name, message);
world.cmd.ParseCommand(this, message, fromConsole);
break;
case MessageType.PrivateChat:
if (CheckChatSpam())
{
return;
}
string otherPlayerName = message.Substring(1, message.IndexOf(' ') - 1);
Player otherPlayer = world.FindPlayer(otherPlayerName);
if (otherPlayer != null)
{
world.log.Log("{0} to {1}: {2}", LogType.Chat, name, otherPlayer.name, message);
otherPlayer.Send(PacketWriter.MakeMessage(Color.Gray + "from " + name + ": " + message.Substring(message.IndexOf(' ') + 1)));
Send(PacketWriter.MakeMessage(Color.Gray + "to " + otherPlayer.name + ": " + message.Substring(message.IndexOf(' ') + 1)));
}
else
{
world.NoPlayerMessage(this, otherPlayerName);
}
break;
case MessageType.ClassChat:
if (CheckChatSpam())
{
return;
}
string className = message.Substring(2, message.IndexOf(' ') - 2);
PlayerClass playerClass = world.classes.FindClass(className);
if (playerClass != null)
{
world.log.Log("{0} to {1}: {2}", LogType.ClassChat, name, playerClass.name, message);
Packet classMsg = PacketWriter.MakeMessage(Color.Gray + "[" + playerClass.color + playerClass.name + Color.Gray + "]" + name + ": " + message.Substring(message.IndexOf(' ') + 1));
world.SendToClass(classMsg, playerClass);
if (info.playerClass != playerClass)
{
Send(classMsg);
}
}
else
{
Message("No such class: \"" + className.Substring(1) + "\"");
}
break;
}
}