public bool checkPermission(RACommandEvent ev, ReferenceHub sender, string perm) { if (!sender.CheckPermission("lights.*") || !sender.CheckPermission("lights.")) { ev.Sender.RAMessage(plugin.AccessDenied); return(false); } return(true); }
public (string response, string color) OnCall(ReferenceHub sender, string[] args) { if (!sender.CheckPermission("tc.unmute")) { return(Language.CommandNotEnoughPermissionsError, "red"); } if (args.Length != 1) { return(string.Format(Language.CommandNotEnoughParametersError, 1, Usage), "red"); } Collections.Chat.Player chatPlayer = args[0].GetChatPlayer(); if (chatPlayer == null) { return(string.Format(Language.PlayerNotFoundError, args[0]), "red"); } var mute = LiteDatabase.GetCollection <Collections.Chat.Mute>().FindOne(queryMute => queryMute.Target.Id == chatPlayer.Id && queryMute.Expire > DateTime.Now); if (mute == null) { return(string.Format(Language.PlayerIsNotMutedError, chatPlayer.Name), "red"); } mute.Expire = DateTime.Now; LiteDatabase.GetCollection <Collections.Chat.Mute>().Update(mute); Player.GetPlayer(args[0])?.SendConsoleMessage(Language.UnmuteCommandSuccessPlayer, "green"); return(string.Format(Language.UnmuteCommandSuccessModerator, chatPlayer.Name), "green"); }
public (string response, string color) OnCall(ReferenceHub sender, string[] args) { if (!sender.CheckPermission("tc.showmutes")) { return(Language.CommandNotEnoughPermissionsError, "red"); } if (args.Length == 0) { return(GetPlayerMutes(LiteDatabase.GetCollection <Collections.Chat.Mute>().FindAll().ToList()).ToString(), "white"); } else if (args.Length == 1) { Collections.Chat.Player chatPlayer = args[0].GetChatPlayer(); if (chatPlayer == null) { return(string.Format(Language.PlayerNotFoundError, args[0]), "red"); } return(GetPlayerMutes(LiteDatabase.GetCollection <Collections.Chat.Mute>().Find(mute => mute.Target.Id == chatPlayer.Id).ToList()).ToString(), "white"); } return(Language.CommandTooManyArgumentsError, "red"); }
public (string response, string color) OnCall(ReferenceHub sender, string[] args) { if (!sender.CheckPermission("tc.deletemutes")) { return(Language.CommandNotEnoughPermissionsError, "red"); } if (args.Length == 0) { return(string.Format(Language.DeleteAllMutesSuccess, LiteDatabase.GetCollection <Collections.Chat.Mute>().DeleteAll()), "green"); } else if (args.Length == 1) { Collections.Chat.Player chatPlayer = args[0].GetChatPlayer(); if (chatPlayer == null) { return(string.Format(Language.PlayerNotFoundError, args[0]), "red"); } return(string.Format(Language.DeleteMutesSuccess, LiteDatabase.GetCollection <Collections.Chat.Mute>().DeleteMany(mute => mute.Target.Id == chatPlayer.Id), chatPlayer.Name), "green"); } return(Language.CommandTooManyArgumentsError, "red"); }
public string VoteHandler(ReferenceHub player, int option) { if (CurrentVote != null) { if (!player.CheckPermission("playervote.vote")) { return("You don't have the required permission to vote."); } if (!CurrentVote.Votes.Contains(player.characterClassManager.UserId)) { if (CurrentVote.Options.ContainsKey(option)) { CurrentVote.Counter[option]++; CurrentVote.Votes.Add(player.characterClassManager.UserId); Log.Info("Player " + player.nicknameSync.MyNick + " voted " + CurrentVote.Options[option] + " bringing the counter to " + CurrentVote.Counter[option]); return("Vote accepted!"); } else { return("Vote does not have an option " + option + "."); } } else { return("You've already voted."); } } else { return("There is no vote in progress."); } }
public (string response, string color) OnCall(ReferenceHub sender, string[] args) { if (!sender.CheckPermission("tc.mute")) { return(Language.CommandNotEnoughPermissionsError, "red"); } if (args.Length < 2) { return(string.Format(Language.CommandNotEnoughParametersError, 2, Usage), "red"); } ReferenceHub target = Player.GetPlayer(args[0]); Collections.Chat.Player chatPlayer = args[0].GetChatPlayer(); if (chatPlayer == null) { return(string.Format(Language.PlayerNotFoundError, args[0]), "red"); } if (!double.TryParse(args[1], out double duration) || duration < 1) { return(string.Format(Language.InvalidDurationError, args[1]), "red"); } string reason = string.Join(" ", args.Skip(2).Take(args.Length - 2)); if (string.IsNullOrEmpty(reason)) { return(Language.ReasonCannotBeEmptyError, "red"); } if (chatPlayer.IsChatMuted()) { return(string.Format(Language.PlayerIsAlreadyMutedError, chatPlayer.Name), "red"); } LiteDatabase.GetCollection <Collections.Chat.Mute>().Insert(new Collections.Chat.Mute() { Target = chatPlayer, Issuer = sender.GetChatPlayer(), Reason = reason, Duration = duration, Timestamp = DateTime.Now, Expire = DateTime.Now.AddMinutes(duration) }); if (Configs.showChatMutedBroadcast) { target?.ClearBroadcasts(); target?.Broadcast(Configs.chatMutedBroadcastDuration, string.Format(Configs.chatMutedBroadcast, duration, reason), false); } target?.SendConsoleMessage(string.Format(Language.MuteCommandSuccessPlayer, duration, reason), "red"); return(string.Format(Language.MuteCommandSuccessModerator, chatPlayer.Name, duration, reason), "green"); }
public void OnCommand(ref RACommandEvent ev) { try { if (ev.Command.Contains("REQUEST_DATA PLAYER_LIST SILENT")) { return; } string[] args = ev.Command.ToLower().Split(' '); ReferenceHub sender = ev.Sender.SenderId == "SERVER CONSOLE" || ev.Sender.SenderId == "GAME CONSOLE" ? Player.GetPlayer(PlayerManager.localPlayer) : Player.GetPlayer(ev.Sender.SenderId); if (args[0] == "zdb") { ev.Allow = false; if (!sender.CheckPermission("command")) { ev.Sender.RAMessage("<color=red>Access denied.</color>"); return; } if (args.Length > 1) { if (args[1] == "toggle") { plugin.IsEnabled = !plugin.IsEnabled; if (plugin.IsEnabled) { plugin.Register(); } else { plugin.Unregister(); } Plugin.Config.SetString("zdb_toggle", plugin.IsEnabled.ToString()); plugin.ReloadConfig(); ev.Sender.RAMessage("zdb_toggle has now been set to: " + plugin.IsEnabled.ToString()); return; } else if (args[1] == "reload") { plugin.ReloadConfig(); ev.Sender.RAMessage("<color=green>Configuration values have been reloaded.</color>"); return; } } ev.Sender.RAMessage("Try using \"zdb <toggle/reload>\""); return; } return; } catch (Exception e) { Log.Error("Command error: " + e.StackTrace); } }
public string StopvoteHandler(ReferenceHub player) { if (!player.CheckPermission("playervote.stopvote")) { return("You don't have the required permission to stop votes."); } if (this.StopVote()) { return("Vote stopped."); } else { return("There is not a vote in progress."); } }
internal void RACmd(ref RACommandEvent ev) { string[] args = ev.Command.Split(' '); //Player.StrHubs[ev.Sender.SenderId].CheckPermission("roundmod.setmod"); ReferenceHub player = ev.Sender.SenderId == "SERVER CONSOLE" || ev.Sender.SenderId == "GAME CONSOLE" ? PlayerManager.localPlayer.GetPlayer() : Player.GetPlayer(ev.Sender.SenderId); if (player.CheckPermission("roundmod.reload")) { if (args[0].ToUpper().Equals("RM_RELOAD")) { plugin.ConfigLoad(); ev.Sender.RAMessage("RoundMod config reloaded!", pluginName: plugin.getName); } } if (player.CheckPermission("roundmod.setmod")) { /*if (args[0].ToUpper().Equals("RM_SET_BOSS")) * { * if (args.Length > 1) * { * List<string> vs = new List<string>(args); * vs.RemoveAt(0); * string arg = vs.Join(null, " "); * plugin.curMod = (ModType)Enum.Parse(typeof(ModType), arg); * ev.Sender.RAMessage("Set Active Mods to: " + plugin.curMod.ToString(), pluginName: plugin.getName); * } * else * { * ev.Sender.RAMessage("Active Mods: " + plugin.curMod.ToString(), pluginName: plugin.getName); * * } * }*/ if (args[0].ToUpper().Equals("RM_SET_MOD")) { if (args.Length > 1) { List <string> vs = new List <string>(args); vs.RemoveAt(0); string arg = vs.Join(null, " "); plugin.curMod = (ModType)Enum.Parse(typeof(ModType), arg); ev.Sender.RAMessage("Set Active Mods to: " + plugin.curMod.ToString(), pluginName: plugin.getName); } else { ev.Sender.RAMessage("Active Mods: " + plugin.curMod.ToString(), pluginName: plugin.getName); } } if (args[0].ToUpper().StartsWith("RM_MOD")) { bool found = false; foreach (ModType item in Enum.GetValues(typeof(ModType))) { if (args[0].ToUpper().Equals(("RM_MOD_" + item.ToString()).ToUpper())) { found = true; if (args.Length != 2) { if (plugin.curMod.HasFlag(item)) { plugin.curMod &= ~item; } else { plugin.curMod |= item; } } else { bool res; if (bool.TryParse(args[1], out res)) { if (res) { plugin.curMod |= item; } else { plugin.curMod &= ~item; } } } break; } } if (!found) { //Enum.GetValues(typeof(ModType)).ToArray<ModType>().ToList().FindAll((sel) => plugin.allowedTypes.Contains(sel)); ev.Sender.RAMessage("RoundMod by VirtualBrightPlayz/Brian Zulch\nUsable ModTypes:\n" + plugin.enabledTypes.Join((t) => t.ToString(), "\n") + "\nCommands: RM_MOD\nRM_MOD_<MODTYPE> [true|false]\nRM_SET_MOD <MODTYPEFLAGS>", pluginName: plugin.getName); } } } }
public static void RemoteAdminCommandEvent(ref RACommandEvent ev) { if (ev.Command.Contains("REQUEST_DATA PLAYER_LIST SILENT")) { return; } string[] args = ev.Command.Split(' '); ReferenceHub sender = ev.Sender.SenderId == "SERVER CONSOLE" || ev.Sender.SenderId == "GAME CONSOLE" ? Player.GetPlayer(PlayerManager.localPlayer) : Player.GetPlayer(ev.Sender.SenderId); switch (args[0].ToLower()) { case "ep": ev.Allow = false; if (!sender.CheckPermission("ep.use")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } if (args.Length == 1) { ev.Sender.RaReply("ExiledPermissions#Commands:", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP RELOAD - Reload permissions.", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP ADDGROUP <NAME> - Add group.", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP REMOVEGROUP <NAME> - Remove group.", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP GROUP <NAME> ADD/REMOVE <PERMISSION> - Add/remove permission from group.", true, true, string.Empty); return; } else if (args.Length > 1) { switch (args[1].ToLower()) { case "reload": if (!sender.CheckPermission("ep.reload")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } PermissionPlugin.ReloadPermissions(); ev.Sender.RaReply("ExiledPermissions#Plugin reloaded.", true, true, string.Empty); return; case "addgroup": if (!sender.CheckPermission("ep.addgroup")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } if (args.Length > 2) { PermissionPlugin.ReloadPermissions(); if (PermissionPlugin.permissionsconfig.groups.ContainsKey(args[2])) { ev.Sender.RaReply("ExiledPermissions#Group " + args[2] + " already exists.", true, true, string.Empty); return; } PermissionPlugin.permissionsconfig.groups.Add(args[2], new PermissionPlugin.Group()); PermissionPlugin.SavePermissions(); ev.Sender.RaReply("ExiledPermissions#Group " + args[2] + " has been added.", true, true, string.Empty); } else { ev.Sender.RaReply("ExiledPermissions#EP ADDGROUP <NAME>", true, true, string.Empty); } return; case "removegroup": if (!sender.CheckPermission("ep.removegroup")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } if (args.Length > 2) { PermissionPlugin.ReloadPermissions(); if (!PermissionPlugin.permissionsconfig.groups.ContainsKey(args[2])) { ev.Sender.RaReply("ExiledPermissions#Group " + args[2] + " does not exist.", true, true, string.Empty); return; } PermissionPlugin.permissionsconfig.groups.Remove(args[2]); PermissionPlugin.SavePermissions(); ev.Sender.RaReply("ExiledPermissions#Group " + args[2] + " removed.", true, true, string.Empty); } else { ev.Sender.RaReply("ExiledPermissions#EP REMOVEGROUP <NAME>", true, true, string.Empty); } return; case "group": if (!sender.CheckPermission("ep.group")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } if (args.Length > 3) { switch (args[3].ToLower()) { case "add": if (!sender.CheckPermission("ep.addpermission")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } if (args.Length == 4) { ev.Sender.RaReply("ExiledPermissions#EP GROUP <NAME> ADD <PERMISSION>", true, true, string.Empty); return; } PermissionPlugin.ReloadPermissions(); if (!PermissionPlugin.permissionsconfig.groups.ContainsKey(args[2])) { ev.Sender.RaReply("ExiledPermissions#Group " + args[2] + " does not exist.", true, true, string.Empty); return; } PermissionPlugin.permissionsconfig.groups.TryGetValue(args[2], out PermissionPlugin.Group val); if (!val.permissions.Contains(args[4])) { val.permissions.Add(args[4]); } PermissionPlugin.SavePermissions(); ev.Sender.RaReply("ExiledPermissions#Permission " + args[4] + " for group " + args[2] + " added.", true, true, string.Empty); return; case "remove": if (!sender.CheckPermission("ep.removepermission")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } if (args.Length == 4) { ev.Sender.RaReply("ExiledPermissions#EP GROUP <NAME> REMOVE <PERMISSION>", true, true, string.Empty); return; } PermissionPlugin.ReloadPermissions(); if (!PermissionPlugin.permissionsconfig.groups.ContainsKey(args[2])) { ev.Sender.RaReply("ExiledPermissions#Group " + args[2] + " does not exist.", true, true, string.Empty); return; } PermissionPlugin.permissionsconfig.groups.TryGetValue(args[2], out PermissionPlugin.Group val2); if (val2.permissions.Contains(args[4])) { val2.permissions.Remove(args[4]); } PermissionPlugin.SavePermissions(); ev.Sender.RaReply("ExiledPermissions#Permission " + args[4] + " for group " + args[2] + " removed.", true, true, string.Empty); return; } } else if (args.Length > 2) { if (!PermissionPlugin.permissionsconfig.groups.ContainsKey(args[2])) { ev.Sender.RaReply("ExiledPermissions#Group " + args[2] + " does not exist.", true, true, string.Empty); return; } PermissionPlugin.permissionsconfig.groups.TryGetValue(args[2], out PermissionPlugin.Group val2); ev.Sender.RaReply("ExiledPermissions#Group: " + args[2], true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# Default: " + val2.Default, true, true, string.Empty); if (val2.inheritance.Count != 0) { ev.Sender.RaReply("ExiledPermissions# Inheritance: ", true, true, string.Empty); foreach (string per in val2.inheritance) { ev.Sender.RaReply("ExiledPermissions# - " + per, true, true, string.Empty); } } if (val2.permissions.Count != 0) { ev.Sender.RaReply("ExiledPermissions# Permissions: ", true, true, string.Empty); foreach (string per in val2.permissions) { ev.Sender.RaReply("ExiledPermissions# - " + per, true, true, string.Empty); } } } else { ev.Sender.RaReply("ExiledPermissions#EP GROUP <NAME>", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions#EP GROUP <NAME> ADD/REMOVE <PERMISSION>", true, true, string.Empty); } return; default: ev.Sender.RaReply("ExiledPermissions#Commands:", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP RELOAD - Reload permissions.", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP ADDGROUP <NAME> - Add group.", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP REMOVEGROUP <NAME> - Remove group.", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP GROUP <NAME> - Info about group.", true, true, string.Empty); ev.Sender.RaReply("ExiledPermissions# - EP GROUP <NAME> ADD/REMOVE <PERMISSION> - Add/remove permission from group.", true, true, string.Empty); return; } } break; } }
public void RemoteAdminCommandEvent(ref RACommandEvent ev) { string[] args = ev.Command.Split(' '); ReferenceHub sender = ev.Sender.SenderId == "SERVER CONSOLE" || ev.Sender.SenderId == "GAME CONSOLE" ? Player.GetPlayer(PlayerManager.localPlayer) : Player.GetPlayer(ev.Sender.SenderId); switch (args[0].ToLower()) { case "oban": ev.Allow = false; if (!sender.CheckPermission("oban.use")) { ev.Sender.RaReply("ExiledPermissions#No permission.", true, true, string.Empty); return; } if (args.Length == 1) { ev.Sender.RaReply("OBAN#Commandes:", true, true, string.Empty); ev.Sender.RaReply("#- OBAN - Afficher la liste des commandes.", true, true, string.Empty); ev.Sender.RaReply("#- OBAN STEAMID [SteamID@steam] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); ev.Sender.RaReply("#- OBAN IP [IP] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); ev.Sender.RaReply("#- OBAN USER [SteamID@steam] [IP] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); return; } else if (args.Length > 1) { switch (args[1].ToLower()) { case "steamid": if (args.Length > 3) { string Steamid64 = args[2]; long BannedAt = TimeBehaviour.CurrentTimestamp(); double Expire = (double.TryParse(args[3], out double x)) ? x : -1; string By = sender.characterClassManager.UserId; string Reason = (args.Length > 3) ? string.Join(" ", args.Skip(4)) : string.Empty; Ban BanJSON = new Ban(); BanJSON.Steamid64 = Steamid64; BanJSON.BannedAt = BannedAt; BanJSON.BannedUntil = DateTime.UtcNow.AddMinutes((double)Expire).Ticks; BanJSON.By = By; if (!String.IsNullOrEmpty(Reason)) { BanJSON.Reason = Reason; } String JSON = Serialize.ToJson(BanJSON); String JsonResponse = Methods.Post(Plugin.BanURL, JSON); try { JSON.Success.SuccessResponseJSON json = SanctionSystem.JSON.Success.SuccessResponseJSON.FromJson(JsonResponse); string response = "\n" + "SteamID: " + Steamid64 + "\n" + "Est banni pour : " + Expire + " minutes \n" + "Par: " + By + " / " + sender.nicknameSync.MyNick; ev.Sender.RaReply(args[0].ToUpper() + "#" + response, true, true, ""); } catch (Exception e) { JSON.Error.ErrorResponseJSON json = SanctionSystem.JSON.Error.ErrorResponseJSON.FromJson(JsonResponse); if (!String.IsNullOrEmpty(json.Code)) { ev.Sender.RaReply("Erreur durant le processus d'API (Code d'erreur répondu par l'API: " + json.Code, true, true, string.Empty); } else { ev.Sender.RaReply("Erreur durant le processus d'API (Code d'erreur plugin: " + e, true, true, string.Empty); } } } else { ev.Sender.RaReply("#- OBAN STEAMID [SteamID@steam] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); } break; case "ip": if (args.Length > 3) { string IP = args[2]; long BannedAt = TimeBehaviour.CurrentTimestamp(); double Expire = (double.TryParse(args[3], out double x)) ? x : -1; string By = sender.characterClassManager.UserId; string Reason = (args.Length > 3) ? string.Join(" ", args.Skip(4)) : string.Empty; Ban BanJSON = new Ban(); BanJSON.Ip = IP; BanJSON.BannedAt = BannedAt; BanJSON.BannedUntil = DateTime.UtcNow.AddMinutes((double)Expire).Ticks; BanJSON.By = By; if (!String.IsNullOrEmpty(Reason)) { BanJSON.Reason = Reason; } String JSON = Serialize.ToJson(BanJSON); String JsonResponse = Methods.Post(Plugin.BanURL, JSON); try { JSON.Success.SuccessResponseJSON json = SanctionSystem.JSON.Success.SuccessResponseJSON.FromJson(JsonResponse); string response = "\n" + "IP: " + IP + "\n" + "Est banni pour : " + Expire + " minutes \n" + "Par: " + By + " / " + sender.nicknameSync.MyNick; ev.Sender.RaReply(args[0].ToUpper() + "#" + response, true, true, ""); } catch (Exception e) { JSON.Error.ErrorResponseJSON json = SanctionSystem.JSON.Error.ErrorResponseJSON.FromJson(JsonResponse); if (!String.IsNullOrEmpty(json.Code)) { ev.Sender.RaReply("Erreur durant le processus d'API (Code d'erreur répondu par l'API: " + json.Code, true, true, string.Empty); } else { ev.Sender.RaReply("Erreur durant le processus d'API (Code d'erreur plugin: " + e, true, true, string.Empty); } } } else { ev.Sender.RaReply("#- OBAN IP [IP] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); } break; case "user": if (args.Length > 4) { string Steamid64 = args[2]; string IP = args[3]; long BannedAt = TimeBehaviour.CurrentTimestamp(); double Expire = (double.TryParse(args[4], out double x)) ? x : -1; string By = sender.characterClassManager.UserId; string Reason = (args.Length > 4) ? string.Join(" ", args.Skip(5)) : string.Empty; Ban BanJSON = new Ban(); BanJSON.Steamid64 = Steamid64; BanJSON.Ip = IP; BanJSON.BannedAt = BannedAt; BanJSON.BannedUntil = DateTime.UtcNow.AddMinutes((double)Expire).Ticks; BanJSON.By = By; if (!String.IsNullOrEmpty(Reason)) { BanJSON.Reason = Reason; } String JSON = Serialize.ToJson(BanJSON); String JsonResponse = Methods.Post(Plugin.BanURL, JSON); try { JSON.Success.SuccessResponseJSON json = SanctionSystem.JSON.Success.SuccessResponseJSON.FromJson(JsonResponse); string response = "\n" + "SteamID: " + Steamid64 + "\n" + "IP: " + IP + "\n" + "Est banni pour : " + Expire + " minutes \n" + "Par: " + By + " / " + sender.nicknameSync.MyNick; ev.Sender.RaReply(args[0].ToUpper() + "#" + response, true, true, ""); } catch (Exception e) { JSON.Error.ErrorResponseJSON json = SanctionSystem.JSON.Error.ErrorResponseJSON.FromJson(JsonResponse); if (!String.IsNullOrEmpty(json.Code)) { ev.Sender.RaReply("Erreur durant le processus d'API (Code d'erreur répondu par l'API: " + json.Code, true, true, string.Empty); } else { ev.Sender.RaReply("Erreur durant le processus d'API (Code d'erreur plugin: " + e, true, true, string.Empty); } } } else { ev.Sender.RaReply("#- OBAN USER [SteamID@steam] [IP] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); } break; default: ev.Sender.RaReply("OBAN#Commandes:", true, true, string.Empty); ev.Sender.RaReply("#- OBAN - Afficher la liste des commandes.", true, true, string.Empty); ev.Sender.RaReply("#- OBAN STEAMID [SteamID@steam] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); ev.Sender.RaReply("#- OBAN IP [IP] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); ev.Sender.RaReply("#- OBAN USER [SteamID@steam] [IP] [MINUTES] (RAISON OPTIONNELLE)", true, true, string.Empty); return; } } break; } }
public void RunOnRACommandSent(ref RACommandEvent RAComEv) { string[] Arguments = RAComEv.Command.Split(' '); ReferenceHub Sender = RAComEv.Sender.SenderId == "SERVER CONSOLE" || RAComEv.Sender.SenderId == "GAME CONSOLE" ? PlayerManager.localPlayer.GetPlayer() : Player.GetPlayer(RAComEv.Sender.SenderId); switch (Arguments[0].ToLower()) { case "ri": case "removeinv": case "strip": RAComEv.Allow = false; if (!Sender.CheckPermission("ri.allow")) { RAComEv.Sender.RAMessage("You are not authorized to use this command!"); return; } try { if (!CheckIfIdIsValid(Int32.Parse(Arguments[1]))) { RAComEv.Sender.RAMessage("Please enter in an ID from a player that exists in the game!"); return; } ReferenceHub ChosenPlayer = Player.GetPlayer(int.Parse(Arguments[1])); ChosenPlayer.inventory.ServerDropAll(); RAComEv.Sender.RAMessage("All items in player \"" + ChosenPlayer.GetNickname() + "\"'s inventory has been removed!"); } catch (Exception) { RAComEv.Sender.RAMessage("Please enter a valid ID!"); return; } break; case "clear": RAComEv.Allow = false; if (!Sender.CheckPermission("ri.clear.allow")) { RAComEv.Sender.RAMessage("You are not authorized to use this command!"); return; } try { if (!CheckIfIdIsValid(Int32.Parse(Arguments[1]))) { RAComEv.Sender.RAMessage("Please enter in an ID from a player that exists in the game!"); return; } ReferenceHub ChosenPlayer = Player.GetPlayer(int.Parse(Arguments[1])); ChosenPlayer.ClearInventory(); RAComEv.Sender.RAMessage("All items in player \"" + ChosenPlayer.GetNickname() + "\"'s inventory has been cleared!"); } catch (Exception) { RAComEv.Sender.RAMessage("Please enter a valid ID!"); return; } break; } }
public string CallvoteHandler(ReferenceHub player, string[] args) // lowercase to match command { Log.Info(player.nicknameSync.MyNick + " called vote with arguments: "); for (int i = 0; i < args.Length; i++) { Log.Info("\t" + i + ": " + args[i]); } if (args.Length == 0) { //return new string[] { "callvote RestartRound", "callvote Kick <player>", "callvote <custom> [options]" }; return("callvote Kick/Kill/<custom> <player>/[options]"); } else { if (CurrentVote != null) { //return new string[] { "A vote is currently in progress." }; return("A vote is currently in progress."); } else { Dictionary <int, string> options = new Dictionary <int, string>(); switch (args[0].ToLower()) { case "kick": if (this.EnableKick) { if (!player.CheckPermission("playervote.kick")) { return("You don't have the required permission to call kick votes."); } if (args.Length == 1) { return("callvote Kick <player>"); } else { Log.Info("Vote called by " + player.nicknameSync.MyNick + " to " + args[0] + " player " + args[1]); ReferenceHub locatedPlayer = Player.GetPlayer(args[1]); if (locatedPlayer != null) { options[1] = "Yes"; options[2] = "No"; StartVote(new Vote(player.nicknameSync.MyNick + " asks: Kick " + locatedPlayer.nicknameSync.MyNick + "?", options), delegate(Vote vote) { int votePercent = (int)((float)vote.Counter[1] / (float)(ServerConsole.PlayersAmount - 1) * 100f); if (votePercent >= this.ThresholdKick) { Extensions.BC(5, votePercent + "% voted yes. Kicking player " + locatedPlayer.nicknameSync.MyNick + "."); GameCore.Console.singleton.TypeCommand($"/ban " + locatedPlayer.queryProcessor.PlayerId + " 0", new PVoteSender()); } else { Extensions.BC(5, "Only " + votePercent + "% voted yes. " + this.ThresholdKick + "% was required to kick " + locatedPlayer.nicknameSync.MyNick + "."); } }); break; } else { return("Did not find any players with the name or partial name of " + args[1]); } } } else { return("callvote Kick is not enabled."); } case "kill": if (this.EnableKill) { if (!player.CheckPermission("playervote.kill")) { return("You don't have the required permission to call kill votes."); } if (args.Length == 1) { return("callvote Kill <player>"); } else { Log.Info("Vote called by " + player.nicknameSync.MyNick + " to " + args[0] + " player " + args[1]); ReferenceHub locatedPlayer = Player.GetPlayer(args[1]); if (locatedPlayer != null) { options[1] = "Yes"; options[2] = "No"; StartVote(new Vote(player.nicknameSync.MyNick + " asks: Kill " + locatedPlayer.nicknameSync.MyNick + "?", options), delegate(Vote vote) { int votePercent = (int)((float)vote.Counter[1] / (float)(ServerConsole.PlayersAmount - 1) * 100f); if (votePercent >= this.ThresholdKill) { Extensions.BC(5, votePercent + "% voted yes. Killing player " + locatedPlayer.nicknameSync.MyNick + "."); locatedPlayer.playerStats.SetHPAmount(0); locatedPlayer.playerStats._hpDirty = true; } else { Extensions.BC(5, "Only " + votePercent + "% voted yes. " + this.ThresholdKill + "% was required to kill " + locatedPlayer.nicknameSync.MyNick + "."); } }); break; } else { return("Did not find any players with the name or partial name of " + args[1]); } } } else { return("callvote Kill is not enabled."); } case "nuke": if (EnableNuke) { if (!player.CheckPermission("playervote.nuke")) { return("You don't have the required permission to call nuke votes."); } Log.Info("Vote called by " + player.nicknameSync.MyNick + " to " + args[0]); //return new string[] { "To be implemented." }; options[1] = "Yes"; options[2] = "No"; StartVote(new Vote(player.nicknameSync.MyNick + " asks: NUKE THE FACILITY?!?", options), delegate(Vote vote) { int votePercent = (int)((float)vote.Counter[1] / (float)(ServerConsole.PlayersAmount - 1) * 100f); if (votePercent >= this.ThresholdNuke) { Extensions.BC(5, votePercent + "% voted yes. Nuking the facility..."); EnableNuke = true; } else { Extensions.BC(5, "Only " + votePercent + "% voted yes. " + this.ThresholdNuke + "% was required to nuke the facility."); } }); break; } else { return("callvote Nuke is not enabled."); } case "respawnwave": if (EnableRespawnWave) { if (!player.CheckPermission("playervote.respawnwave")) { return("You don't have the required permission to call respawnwave votes."); } Log.Info("Vote called by " + player.nicknameSync.MyNick + " to " + args[0]); //return new string[] { "To be implemented." }; options[1] = "No"; options[2] = "MTF"; options[3] = "CI"; StartVote(new Vote(player.nicknameSync.MyNick + " asks: Respawn the next wave?", options), delegate(Vote vote) { int votePercent = (int)((float)vote.Counter[1] / (float)(ServerConsole.PlayersAmount - 1) * 100f); int mtfVotePercent = (int)((float)vote.Counter[2] / (float)(ServerConsole.PlayersAmount - 1) * 100f); int ciVotePercent = (int)((float)vote.Counter[3] / (float)(ServerConsole.PlayersAmount - 1) * 100f); if (mtfVotePercent >= this.ThresholdRespawnWave) { Extensions.BC(5, mtfVotePercent + "% voted yes. Respawning a wave of Nine-Tailed Fox..."); MTFRespawn _MTFRespawn = PlayerManager.localPlayer.GetComponent <MTFRespawn>(); bool oldNextRespawn = _MTFRespawn.nextWaveIsCI; _MTFRespawn.nextWaveIsCI = false; _MTFRespawn.RespawnDeadPlayers(); _MTFRespawn.nextWaveIsCI = oldNextRespawn; } else if (ciVotePercent >= this.ThresholdRespawnWave) { Extensions.BC(5, ciVotePercent + "% voted yes. Respawning a wave of Chaos Insurgency..."); MTFRespawn _MTFRespawn = PlayerManager.localPlayer.GetComponent <MTFRespawn>(); bool oldNextRespawn = _MTFRespawn.nextWaveIsCI; _MTFRespawn.nextWaveIsCI = true; _MTFRespawn.RespawnDeadPlayers(); _MTFRespawn.nextWaveIsCI = oldNextRespawn; } else { Extensions.BC(5, votePercent + "% voted no. " + this.ThresholdRespawnWave + "% was required to respawn the next wave."); } }); break; } else { return("callvote RespawnWave is not enabled."); } case "restartround": if (EnableRestartRound) { if (!player.CheckPermission("playervote.restartround")) { return("You don't have the required permission to call restartround votes."); } Log.Info("Vote called by " + player.nicknameSync.MyNick + " to " + args[0]); //return new string[] { "To be implemented." }; options[1] = "Yes"; options[2] = "No"; StartVote(new Vote(player.nicknameSync.MyNick + " asks: Restart the round?", options), delegate(Vote vote) { int votePercent = (int)((float)vote.Counter[1] / (float)(ServerConsole.PlayersAmount - 1) * 100f); if (votePercent >= this.ThresholdRestartRound) { Extensions.BC(5, votePercent + "% voted yes. Restarting the round..."); PlayerManager.localPlayer.GetComponent <PlayerStats>().Roundrestart(); } else { Extensions.BC(5, "Only " + votePercent + "% voted yes. " + this.ThresholdRestartRound + "% was required to restart the round."); } }); break; } else { return("callvote RestartRound is not enabled."); } default: if (!player.CheckPermission("playervote.custom")) { return("You don't have the required permission to call custom votes."); } if (args.Length == 1) { Log.Info("Binary vote called by " + player.nicknameSync.MyNick + ": " + string.Join(" ", args)); options[1] = "Yes"; options[2] = "No"; } else { Log.Info("Multiple-choice vote called by " + player.nicknameSync.MyNick + ": " + string.Join(" ", args)); for (int i = 1; i < args.Length; i++) { options[i] = args[i]; } } StartVote(new Vote(player.nicknameSync.MyNick + " asks: " + args[0], options), null); break; } return("Vote has been started!"); } } }