Exemplo n.º 1
0
        public CommandResult CommandHandlerExternal(String userName, String command, String args, ClientSocket client, ServerSocket server)
        {
            if (String.IsNullOrEmpty(userName) || String.IsNullOrEmpty(command))
            {
                return(null);
            }

            string username = userName;

            try
            {
                CommandManager helper = CommandManager.GetInstance(this);

                String commandMatch = EasyGuess.GetMatchedCommand(helper, command);
                if (String.IsNullOrEmpty(commandMatch))
                {
                    return(null);
                }

                Command c = helper.Items[commandMatch];
                if (c != null)
                {
                    UserCollectionSingletone userCollection = UserCollectionSingletone.GetInstance();
                    User user = userCollection.GetUserByName(userName);
                    if (user == null)
                    {
                        user = new User(userName);
                    }

                    if (user != null && user.Level.IsCommandInList(commandMatch))
                    {
                        string arg1 = "", arg2 = "", arg3 = "";
                        GetArgs(args, out arg1, out arg2, out arg3);
                        c.ClientUser    = user;
                        c.RegArg        = args;
                        c.Client        = client;
                        c.Server        = server;
                        c.TriggerPlayer = userName;
                        CommandResult result;

                        if (arg1.Length > 0 && arg1[0] == '?')
                        {
                            result = c.ExecuteHelp();
                        }
                        else
                        {
                            result = c.Execute(arg1, arg2, arg3, userName);
                        }

                        return(result);
                    }
                }
            }
            catch
            {}
            return(new CommandResult());
        }