public void On_CommandPermission(CommandPermissionEvent cpe) { if (debug) { if (!HasPermission(cpe.User.GameID, cpe.Cmd)) { Debug.Log(cpe.User + " with steamid " + cpe.User.GameID + " attempted to executed command " + cpe.ChatCommand); } return; } }
// chat.say().Hooks.Chat() public static void Command(ConsoleSystem.Arg arg) { Player player = Server.GetPlayer(arg.Player()); string[] args = arg.ArgsStr.Substring(2, arg.ArgsStr.Length - 3).Replace("\\", "").Split(new string[]{ " " }, StringSplitOptions.None); CommandEvent cmd = new CommandEvent(player, args); if (cmd.cmd == "") return; foreach (KeyValuePair<string, BasePlugin> pl in PluginLoader.GetInstance().Plugins) { ChatCommand[] commands = pl.Value.chatCommands.getChatCommands(cmd.cmd); foreach (ChatCommand chatCmd in commands) { if (chatCmd.callback == null) continue; CommandPermissionEvent permission = new CommandPermissionEvent(player, args, chatCmd); OnCommandPermission.OnNext(permission); if (permission.blocked) { player.Message(permission.Reply); continue; } try { chatCmd.callback(cmd.args, player); } catch (Exception ex) { Logger.LogError(chatCmd.plugin.FormatException(ex)); } } } OnCommand.OnNext(cmd); if (cmd.Reply != "") arg.ReplyWith(cmd.Reply); }