void cmdsafehome(PlayerSession session, string command, string[] args) { if (permission.UserHasPermission(session.SteamId.ToString(), "customwipe.use") || session.IsAdmin) { if (args.Length == 1) { bool found = false; foreach (PlayerIdentity identity in GameManager.Instance.GetIdentifierMap().Values) { if (identity.Name.ToLower().Equals(args[0].ToLower()) || identity.SteamId.ToString().Equals(args[0])) { found = true; var count = 0; var enumerator = RefTrackedBehavior <OwnershipStakeServer> .GetEnumerator(); while (enumerator.MoveNext()) { count++; var stake = enumerator.Current.Value; if (stake.AuthorizedPlayers.Contains(identity)) { var cell = ConstructionUtilities.GetOwnershipCell(stake.transform.position); var desc = "Player Home - " + identity.Name; safeCells.Add(new Cell { cellid = cell, pos = Vector3ToString(stake.transform.position), description = desc }); } } SaveData(); hurt.SendChatMessage(session, Msg("safehome_safe", session.SteamId.ToString()).Replace("{playername}", identity.Name).Replace("{count}", count + "")); return; } } if (!found) { hurt.SendChatMessage(session, Msg("safehome_notFound", session.SteamId.ToString()).Replace("{playername}", args[0])); } } } else { hurt.SendChatMessage(session, Msg("nopermission", session.SteamId.ToString())); } }
private void cmdTotem(PlayerSession player, string command, string[] args) { if (!permission.UserHasPermission(player.SteamId.ToString(), permissionTotem)) { hurt.SendChatMessage(player, GetMessage("Not Allowed", player.SteamId.ToString())); return; } PlayerIdentity identity = player.Identity; ulong steamID = player.SteamId.m_SteamID; if (args == null || args.Length == 0) { if (UnityEngine.Time.realtimeSinceStartup - lastRefresh[steamID] > floatTotemRefresh) { RefreshTotem(identity); } int o = 0; hurt.SendChatMessage(player, GetMessage("Select a totem", player.SteamId.ToString()).Replace("{refresh}", UnityEngine.Mathf.Ceil(floatTotemRefresh - (UnityEngine.Time.realtimeSinceStartup - lastRefresh[steamID])).ToString())); foreach (OwnershipStakeServer stake in cashedTotems[steamID]) { if (stake.AuthorizedPlayers.Contains(identity)) { hurt.SendChatMessage(player, string.Format("{0} - {1}", o.ToString(), stake.TerritoryName)); o++; } } if (o == 0) { hurt.SendChatMessage(player, GetMessage("No Totems Found", player.SteamId.ToString())); } } else { if (UnityEngine.Time.realtimeSinceStartup - lastSelection[steamID] < floatTotemSelectCooldown) { hurt.SendChatMessage(player, GetMessage("Last Selection Cooldown", player.SteamId.ToString()).Replace("{cooldown}", UnityEngine.Mathf.Ceil(floatTotemSelectCooldown - (UnityEngine.Time.realtimeSinceStartup - lastSelection[steamID])).ToString())); return; } int arg = 0; if (!int.TryParse(args[0], out arg)) { hurt.SendChatMessage(player, GetMessage("/totem TOTEMID", player.SteamId.ToString())); return; } if (!cashedTotems.ContainsKey(steamID)) { hurt.SendChatMessage(player, GetMessage("Use /totem", player.SteamId.ToString())); return; } if (cashedTotems[steamID][arg] == null) { hurt.SendChatMessage(player, GetMessage("Totem doesnt exist", player.SteamId.ToString())); return; } if (!cashedTotems[steamID][arg].AuthorizedPlayers.Contains(identity)) { hurt.SendChatMessage(player, GetMessage("No longer authorized", player.SteamId.ToString())); return; } List <OwnershipStakeServer> all = RefTrackedBehavior <OwnershipStakeServer> .GetAll(); for (int p = 0; p < all.Count; p++) { OwnershipStakeServer staked = all[p]; staked.SpawnPlayers.Remove(identity); invalidate.Invoke(staked, null); } cashedTotems[steamID][arg].SpawnPlayers.Add(identity); invalidate.Invoke(cashedTotems[steamID][arg], null); hurt.SendChatMessage(player, GetMessage("Set Spawn", player.SteamId.ToString()).Replace("{totem}", cashedTotems[steamID][arg].TerritoryName)); lastSelection[steamID] = UnityEngine.Time.realtimeSinceStartup; } }