/// <summary> /// Adds / Updates a command to the command phone /// </summary> /// <param name="cmdTrig">The 'command' used to trigger this command. ex. /rules</param> /// <param name="cmd">The command class for this command.</param> public void UpdateCommand(string cmdTrig, Command cmd) { CommandSettings.SelectGroup(cmdTrig); CommandSettings.Write("Plugin", cmd.Plugin); CommandSettings.Write("Group", cmd.Group); CommandSettings.Write("Help", cmd.Help); CommandSettings.Write("Console", cmd.Console.ToString()); CommandSettings.Write("AllPerms", cmd.AllPerms.ToString()); CommandSettings.Write("UsePerms", PermissionContainer.PermissionsToString(cmd.UsePermissions)); CommandSettings.Write("ShowPerms", PermissionContainer.PermissionsToString(cmd.ShowPermissions)); CommandSettings.SaveFile(); }
/// <summary> /// Loads scripted commands, and command modifications from file. /// </summary> public void LoadCommands() { foreach (var id in CommandSettings.SettingsDictionary.Keys) { CommandSettings.SelectGroup(id); Command myCmd; if (!CommandDict.TryGetValue(id, out myCmd)) { myCmd = new Command { Plugin = CommandSettings.Read("Plugin", ""), Group = CommandSettings.Read("Group", "General"), Help = CommandSettings.Read("Help", ""), Console = bool.Parse(CommandSettings.Read("Console", "false")), AllPerms = bool.Parse(CommandSettings.Read("AllPerms", "false")), UsePermissions = PermissionContainer.SplitPermissions(CommandSettings.Read("UsePerms", "player.chat")), ShowPermissions = PermissionContainer.SplitPermissions(CommandSettings.Read("ShowPerms", "player.chat")), }; AddCommand(id, myCmd); continue; } myCmd.Plugin = CommandSettings.Read("Plugin", ""); myCmd.Group = CommandSettings.Read("Group", "General"); myCmd.Help = CommandSettings.Read("Help", ""); myCmd.Console = bool.Parse(CommandSettings.Read("Console", "false")); myCmd.AllPerms = bool.Parse(CommandSettings.Read("AllPerms", "false")); myCmd.UsePermissions = PermissionContainer.SplitPermissions(CommandSettings.Read("UsePerms", "player.chat")); myCmd.ShowPermissions = PermissionContainer.SplitPermissions(CommandSettings.Read("ShowPerms", "player.chat")); CommandDict[id] = myCmd; } ServerCore.Logger.Log("Commands", "Commands Loaded", LogType.Info); }
/// <summary> /// Function for command registration by lua scripts. /// </summary> /// <param name="command"></param> /// <param name="plugin"></param> /// <param name="group"></param> /// <param name="help"></param> /// <param name="showPermissions"></param> /// <param name="usePermissions"></param> /// <param name="allPerms"></param> /// <param name="console"></param> public void RegisterCommand(string command, string plugin, string group, string help, string showPermissions, string usePermissions, bool allPerms, bool console) { var newCommand = new Command { Plugin = plugin, Group = group, Help = help, AllPerms = allPerms, Console = console, UsePermissions = PermissionContainer.SplitPermissions(usePermissions), ShowPermissions = PermissionContainer.SplitPermissions(showPermissions), }; if (!command.StartsWith("/")) command = "/" + command; AddCommand(command, newCommand); UpdateCommand(command, newCommand); RegisterGroups(); }
/// <summary> /// Function for internal command registration. /// </summary> /// <param name="name"></param> /// <param name="newCommand"></param> public void AddCommand(string name, Command newCommand) { Command myCmd; if (CommandDict.TryGetValue(name, out myCmd)) CommandDict[name] = newCommand; else CommandDict.Add(name, newCommand); }