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()); }