public void OnRemoteAdminCommand(ref RACommandEvent ev) { string[] query = ev.Command.Split(' '); switch (query[0].ToLower()) { case "addspeaker": bool contains = false; foreach (var speak in speakers) { if (speak.id == int.Parse(query[1])) { contains = true; speak.x = float.Parse(query[2]); speak.y = float.Parse(query[3]); speak.z = float.Parse(query[4]); speak.url = query[5]; break; } } if (!contains) { speakers.Add(new Speaker() { id = int.Parse(query[1]), x = float.Parse(query[2]), y = float.Parse(query[3]), z = float.Parse(query[4]), url = query[5] }); } foreach (var speak in speakers) { NetDataWriter writer = new NetDataWriter(); writer.Put(1); writer.Put(speak.id); writer.Put(speak.x); writer.Put(speak.y); writer.Put(speak.z); writer.Put(speak.url); server.SendToAll(writer, DeliveryMethod.ReliableOrdered); } break; case "removespeaker": foreach (var speak in speakers) { if (speak.id == int.Parse(query[1])) { NetDataWriter writer = new NetDataWriter(); writer.Put(2); writer.Put(speak.id); server.SendToAll(writer, DeliveryMethod.ReliableOrdered); break; } } break; } }
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 void OnRACommand(ref RACommandEvent ev) { if(ev.Command.ToUpper() == "RECONNECTRS") { ev.Allow = false; PlayerManager.localPlayer.GetComponent<PlayerStats>()?.Roundrestart(); Timing.RunCoroutine(this._Quit(), Segment.Update); ev.Sender.RaReply("Exiled2Multiadmin#RECONNECTRS...", true,true,string.Empty); } }
public void OnRACommand(ref RACommandEvent ev) { if (!ev.Command.Split(' ')[0].Equals("VS_RELOAD", StringComparison.InvariantCultureIgnoreCase)) { return; } ev.Allow = false; Setup.ReloadConfig(); Setup.LoadData(); ev.Sender.RAMessage("Reloaded VPNShield."); Log.Info("Reloaded VPNShield."); }
internal void RACmd(ref RACommandEvent ev) { string[] args = ev.Command.Split(' '); if (args[0].ToLower().StartsWith("mute")) { foreach (string str in args[1].Split('.')) { ReferenceHub hub = Player.GetPlayer(int.Parse(str)); notActualMutedPlayers.Remove(hub.GetUserId()); } } }
public void CommandHandler(ref RACommandEvent ev) { if (ev.Command.ToUpper().StartsWith("B914")) { var args = ev.Command.Split(new char[] { ' ' }, System.StringSplitOptions.RemoveEmptyEntries); args = args.Select(arg => arg.ToUpper()).ToArray(); if (args[0] == "B914_DUMPRECIPES" || (args.Length == 2 && args[1] == "DUMPRECIPES")) { ev.Allow = false; File.WriteAllBytes(Path.Combine(PluginManager.ExiledDirectory, "Better914Recipes-default.json"), Utf8Json.JsonSerializer.Serialize(Plugin.CreateDefaultList())); ev.Sender.RaReply("Default recipes file dumpedsuccessfully.", true, false, ""); } } }
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 void Events_RemoteAdminCommandEvent(ref RACommandEvent ev) { if (ev.Command.StartsWith("NineThreeNineInfection")) { string[] args = ev.Command.Split(' '); if (args.Length <= 1) { ev.Allow = false; ev.Sender.RAMessage($"Gamemode is : {(_main.IsEnabled ? "<color=green>enabled</color>" : "<color=red>disabled</color>")}"); ev.Sender.RAMessage("NineThreeNineInfection <on | enable | off | disable>."); return; } switch (args[1].ToLower()) { case "enable": ev.Allow = false; _main.IsEnabled = true; ev.Sender.RAMessage("The gamemode has been <color=green>enabled</color>."); break; case "on": ev.Allow = false; _main.IsEnabled = true; ev.Sender.RAMessage("The gamemode has been <color=green>enabled</color>."); break; case "disable": ev.Allow = false; _main.IsEnabled = false; ev.Sender.RAMessage("The gamemode has been <color=red>disabled</color>."); break; case "off": ev.Allow = false; _main.IsEnabled = false; ev.Sender.RAMessage("The gamemode has been <color=red>disabled</color>."); break; } } }
void OnRACommand(ref RACommandEvent ev) { string[] args = ev.Command.ToUpper().Split(' '); if (args[0] != null) { switch (args[0]) { case "LIGHTOFF": if (args[1] != null) { float time = float.Parse(args[1]); for (int i = 0; i < Rooms.Count; i++) { Rooms[i].EnableFlickering(time); } } break; } } }
internal void RACommand(ref RACommandEvent ev) { // safety first if (string.IsNullOrWhiteSpace(ev.Command)) { return; } string upperedCommand = ev.Command.ToUpperInvariant(); if (!upperedCommand.StartsWith("STALK")) { return; } switch (upperedCommand) { case "STALK DISABLE": ev.Sender.RaReply($"Stalky106#Stalk {(StalkyCreatePortalPatch.ForceDisable ? "was already" : string.Empty)} disabled.", !StalkyCreatePortalPatch.ForceDisable, false, string.Empty); StalkyCreatePortalPatch.ForceDisable = true; break; case "STALK ENABLE": ev.Sender.RaReply($"Stalky106#Stalk {(!StalkyCreatePortalPatch.ForceDisable ? "was already" : string.Empty)} enabled.", StalkyCreatePortalPatch.ForceDisable, false, string.Empty); StalkyCreatePortalPatch.ForceDisable = false; break; default: ev.Sender.RaReply("Stalky106#Command unrecognized.", false, false, string.Empty); return; } }
public void OnRaCommand(ref RACommandEvent ev) { string[] args = ev.Command.Split(' '); switch (args[0].ToLower()) { case "scputils_help": { ev.Allow = false; ev.Sender.RAMessage($"SCPUtils info:\n" + $"Avaible commands: scputils_help, scputils_player_info, scputils_player_list, scputils_player_reset_preferences, scputils_player_reset, scputils_set_color, scputils_set_name, scputils_set_badge, scputils_revoke_badge", true); break; } case "scputils_player_info": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 2) { ev.Sender.RAMessage("Usage: scputils_player_info <player name/id>", false); break; } if (IsAllowed(ev.Sender, "scputils.playerinfo")) { var databasePlayer = args[1].GetDatabasePlayer(); if (databasePlayer == null) { ev.Sender.RAMessage("Player not found on Database or Player is loading data!", false); break; } ev.Sender.RAMessage($"\n[{databasePlayer.Name} ({databasePlayer.Id}@{databasePlayer.Authentication})]\n\n" + $"Total SCP Suicides/Quits: [ {databasePlayer.ScpSuicideCount} ]\n" + $"Total SCP Suicides/Quits Kicks: [ {databasePlayer.TotalScpSuicideKicks} ]\n" + $"Total SCP Suicides/Quits Bans: [ {databasePlayer.TotalScpSuicideBans} ]\n" + $"Total Games played as SCP: [ {databasePlayer.TotalScpGamesPlayed} ]\n" + $"Total Suicides/Quits Percentage: [ {Math.Round(databasePlayer.SuicidePercentage, 2)}% ]\n" + $"First Join: [ {databasePlayer.FirstJoin} ]\n" + $"Last Seen: [ {databasePlayer.LastSeen} ]\n" + $"Custom Color: [ {databasePlayer.ColorPreference} ]\n" + $"Custom Name: [ {databasePlayer.CustomNickName} ]\n" + $"Temporarily Badge: [ {databasePlayer.BadgeName} ]\n" + $"Badge Expire: [ {databasePlayer.BadgeExpire} ]\n" + $"Hide Badge: [ {databasePlayer.HideBadge} ]"); } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } case "scputils_player_list": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 2) { ev.Sender.RAMessage("Usage: scputils_player_list <minimum quit percentage>", false); break; } if (IsAllowed(ev.Sender, "scputils.playerlist")) { var playerListString = "[Quits/Suicides Percentage]\n"; if (int.TryParse(args[1], out int minpercentage)) { foreach (var databasePlayer in Database.LiteDatabase.GetCollection <Player>().Find(x => x.SuicidePercentage >= minpercentage)) { playerListString += $"\n{databasePlayer.Name} ({databasePlayer.Id}@{databasePlayer.Authentication}) -[ {Math.Round(databasePlayer.SuicidePercentage, 2)}% ]"; } if (playerListString == "[Quits/Suicides as SCP]\n") { ev.Sender.RAMessage("No results found!", false); } else { ev.Sender.RAMessage($"{playerListString}"); } } else { ev.Sender.RAMessage("Arg1 is not an integer, Comand usage example: scputils_player_list 50", false); break; } } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } case "scputils_player_reset": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 2) { ev.Sender.RAMessage("Usage: scputils_player_reset <player name/id>", false); break; } if (commandSender.CheckPermission("scputils.playerreset")) { var databasePlayer = args[1].GetDatabasePlayer(); if (databasePlayer == null) { ev.Sender.RAMessage("Player not found on Database or Player is loading data!", false); break; } databasePlayer.Reset(); Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); ev.Sender.RAMessage("Success!", false); } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } case "scputils_player_reset_preferences": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 2) { ev.Sender.RAMessage("Usage: scputils_player_reset_preferences <player name/id>", false); break; } if (IsAllowed(ev.Sender, "scputils.playerresetpreferences")) { var databasePlayer = args[1].GetDatabasePlayer(); if (databasePlayer == null) { ev.Sender.RAMessage("Player not found on Database or Player is loading data!", false); break; } databasePlayer.ResetPreferences(); Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); ev.Sender.RAMessage("Success!", false); } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } case "scputils_set_color": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 3) { ev.Sender.RAMessage("Usage: scputils_set_color <player name/id> <color>", false); break; } args[2] = args[2].ToLower().ToString(); if (IsAllowed(ev.Sender, "scputils.playersetcolor")) { var databasePlayer = args[1].GetDatabasePlayer(); var target = EXILED.Extensions.Player.GetPlayer(args[1]); if (databasePlayer == null) { ev.Sender.RAMessage("Player not found on Database or Player is loading data!", false); break; } if (args[2] == "none") { databasePlayer.ColorPreference = ""; Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); ev.Sender.RAMessage("Success, effects will take effect next round!", false); break; } if (validColors.Contains(args[2])) { if (target != null) { target.serverRoles.SetColor(args[2]); } string color = args[2]; databasePlayer.ColorPreference = color; Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); ev.Sender.RAMessage("Success!", false); } else { ev.Sender.RAMessage("Invalid color!", false); } } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } case "scputils_set_name": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 3) { ev.Sender.RAMessage("Usage: scputils_set_name <player name/id> <nick>", false); break; } if (IsAllowed(ev.Sender, "scputils.playersetname")) { var databasePlayer = args[1].GetDatabasePlayer(); var target = EXILED.Extensions.Player.GetPlayer(args[1]); if (databasePlayer == null) { ev.Sender.RAMessage("Player not found on Database or Player is loading data!", false); break; } if (args[2] == "none") { databasePlayer.CustomNickName = ""; Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); ev.Sender.RAMessage("Success, changes will take effect next round!", false); break; } string name = args[2]; databasePlayer.CustomNickName = name; Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); ev.Sender.RAMessage("Success, changes will take effect next round!", false); } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } case "scputils_set_badge": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 4) { ev.Sender.RAMessage("Usage: scputils_set_badge <player name/id> <Badge Name> <Minutes>", false); break; } if (IsAllowed(ev.Sender, "scputils.handlebadges")) { var databasePlayer = args[1].GetDatabasePlayer(); var player = EXILED.Extensions.Player.GetPlayer(args[1]); if (databasePlayer == null) { ev.Sender.RAMessage("Player not found on Database or Player is loading data!", false); break; } if (!ServerStatic.GetPermissionsHandler().GetAllGroups().ContainsKey(args[2])) { ev.Sender.RAMessage("Invalid role name!", false); break; } else if (int.TryParse(args[3], out int duration)) { string badgeName = args[2].ToString(); databasePlayer.BadgeName = badgeName; databasePlayer.BadgeExpire = DateTime.Now.AddMinutes(duration); Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); if (player) { EXILED.Extensions.Player.SetRank(player, ServerStatic.GetPermissionsHandler()._groups[args[2]]); } ev.Sender.RAMessage("Badge set!", false); } else { ev.Sender.RAMessage("Arg3 must be integer!", false); } } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } case "scputils_revoke_badge": { ev.Allow = false; var commandSender = EXILED.Extensions.Player.GetPlayer(ev.Sender.Nickname); if (args.Length < 2) { ev.Sender.RAMessage("Usage: scputils_revoke_badge <player name/id>", false); break; } if (IsAllowed(ev.Sender, "scputils.handlebadges")) { var player = EXILED.Extensions.Player.GetPlayer(args[1]); var databasePlayer = args[1].GetDatabasePlayer(); if (databasePlayer == null) { ev.Sender.RAMessage("Player not found on Database or Player is loading data!", false); break; } databasePlayer.BadgeName = ""; databasePlayer.BadgeExpire = DateTime.MinValue; Database.LiteDatabase.GetCollection <Player>().Update(databasePlayer); if (player) { EXILED.Extensions.Player.SetRank(player, null); } ev.Sender.RAMessage("Badge revoked!", false); } else { ev.Sender.RAMessage("You need a higher administration level to use this command!", false); } break; } } }
public void OnCommand(ref RACommandEvent ev) { try { 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); if (args [0].ToLower() == "lights_reload") { ev.Allow = false; if (!checkPermission(ev, sender, "reload")) { ev.Sender.RAMessage(plugin.AccessDenied); return; } plugin.reloadConfig(); ev.Sender.RAMessage("<color=red>Configuration variables reloaded.</color>"); return; } #region Command: Lights if (args [0].ToLower() == plugin.CmdName || args [0].ToLower() == plugin.CmdAlias) { ev.Allow = false; if (!checkPermission(ev, sender, "light")) { ev.Sender.RAMessage(plugin.AccessDenied); return; } if (args.Length < 2) { ev.Sender.RAMessage(plugin.HelpOne.Replace("%cmd", args [0])); ev.Sender.RAMessage(plugin.HelpTwo); return; } else if (args.Length >= 2) { if (!args [1].All(char.IsDigit)) { ev.Sender.RAMessage(plugin.HelpOne.Replace("%cmd", args [0])); ev.Sender.RAMessage(plugin.HelpTwo); return; } bool OnlyHCZ = false; if (args.Length >= 3) { string [] _t = plugin.TrueArguments.Split(','); if (_t.Contains(args[2].ToLower())) { OnlyHCZ = true; } else { ev.Sender.RAMessage(plugin.NotRecognized.Replace("%arg", args [2])); } } ev.Sender.RAMessage(plugin.Success.Replace("%s", args [1]).Replace("%value", OnlyHCZ + "")); if (plugin.DoAnnouncement) { foreach (ReferenceHub h in Player.GetHubs()) { h.Broadcast(plugin.AnnounceDuration, plugin.Announcement.Replace("%player", ev.Sender.Nickname).Replace("%s", args[1])); } } if (OnlyHCZ && plugin.CassieAnnounceHCZ) { plugin.cassieMessage(plugin.CassieAnnouncement); } else if (!OnlyHCZ && plugin.CassieAnnounceBoth) { plugin.cassieMessage(plugin.CassieAnnouncementBoth); } lightsOff(float.Parse(args [1]), OnlyHCZ); return; } return; } #endregion return; } catch (Exception e) { Log.Error("Command error: " + e.StackTrace); } }
public void CommandHandler(ref RACommandEvent ev) { if (ev.Command.StartsWith("b914") || ev.Command.StartsWith("hurt")) { var args = ev.Command.Split(new char[] { ' ' }, System.StringSplitOptions.RemoveEmptyEntries); args = args.Select(arg => arg.ToUpper()).ToArray(); int index = 0; ev.Allow = false; if (args[index] == "B914_") { args[index] = args[index].Substring(5); } if (args[index] == "B914" && args.Length > index) { index++; } if (args[index] == "CHANGE") { if (args.Length != index + 2) { ev.Sender.RaReply("#Too many arguments! (expected " + (index + 2) + ")", false, true, ""); return; } if (!PluginConfig.TryChangeVariable(args[index + 1], args[index + 2], out string reason)) { ev.Sender.RaReply(reason, false, true, ""); return; } SaveConfig(); ev.Sender.RaReply("Variable set successfully", true, true, ""); ev.Allow = false; return; } if (args[index] == "GET") { if (args.Length != index + 1) { ev.Sender.RaReply("#Too many arguments! (expected " + (index + 1) + ")", false, true, ""); return; } string value; if (!PluginConfig.TryGetVariable(args[index + 1], out value, out string reason)) { ev.Sender.RaReply(reason, false, true, ""); return; } ev.Sender.RaReply("Config value: " + value, true, true, ""); return; } if (args[0] == "HURT") { if (args.Length > 1 && args.Length < 4) { int id; float value; if (args.Length == 2) { id = int.Parse(ev.Sender.SenderId); if (!float.TryParse(args[1], out value)) { ev.Sender.RaReply("#Cannot parse " + value + " as float number", false, true, ""); return; } } else { if (!int.TryParse(args[1], out id)) { ev.Sender.RaReply("#Cannot parse " + id + " as integer number", false, true, ""); return; } if (!float.TryParse(args[2], out value)) { ev.Sender.RaReply("#Cannot parse " + value + " as float number", false, true, ""); return; } } var player = PlayerManager.players.FirstOrDefault(p => p.GetComponent <QueryProcessor>().PlayerId == id)?.GetComponent <CharacterClassManager>(); if (player == null) { ev.Sender.RaReply("#Cannot fint user with id " + id, false, true, ""); return; } player.GetComponent <PlayerStats>().HurtPlayer(new PlayerStats.HitInfo(value, "WORLD", Plugin.Scp914DamageType, player.GetComponent <QueryProcessor>().PlayerId), player.gameObject); return; } else { ev.Sender.RaReply("#Too many arguments! (expected 1 or 2)", false, true, ""); return; } } ev.Allow = false; } }
public void OnCommand(ref RACommandEvent ev) { try { 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); if (args [0].ToLower() == "lightsconfig") { ev.Allow = false; if (!checkPermission(ev, sender, "config")) { ev.Sender.RAMessage(plugin.AccessDenied); return; } if (args.Length >= 2) { if (args[1].ToLower() == "set") { if (!checkPermission(ev, sender, "set")) { return; } if (args.Length >= 4) { if (args[2].ToLower().StartsWith("lights_")) { Plugin.Config.SetString(args[2].ToLower(), ev.Command.Substring(ev.Command.LastIndexOf(args[3]))); ev.Sender.RAMessage($"<color=yellow>{args[2].ToLower()}</color> <color=green>has been set to:</color> <color=yellow>{args[3]}</color><color=green>.</color>"); return; } } } else if (args[1].ToLower() == "reload") { if (!checkPermission(ev, sender, "reload")) { return; } plugin.reloadConfig(); ev.Sender.RAMessage("<color=green>Configuration variables reloaded.</color>"); return; } else if (args[1].ToLower() == "variables") { ev.Sender.RAMessage( "<color=red>Each color shows the type of each variable.</color>\n" + "<color=yellow>String</color> - <color=green>Integer</color> - <color=red>Float</color> - <color=#ff00ffff>Boolean</color>\n" + "<color=yellow>lights_command -</color>" + "<color=yellow>lights_alias -</color>" + "<color=yellow>lights_true_arguments -</color>" + "<color=#ff00ffff>lights_announce -</color>" + "<color=green>lights_announce_duration -</color>" + "<color=yellow>lights_announce_text -</color>" + "<color=yellow>lights_message_access_denied -</color>" + "<color=yellow>lights_message_help -</color>" + "<color=yellow>lights_message_not_recognized -</color>" + "<color=yellow>lights_message_success -</color>" + "<color=yellow>lights_cassie_announcement_hcz -</color>" + "<color=yellow>lights_cassie_announcement_both -</color>" + "<color=#ff00ffff>lights_cassie_announceforhcz -</color>" + "<color=#ff00ffff>lights_cassie_announceforboth -</color>" + "<color=#ff00ffff>lights_cassie_makenoise -</color>" + "<color=#ff00ffff>lights_startblackout_toggle -</color>" + "<color=red>lights_startblackout_delay_max -</color>" + "<color=red>lights_startblackout_delay_min -</color>" + "<color=#ff00ffff>lights_multipleblackout_toggle -</color>" + "<color=red>lights_multipleblackout_duration_max -</color>" + "<color=red>lights_multipleblackout_duration_min -</color>" + "<color=red>lights_multipleblackout_timebetween_max -</color>" + "<color=red>lights_multipleblackout_timebetween_min -</color>" + "<color=green>lights_multipleblackout_maxamount -</color>" + "<color=yellow>lights_cassie_announcement_auto -</color>" + "<color=#ff00ffff>lights_cassie_announceauto</color>"); return; } } ev.Sender.RAMessage("<color=red>Please try one of the following:</color> " + "\n<color=#f29f05>\"lightsconfig set <config_variable> <value>\" -> Change the value of a config variable of the plugin.</color>" + "\n<color=#f29f05>\"lightsconfig variables\" -> Gives you a list of all variables available.</color>" + "\n<color=#f29f05>\"lightsconfig reload\" -> Reloads config variables.</color>"); return; } #region Command: Lights if (args [0].ToLower() == plugin.CmdName || args [0].ToLower() == plugin.CmdAlias) { ev.Allow = false; if (!checkPermission(ev, sender, "light")) { ev.Sender.RAMessage(plugin.AccessDenied); return; } if (args.Length < 2) { ev.Sender.RAMessage(plugin.HelpMessage.Replace("%cmd", args [0])); return; } else if (args.Length >= 2) { if (!args [1].All(char.IsDigit)) { ev.Sender.RAMessage(plugin.HelpMessage.Replace("%cmd", args [0])); return; } bool OnlyHCZ = false; if (args.Length >= 3) { string [] _t = plugin.TrueArguments.Split(','); if (_t.Contains(args[2].ToLower())) { OnlyHCZ = true; } else { ev.Sender.RAMessage(plugin.NotRecognized.Replace("%arg", args [2])); } } ev.Sender.RAMessage(plugin.Success.Replace("%s", args [1]).Replace("%value", OnlyHCZ + "")); if (plugin.DoAnnouncement) { foreach (ReferenceHub h in Player.GetHubs()) { h.Broadcast(plugin.AnnounceDuration, plugin.Announcement.Replace("%player", ev.Sender.Nickname).Replace("%s", args[1])); } } if (OnlyHCZ && plugin.CassieAnnounceHCZ) { plugin.cassieMessage(plugin.CassieAnnouncement); } else if (!OnlyHCZ && plugin.CassieAnnounceBoth) { plugin.cassieMessage(plugin.CassieAnnouncementBoth); } lightsOff(float.Parse(args [1]), OnlyHCZ); return; } return; } #endregion return; } catch (Exception e) { Log.Error("Command error: " + e.StackTrace); } }
public void OnRACommand(ref RACommandEvent ev) { string cmd = ev.Command.ToLower(); if (cmd.StartsWith("measure")) { ev.Allow = false; ReferenceHub player = Player.GetPlayer(ev.Sender.SenderId); string[] args = cmd.Replace("measure", "").Trim().Split(' '); if (args.Length > 0) { if (args[0] == "dist") { if (args.Length > 1) { if (args[1] == "start") { distStart = player.transform.position; ev.Sender.RAMessage($"Start position saved at ({distStart.x}, {distStart.y}, {distStart.z})."); return; } else if (args[1] == "end") { distEnd = player.transform.position; ev.Sender.RAMessage($"End position saved at ({distEnd.x}, {distEnd.y}, {distEnd.z})."); ev.Sender.RAMessage($"Distance: {Vector3.Distance(distStart, distEnd)}."); return; } } ev.Sender.RAMessage($"USAGE: MEASURE DIST (START / END)", false); } else if (args[0] == "timer") { if (args.Length > 1) { if (args[1] == "start") { if (!stopWatch.IsRunning) { Timing.RunCoroutine(Stopwatch(ev.Sender)); return; } else { ev.Sender.RAMessage("Stopwatch is already running.", false); return; } } else if (args[1] == "end") { stopWatch.Stop(); ev.Sender.RAMessage("Stopwatch stopped!"); TimeSpan ts = stopWatch.Elapsed; ev.Sender.RAMessage($"Elapsed time: {String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10)}."); stopWatch.Reset(); return; } } ev.Sender.RAMessage($"USAGE: MEASURE TIMER (START / END)", false); } else { ev.Sender.RAMessage($"USAGE: MEASURE (DIST / TIMER)", false); } } } }
internal void OnRACommand(ref RACommandEvent ev) { // big brain time int i; for (i = 0; i < ev.Command.Length && ev.Command[i] != ' '; i++) { ; } if (!plugin.Configs.aliases.Contains(ev.Command.Substring(0, i).ToUpperInvariant())) { return; } ev.Allow = false; string[] args = ev.Command.Split(' '); if (args.Length < 2) { ev.Sender.RAMessage(GetUsage(), false); return; } else { switch (args[1].ToUpperInvariant()) { case "RELOAD": ev.Sender.RAMessage($"Reloaded {Methods.LoadClasses()} classes.", true); return; case "LIST": if (args.Length == 2) { ev.Sender.RAMessage("List of names:\n" + string.Join(", ", from subclass in MTFplus.disctinctSubclasses select subclass.name)); } else { Timing.RunCoroutine(Methods.FetchList(ev.Sender)); } return; case "DISPLAY": if (args.Length < 3) { ev.Sender.RAMessage("Please, introduce a name as your second argument.", false); return; } Subclass theOneAndOnly = MTFplus.subclasses.Get(args[2]); if (theOneAndOnly.Equals(Subclass.Empty)) { ev.Sender.RAMessage("Subclass not found.", false); return; } ev.Sender.RAMessage(theOneAndOnly.ToString()); return; case "SPAWN": var player = Plugin.GetPlayer(ev.Sender.SenderId); if (plugin.Configs.ranks.Count > 0 && player != null && player.serverRoles.Permissions != ServerStatic.PermissionsHandler.FullPerm && !plugin.Configs.ranks.Contains(player.serverRoles.GlobalBadge)) { ev.Sender.RAMessage($"You aren't allowed to run this command (role {player.serverRoles.GlobalBadge ?? "(null)"} is not allowed to run this command).", false); return; } if (args.Length < 4) { ev.Sender.RAMessage($"Usage: {string.Join("/", args[0])} SPAWN <player name/player id> <class name>", false); return; } ReferenceHub target = Plugin.GetPlayer(args[2]); if (target == null) { ev.Sender.RAMessage("Player not found.", false); return; } Subclass pickedClass = MTFplus.subclasses.Get(args[3]); if (pickedClass.Equals(Subclass.Empty)) { ev.Sender.RAMessage("Subclass not found.", false); return; } target.characterClassManager.SetPlayersClass(pickedClass.role, target.gameObject, false, false); player.SetClass(pickedClass); if (player != null) { Plugin.Info($"Player {target.nicknameSync.MyNick} spawned as subclass {pickedClass.name} by admin {player.nicknameSync.MyNick}" + $" with ID: ({player.characterClassManager.UserId})"); } ev.Sender.RAMessage("Set player " + target.nicknameSync.MyNick + " as " + pickedClass.name); return; } } ev.Sender.RAMessage(GetUsage(), false); }
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; } }
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 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; } }