private void GodCommand(IPlayer iPlayer, string command, string[] args) { if ((args.Length > 0 && !iPlayer.HasPermission(permAdmin)) || !iPlayer.HasPermission(permToggle)) { Print(iPlayer, Lang("NotAllowed", iPlayer.Id, command)); return; } if (args.Length == 0 && iPlayer.Id == "server_console") { Print(iPlayer, $"The server console cannot use {command}"); return; } var target = args.Length > 0 ? RustCore.FindPlayer(args[0]) : iPlayer.Object as BasePlayer; if (args.Length > 0 && target == null) { Print(iPlayer, Lang("PlayerNotFound", iPlayer.Id, args[0])); return; } object obj = ToggleGodmode(target, iPlayer.Object as BasePlayer); if (iPlayer.Id == "server_console" && args.Length > 0 && obj is bool) { if ((bool)obj) { Print(iPlayer, $"'{target.displayName}' have enabled godmode"); } else { Print(iPlayer, $"'{target.displayName}' have disabled godmode"); } } }
string GetName(string id) { if (id == "0") { return("[SERVERSPAWN]"); } return(RustCore.FindPlayer(id) ? RustCore.FindPlayer(id).displayName : covalence.Players.FindPlayer(id)?.Name); }
public BasePlayer FindPlayer(string nameOrIdOrIp) => RustCore.FindPlayer(nameOrIdOrIp);
private void cmdFriend(BasePlayer player, string command, string[] args) { if (args == null || args.Length <= 0 || args.Length == 1 && !args[0].Equals("list", StringComparison.OrdinalIgnoreCase)) { PrintMessage(player, "Syntax"); return; } switch (args[0].ToLower()) { case "list": var friendList = GetFriendList(player.userID); if (friendList.Length > 0) { PrintMessage(player, "List", $"{friendList.Length}/{configData.MaxFriends}", string.Join(", ", friendList)); } else { PrintMessage(player, "NoFriends"); } return; case "add": case "+": var friendPlayer = RustCore.FindPlayer(args[1]); if (friendPlayer == null) { PrintMessage(player, "PlayerNotFound", args[1]); return; } if (player == friendPlayer) { PrintMessage(player, "CantAddSelf"); return; } var playerData = GetPlayerData(player.userID); if (playerData.Friends.Count >= configData.MaxFriends) { PrintMessage(player, "FriendlistFull"); return; } if (playerData.Friends.Contains(friendPlayer.userID)) { PrintMessage(player, "AlreadyOnList", friendPlayer.displayName); return; } AddFriend(player.userID, friendPlayer.userID); PrintMessage(player, "FriendAdded", friendPlayer.displayName); return; case "remove": case "-": var friend = FindFriend(args[1]); if (friend <= 0) { PrintMessage(player, "NotOnFriendlist", args[1]); return; } var removed = RemoveFriend(player.userID, friend); PrintMessage(player, removed ? "FriendRemoved" : "NotOnFriendlist", args[1]); return; } }
private void BgConsoleCommand(ConsoleSystem.Arg arg) { string userIdString = arg.Connection?.userid.ToString(); if (arg.Connection != null) { if (!arg.IsAdmin && !IsAdmin(arg.Connection.userid.ToString())) { SendReply(arg, Lang("NoPermission", userIdString)); return; } } if (arg.Args == null || arg.Args.Length == 0) { SendReply(arg, Lang("InvalidArgsConsole", userIdString)); return; } if (arg.Args.Length >= 0) { switch (arg.Args[0].ToLower()) { case "unlocked": if (arg.Args.Length == 2) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null || target.blueprints == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } String replyString = Lang("BlueprintsUnlocked", userIdString, target.displayName); foreach (String a in GetPlayerBlueprints(target)) { replyString += a + ", "; } SendReply(arg, replyString); } return; case "save": if (arg.Args.Length == 2) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } if (_targetNeedsPermission && !IsAdmin(target) && !IsUser(target.UserIDString)) { SendReply(arg, Lang("NoPermTarget", userIdString, target.displayName)); return; } SaveBlueprints(target); SendReply(arg, Lang("BlueprintsSavedTarget", userIdString, target.displayName)); } return; case "restore": if (!_isActivated) { SendReply(arg, Lang("PluginNotActivated", userIdString)); return; } if (arg.Args.Length == 2) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } if (_targetNeedsPermission && !IsAdmin(target) && !IsUser(target.UserIDString)) { SendReply(arg, Lang("NoPermTarget", userIdString, target.displayName)); return; } if (!_cachedPlayerInfo.ContainsKey(target.userID)) { SendReply(arg, Lang("NoSavedDataFound", userIdString, target.displayName)); return; } if (arg.Connection != null) { SendReply(arg, RestoreBlueprints(target)); } } return; case "unlock": if (arg.Args.Length == 3) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } ItemDefinition itemDefinition = ItemManager.FindItemDefinition(arg.Args[2]); if (itemDefinition == null) { SendReply(arg, Lang("NoItemFound", userIdString)); return; } if (!_configData.DisableAllLogging) { Puts($"{arg.Connection?.username ?? "Server Console"} unlocked blueprint {itemDefinition.displayName} for [{target.displayName}/{target.userID}]"); } target.blueprints?.Unlock(itemDefinition); } return; case "unlockall": if (arg.Args.Length == 2) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } if (_targetNeedsPermission && !IsAdmin(target) && !IsUser(target.UserIDString)) { SendReply(arg, Lang("NoPermTarget", userIdString, target.displayName)); return; } var blueprints = target.blueprints; if (blueprints == null) { return; } blueprints.UnlockAll(); SendReply(arg, Lang("AllBlueprintsUnlocked", userIdString, target.displayName)); if (!_configData.DisableAllLogging) { Puts(Lang("AllBlueprintsUnlocked", userIdString, target.displayName)); } } return; case "reset": if (arg.Args.Length == 3) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } if (arg.Args[2].ToLower() == "confirm") { if (_targetNeedsPermission && !IsAdmin(target) && !IsUser(target.UserIDString)) { SendReply(arg, Lang("NoPermTarget", userIdString, target.displayName)); return; } var blueprints = target.blueprints; if (blueprints == null) { return; } //Use buildin Rust function to reset blueprints blueprints.Reset(); //Check if blueprints are present in data and if so clear it PlayerInfo playerInfo; if (_cachedPlayerInfo.TryGetValue(target.userID, out playerInfo)) { playerInfo.UnlockedBlueprints.Clear(); } if (!_configData.DisableAllLogging) { Puts(Lang("BlueprintsReset", null, target.displayName)); } if (arg.Connection != null) { SendReply(arg, Lang("BlueprintsReset", userIdString, target.displayName)); } } else { SendReply(arg, Lang("ConfirmReset", userIdString, target.displayName, arg.Args[2])); } } else if (arg.Args.Length == 2) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } SendReply(arg, Lang("ConfirmReset", userIdString, target.displayName, arg.Args[1])); } else { SendReply(arg, Lang("InvalidArgsConsole", userIdString)); } return; case "toggle": _isActivated = !_isActivated; SaveConfigData(); SendReply(arg, _isActivated ? Lang("Activated", userIdString) : Lang("Deactivated", userIdString)); return; case "autorestore": _autoRestore = !_autoRestore; SaveConfigData(); SendReply(arg, _isActivated ? Lang("AutoRestoreActivated", userIdString) : Lang("AutoRestoreDeactivated", userIdString)); return; case "testautorestore": _isNewSave = true; SendReply(arg, $"isNewSave: {_isNewSave}"); CheckProtocol(); return; case "delsaved": if (arg.Args.Length == 2) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } if (!RemoveSavedBlueprints(target)) { SendReply(arg, Lang("NoSavedDataFound", userIdString, target.displayName)); } return; } else { SendReply(arg, Lang("InvalidArgs", userIdString)); } return; case "listsaved": if (arg.Args.Length == 1) { StringBuilder sb = new StringBuilder(Lang("SavedDataPlayerList", userIdString)); foreach (ulong userId in _cachedPlayerInfo.Keys) { BasePlayer target = RustCore.FindPlayerById(userId); sb.Append($"{userId} : {target?.displayName} \n"); } SendReply(arg, sb.ToString()); } if (arg.Args.Length == 2) { BasePlayer target = RustCore.FindPlayer(arg.Args[1]); if (target == null) { SendReply(arg, Lang("NoPlayerFoundWith", userIdString, arg.Args[1])); return; } if (!_cachedPlayerInfo.ContainsKey(target.userID)) { SendReply(arg, Lang("NoSavedDataFor", userIdString, target.displayName)); return; } HashSet <String> blueprints = _cachedPlayerInfo[target.userID].UnlockedBlueprints; if (blueprints == null) { return; } SendReply(arg, Lang("BlueprintsSaved", userIdString, target.displayName) + String.Join(", ", blueprints)); } return; case "default": case "help": StringBuilder _sb = new StringBuilder(Lang("AvailableCommands", userIdString)); _sb.Append(Lang("HelpConsoleSave", userIdString)); _sb.Append(Lang("HelpConsoleRestore", userIdString)); _sb.Append(Lang("HelpConsoleDelSaved", userIdString)); _sb.Append(Lang("HelpConsoleUnlocked", userIdString)); _sb.Append(Lang("HelpConsoleUnlockAll", userIdString)); _sb.Append(Lang("HelpConsoleReset", userIdString)); _sb.Append(Lang("HelpConsoleList", userIdString)); _sb.Append(Lang("HelpListPlayerSaved", userIdString)); _sb.Append(Lang("HelpConsoleToggle", userIdString)); SendReply(arg, arg.Connection == null ? Regex.Replace(_sb.ToString(), "<[^>]*>", "") : _sb.ToString()); return; } } }