private List <BasePlayer> GetClanMembers(ulong playerUID) { var membersList = new List <BasePlayer>(); var clanName = Clans?.Call <string>("GetClanOf", playerUID); if (!string.IsNullOrEmpty(clanName)) { var clan = Clans?.Call <JObject>("GetClan", clanName); if (clan != null && clan is JObject) { var members = (clan as JObject).GetValue("members"); if (members != null && members is JArray) { foreach (var member in (JArray)members) { ulong clanMemberUID; if (!ulong.TryParse(member.ToString(), out clanMemberUID)) { continue; } var clanMember = RustCore.FindPlayerById(clanMemberUID); membersList.Add(clanMember); } } } } return(membersList); }
static bool CanAuthorize(BuildingPrivlidge cupboard) { var owner = cupboard.authorizedPlayers[0]; var ownerPlayer = RustCore.FindPlayerById(owner.userid); return(ownerPlayer?.isConnected ?? true); }
private bool DisableGodmode(string playerID) { if (string.IsNullOrEmpty(playerID)) { return(false); } var player = RustCore.FindPlayerById(ulong.Parse(playerID)); if (player == null) { return(false); } if (IsGod(player.UserIDString)) { storedData.godPlayers.Remove(player.UserIDString); } if (configData.showNamePrefix) { Rename(player, false); } ModifyMetabolism(player, false); CheckOnlineGods(); return(true); }
private bool InTeam(ulong playerUID) { var player = RustCore.FindPlayerById(playerUID); var playersCurrentTeam = RelationshipManager.Instance.FindTeam(player.currentTeam); return(playersCurrentTeam != null); }
private List <BasePlayer> GetFriends(ulong userID) { var result = Friends?.Call("GetFriends", userID); if (result == null) { return(null); } return((result as ulong[]).Select(x => RustCore.FindPlayerById(x)).ToList()); }
private List <BasePlayer> GetFriends(ulong playerUID) { var friendsList = new List <BasePlayer>(); var friends = Friends.Call <ulong[]>("GetFriends", playerUID); foreach (var friendUID in friends) { var friend = RustCore.FindPlayerById(friendUID); friendsList.Add(friend); } return(friendsList); }
private PlayerData GetPlayerData(ulong playerId) { var player = RustCore.FindPlayerById(playerId); PlayerData playerData; if (!FriendsData.TryGetValue(playerId, out playerData)) { FriendsData[playerId] = playerData = new PlayerData(); } if (player != null) { playerData.Name = player.displayName; } return(playerData); }
void OnEntityEnter(TriggerBase trigger, BaseEntity entity) { var player = entity as BasePlayer; var cupboard = trigger as BuildPrivilegeTrigger; if (player == null || cupboard == null) { return; } var owner = cupboard.privlidgeEntity.authorizedPlayers[0]; var ownerPlayer = RustCore.FindPlayerById(owner.userid); if (ownerPlayer != null && ownerPlayer.isConnected) { timer.Once(0.1f, () => player.SetPlayerFlag(BasePlayer.PlayerFlags.HasBuildingPrivilege, true)); } }
private List <BasePlayer> GetTeamMembers(ulong playerUID) { var membersList = new List <BasePlayer>(); var player = RustCore.FindPlayerById(playerUID); var playersCurrentTeam = RelationshipManager.Instance.FindTeam(player.currentTeam); var teamMembers = playersCurrentTeam.members; foreach (var teamMemberUID in teamMembers) { var teamMember = RustCore.FindPlayerById(teamMemberUID); membersList.Add(teamMember); } return(membersList); }
public BasePlayer FindPlayerById(ulong id) => RustCore.FindPlayerById(id);
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; } } }