コード例 #1
0
    public void Awake()
    {
        if (_instance != null)
        {
            Debug.Log("Why is there already a network state manager?");
        }

        _instance = this;
    }
コード例 #2
0
        // Construct a MPChatCommand from a Chat message
        public MPChatCommand(string message, int sender_connection_id, string sender_player_name, MpTeam sender_player_team, bool isInLobby)
        {
            cmd = Command.None;

            isTeamMessage = NetworkMessageManager.IsTeamMessage(message);
            if (isTeamMessage)
            {
                message = NetworkMessageManager.StripTeamPrefix(message);
            }

            sender_conn    = sender_connection_id;
            sender_name    = sender_player_name;
            sender_team    = sender_player_team;
            sender_message = message;
            needAuth       = false;
            inLobby        = isInLobby;
            senderEntry    = null;

            if (message == null || message.Length < 2 || message[0] != '/')
            {
                // not a valid command
                return;
            }

            // is there an additonal argument to this command?
            // Arguments are separated with space
            int split = message.IndexOf(' ');

            if (split > 0)
            {
                cmdName = message.Substring(1, split - 1);
                if (split + 1 < message.Length)
                {
                    arg = message.Substring(split + 1, message.Length - split - 1);
                }
            }
            else
            {
                cmdName = message.Substring(1, message.Length - 1);
            }

            // detect the command
            cmdName = cmdName.ToUpper();
            if (cmdName == "GP" || cmdName == "GIVEPERM")
            {
                cmd      = Command.GivePerm;
                needAuth = true;
            }
            else if (cmdName == "RP" || cmdName == "REVOKEPERM")
            {
                cmd      = Command.RevokePerm;
                needAuth = true;
            }
            else if (cmdName == "AUTH")
            {
                cmd      = Command.Auth;
                needAuth = false;
            }
            else if (cmdName == "K" || cmdName == "KICK")
            {
                cmd      = Command.Kick;
                needAuth = true;
            }
            else if (cmdName == "B" || cmdName == "BAN")
            {
                cmd      = Command.Ban;
                needAuth = true;
            }
            else if (cmdName == "A" || cmdName == "ANNOY")
            {
                cmd      = Command.Annoy;
                needAuth = true;
            }
            else if (cmdName == "UA" || cmdName == "UNANNOY")
            {
                cmd      = Command.Unannoy;
                needAuth = true;
            }
            else if (cmdName == "KB" || cmdName == "KICKBAN")
            {
                cmd      = Command.KickBan;
                needAuth = true;
            }
            else if (cmdName == "UB" || cmdName == "UNBAN")
            {
                cmd      = Command.Unban;
                needAuth = true;
            }
            else if (cmdName == "BC" || cmdName == "BLOCKCHAT")
            {
                cmd      = Command.BlockChat;
                needAuth = true;
            }
            else if (cmdName == "UBC" || cmdName == "UNBLOCKCHAT")
            {
                cmd      = Command.UnblockChat;
                needAuth = true;
            }
            else if (cmdName == "E" || cmdName == "END")
            {
                cmd      = Command.End;
                needAuth = true;
            }
            else if (cmdName == "S" || cmdName == "START")
            {
                cmd      = Command.Start;
                needAuth = true;
            }
            else if (cmdName == "STATUS")
            {
                cmd = Command.Status;
            }
            else if (cmdName == "SAY" || cmdName == "CHAT")
            {
                cmd = Command.Say;
            }
            else if (cmdName == "T" || cmdName == "TEST")
            {
                cmd = Command.Test;
            }
        }