Beispiel #1
0
        /// <summary>
        /// Process a packet sent by user.
        /// </summary>
        /// <param name="sender">Sender user</param>
        /// <param name="command">Packet</param>
        public void ProcessUserPacket(OnlineUser sender, Packet packet)
        {
            User          user    = Users[sender.Username];
            CommandPacket command = new CommandPacket(packet);

            switch (command.command.ToLower())
            {
            case "say":                 //< User chat
                UserChat(sender, command);
                break;

            case "me":                  //< User action
                UserAction(sender, command);
                break;

            case "tell":                //< User whisper
                UserWhisper(sender, command);
                break;

            case "changename":          //< User change name
                UserChangeName(sender, command);
                break;

            case "list":                //< User list all messages
                UserGetOnlineList(sender, command);
                break;

            case "info":                //< User get user information
                UserGetInfo(sender, command);
                break;

            case "keep-alive":          //< Keep-Alive packet
                sender.KeepAlive();
                break;

            case "disconnect":          //< User disconnect
                DisconnectMessage(sender, "server", "User disconnected.");
                Disconnect(sender.Username);
                break;

            case "broadcast":
                AdminBroadcast(sender, command);
                break;

            case "mute":
                AdminMute(sender, command);
                break;

            case "unmute":
                AdminUnmute(sender, command);
                break;

            case "ban":
                AdminBan(sender, command);
                break;

            case "unban":
                AdminUnban(sender, command);
                break;

            case "setadmin":
                AdminSetAdmin(sender, command);
                break;

            case "unsetadmin":
                AdminUnsetAdmin(sender, command);
                break;

            default:                    //< Invalid command
                ServerMessage("server", sender, $"\\crInvalid command \"{command.command}\"");
                break;
            }
        }