public void askVote(CSteamID steamID, bool vote) { if (Provider.isServer) { if (PlayerTool.getSteamPlayer(steamID) == null) { return; } if (!ChatManager.isVoting) { return; } if (ChatManager.votes.Contains(steamID)) { return; } ChatManager.votes.Add(steamID); if (vote) { ChatManager.voteYes += 1; } else { ChatManager.voteNo += 1; } ChatManager.manager.channel.send("tellVoteUpdate", ESteamCall.CLIENTS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { ChatManager.voteYes, ChatManager.voteNo }); } }
private void onZombieLifeUpdated(Zombie zombie) { if (!zombie.isDead) { return; } if ((zombie.transform.position - base.transform.position).sqrMagnitude > this.sqrRadius) { return; } ZombieSoulFlag.nearbyPlayers.Clear(); PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, ZombieSoulFlag.nearbyPlayers); for (int i = 0; i < ZombieSoulFlag.nearbyPlayers.Count; i++) { Player player = ZombieSoulFlag.nearbyPlayers[i]; if (!player.life.isDead) { short num; if (player.quests.getFlag(this.flagPlaced, out num) && num == 1) { EffectManager.sendEffect(this.collectEffect, player.channel.owner.playerID.steamID, zombie.transform.position + Vector3.up, (base.transform.position - zombie.transform.position + Vector3.up).normalized); short num2; player.quests.getFlag(this.flagKills, out num2); num2 += 1; player.quests.sendSetFlag(this.flagKills, num2); if (num2 >= (short)this.soulsNeeded) { EffectManager.sendEffect(this.teleportEffect, player.channel.owner.playerID.steamID, base.transform.position); player.quests.sendSetFlag(this.flagPlaced, 2); } } } } }
// Token: 0x06001E2B RID: 7723 RVA: 0x000A4A1C File Offset: 0x000A2E1C protected override void execute(CSteamID executorID, string parameter) { if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/'); if (componentsFromSerial.Length != 1) { CommandWindow.LogError(this.localization.format("InvalidParameterErrorText")); return; } SteamPlayer steamPlayer; if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer) || steamPlayer.player == null) { CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[] { componentsFromSerial[0] })); return; } steamPlayer.player.sendScreenshot(executorID, null); CommandWindow.Log(this.localization.format("SpyText", new object[] { steamPlayer.playerID.playerName })); }
protected override void execute(CSteamID executorID, string parameter) { if (!Dedicator.isDedicated) { return; } if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/'); if (componentsFromSerial.Length != 2) { CommandWindow.LogError(this.localization.format("InvalidParameterErrorText")); return; } CSteamID csteamID; if (!PlayerTool.tryGetSteamID(componentsFromSerial[0], out csteamID)) { CommandWindow.LogError(this.localization.format("InvalidSteamIDErrorText", new object[] { componentsFromSerial[0] })); return; } SteamWhitelist.whitelist(csteamID, componentsFromSerial[1], executorID); CommandWindow.Log(this.localization.format("PermitText", new object[] { csteamID, componentsFromSerial[1] })); }
public void askTransformStructure(CSteamID steamID, byte x, byte y, uint instanceID, Vector3 point, byte angle_x, byte angle_y, byte angle_z) { StructureRegion structureRegion; if (Provider.isServer && StructureManager.tryGetRegion(x, y, out structureRegion)) { Player player = PlayerTool.getPlayer(steamID); if (player == null) { return; } if (player.life.isDead) { return; } if (!player.channel.owner.isAdmin) { return; } StructureManager.manager.channel.send("tellTransformStructure", ESteamCall.ALL, x, y, StructureManager.STRUCTURE_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, instanceID, point, angle_x, angle_y, angle_z }); } }
protected override void execute(CSteamID executorID, string parameter) { if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } SteamPlayer steamPlayer; if (!PlayerTool.tryGetSteamPlayer(parameter, out steamPlayer)) { CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[] { parameter })); return; } if (steamPlayer.player != null) { EPlayerKill eplayerKill; steamPlayer.player.life.askDamage(101, Vector3.up * 101f, EDeathCause.KILL, ELimb.SKULL, executorID, out eplayerKill); } CommandWindow.Log(this.localization.format("KillText", new object[] { steamPlayer.playerID.playerName })); }
// Token: 0x06001E38 RID: 7736 RVA: 0x000A5374 File Offset: 0x000A3774 protected override void execute(CSteamID executorID, string parameter) { if (!Dedicator.isDedicated) { return; } if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } CSteamID csteamID; if (!PlayerTool.tryGetSteamID(parameter, out csteamID)) { CommandWindow.LogError(this.localization.format("InvalidSteamIDErrorText", new object[] { parameter })); return; } if (!SteamBlacklist.unban(csteamID)) { CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[] { csteamID })); return; } CommandWindow.Log(this.localization.format("UnbanText", new object[] { csteamID })); }
// Token: 0x060026B7 RID: 9911 RVA: 0x000E54EC File Offset: 0x000E38EC private IEnumerator teleport() { yield return(new WaitForSeconds(3f)); if (this.target != null) { ZombieSoulTeleporter.nearbyPlayers.Clear(); PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, ZombieSoulTeleporter.nearbyPlayers); for (int i = 0; i < ZombieSoulTeleporter.nearbyPlayers.Count; i++) { Player player = ZombieSoulTeleporter.nearbyPlayers[i]; if (!player.life.isDead) { short num; short num2; if (player.quests.getFlag(211, out num) && num == 1 && player.quests.getFlag(212, out num2) && num2 == 1 && player.quests.getQuestStatus(213) != ENPCQuestStatus.COMPLETED) { player.quests.sendSetFlag(214, 0); player.quests.sendAddQuest(213); player.sendTeleport(this.targetBoss.position, MeasurementTool.angleToByte(this.targetBoss.rotation.eulerAngles.y)); } else { player.sendTeleport(this.target.position, MeasurementTool.angleToByte(this.target.rotation.eulerAngles.y)); if (player.equipment.isSelected) { player.equipment.dequip(); } player.equipment.canEquip = false; } } } } yield break; }
// Token: 0x060027D4 RID: 10196 RVA: 0x000F171C File Offset: 0x000EFB1C public static void sendChat(EChatMode mode, string text) { if (!Provider.isServer) { ChatManager.manager.channel.send("askChat", ESteamCall.SERVER, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { (byte)mode, text }); } else if (!Dedicator.isDedicated) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(Provider.client); if (steamPlayer == null) { return; } Color color = (!Provider.isPro) ? Color.white : Palette.PRO; bool isRich = false; bool flag = true; if (ChatManager.onChatted != null) { ChatManager.onChatted(steamPlayer, mode, ref color, ref isRich, text, ref flag); } if (ChatManager.process(steamPlayer, text) && flag) { ChatManager.list(Provider.client, mode, color, isRich, text); } } }
public static string getRepTitle(int rep) { return(PlayerDashboardInformationUI.localization.format("Rep", new object[] { PlayerDashboardInformationUI.localization.format("Rep_" + PlayerTool.getRepKey(rep)), rep })); }
// Token: 0x060027D9 RID: 10201 RVA: 0x000F195C File Offset: 0x000EFD5C private void onServerConnected(CSteamID steamID) { if (Provider.isServer && ChatManager.welcomeText != string.Empty) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(steamID); ChatManager.say(steamPlayer.playerID.steamID, string.Format(ChatManager.welcomeText, steamPlayer.playerID.characterName), ChatManager.welcomeColor, false); } }
public void askSalvageStructure(CSteamID steamID, byte x, byte y, ushort index) { StructureRegion structureRegion; if (Provider.isServer && StructureManager.tryGetRegion(x, y, out structureRegion)) { Player player = PlayerTool.getPlayer(steamID); if (player == null) { return; } if (player.life.isDead) { return; } if ((int)index >= structureRegion.drops.Count) { return; } if (!OwnershipTool.checkToggle(player.channel.owner.playerID.steamID, structureRegion.structures[(int)index].owner, player.quests.groupID, structureRegion.structures[(int)index].group)) { return; } ItemStructureAsset itemStructureAsset = (ItemStructureAsset)Assets.find(EAssetType.ITEM, structureRegion.structures[(int)index].structure.id); if (itemStructureAsset != null) { if (itemStructureAsset.isUnpickupable) { return; } if (structureRegion.structures[(int)index].structure.health == itemStructureAsset.health) { player.inventory.forceAddItem(new Item(structureRegion.structures[(int)index].structure.id, EItemOrigin.NATURE), true); } else if (itemStructureAsset.isSalvageable) { for (int i = 0; i < itemStructureAsset.blueprints.Count; i++) { Blueprint blueprint = itemStructureAsset.blueprints[i]; if (blueprint.outputs.Length == 1 && blueprint.outputs[0].id == itemStructureAsset.id) { ushort id = blueprint.supplies[Random.Range(0, blueprint.supplies.Length)].id; player.inventory.forceAddItem(new Item(id, EItemOrigin.NATURE), true); break; } } } } structureRegion.structures.RemoveAt((int)index); StructureManager.manager.channel.send("tellTakeStructure", ESteamCall.ALL, x, y, StructureManager.STRUCTURE_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, index, (structureRegion.drops[(int)index].model.position - player.transform.position).normalized * 100f }); } }
// Token: 0x06001DCB RID: 7627 RVA: 0x000A0CA8 File Offset: 0x0009F0A8 protected override void execute(CSteamID executorID, string parameter) { if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } if (!Provider.hasCheats) { CommandWindow.LogError(this.localization.format("CheatsErrorText")); return; } string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/'); if (componentsFromSerial.Length < 1 || componentsFromSerial.Length > 3) { CommandWindow.LogError(this.localization.format("InvalidParameterErrorText")); return; } bool flag = false; SteamPlayer steamPlayer; if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer)) { steamPlayer = PlayerTool.getSteamPlayer(executorID); if (steamPlayer == null) { CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[] { componentsFromSerial[0] })); return; } flag = true; } ushort num; if (!ushort.TryParse(componentsFromSerial[(!flag) ? 1 : 0], out num)) { CommandWindow.LogError(this.localization.format("InvalidAnimalIDErrorText", new object[] { componentsFromSerial[(!flag) ? 1 : 0] })); return; } if (!AnimalManager.giveAnimal(steamPlayer.player, num)) { CommandWindow.LogError(this.localization.format("NoAnimalIDErrorText", new object[] { num })); return; } CommandWindow.Log(this.localization.format("AnimalText", new object[] { steamPlayer.playerID.playerName, num })); }
// Token: 0x06001E1F RID: 7711 RVA: 0x000A42E0 File Offset: 0x000A26E0 protected override void execute(CSteamID executorID, string parameter) { if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } if (!Provider.hasCheats) { CommandWindow.LogError(this.localization.format("CheatsErrorText")); return; } string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/'); if (componentsFromSerial.Length < 1 || componentsFromSerial.Length > 2) { CommandWindow.LogError(this.localization.format("InvalidParameterErrorText")); return; } bool flag = false; SteamPlayer steamPlayer; if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer)) { steamPlayer = PlayerTool.getSteamPlayer(executorID); if (steamPlayer == null) { CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[] { componentsFromSerial[0] })); return; } flag = true; } int num; if (!int.TryParse(componentsFromSerial[(!flag) ? 1 : 0], out num)) { CommandWindow.LogError(this.localization.format("InvalidNumberErrorText", new object[] { componentsFromSerial[(!flag) ? 1 : 0] })); return; } steamPlayer.player.skills.askRep(num); string text = num.ToString(); if (num > 0) { text = '+' + text; } CommandWindow.Log(this.localization.format("ReputationText", new object[] { steamPlayer.playerID.playerName, text })); }
protected override void execute(CSteamID executorID, string parameter) { if (!Dedicator.isDedicated) { return; } if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/'); if (componentsFromSerial.Length != 1 && componentsFromSerial.Length != 2) { CommandWindow.LogError(this.localization.format("InvalidParameterErrorText")); return; } SteamPlayer steamPlayer; if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer)) { CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[] { componentsFromSerial[0] })); return; } P2PSessionState_t p2PSessionState_t; uint ip; if (SteamGameServerNetworking.GetP2PSessionState(steamPlayer.playerID.steamID, ref p2PSessionState_t)) { ip = p2PSessionState_t.m_nRemoteIP; } else { ip = 0u; } if (componentsFromSerial.Length == 1) { SteamBlacklist.ban(steamPlayer.playerID.steamID, ip, executorID, this.localization.format("SlayTextReason"), SteamBlacklist.PERMANENT); } else if (componentsFromSerial.Length == 2) { SteamBlacklist.ban(steamPlayer.playerID.steamID, ip, executorID, componentsFromSerial[1], SteamBlacklist.PERMANENT); } if (steamPlayer.player != null) { EPlayerKill eplayerKill; steamPlayer.player.life.askDamage(101, Vector3.up * 101f, EDeathCause.KILL, ELimb.SKULL, executorID, out eplayerKill); } CommandWindow.Log(this.localization.format("SlayText", new object[] { steamPlayer.playerID.playerName })); }
public static Player getPlayer(string name) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(name); if (steamPlayer != null && steamPlayer.player != null) { return(steamPlayer.player); } return(null); }
public static Player getPlayer(CSteamID steamID) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(steamID); if (steamPlayer != null && steamPlayer.player != null) { return(steamPlayer.player); } return(null); }
public static Transform getPlayerModel(string name) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(name); if (steamPlayer != null && steamPlayer.model != null) { return(steamPlayer.model); } return(null); }
public static Transform getPlayerModel(CSteamID steamID) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(steamID); if (steamPlayer != null && steamPlayer.model != null) { return(steamPlayer.model); } return(null); }
private static void onServerDisconnected(CSteamID steamID) { if (Provider.isServer && Level.isLoaded) { Player player = PlayerTool.getPlayer(steamID); if (player != null) { player.save(); } } }
public void askToggleObjectBinaryState(CSteamID steamID, byte x, byte y, ushort index) { if (Provider.isServer) { if (!Regions.checkSafe((int)x, (int)y)) { return; } Player player = PlayerTool.getPlayer(steamID); if (player == null) { return; } if (player.life.isDead) { return; } if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count) { return; } if (!player.tryToPerformRateLimitedAction()) { return; } if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 400f) { return; } InteractableObjectBinaryState interactableObjectBinaryState = LevelObjects.objects[(int)x, (int)y][(int)index].interactable as InteractableObjectBinaryState; if (interactableObjectBinaryState != null && interactableObjectBinaryState.isUsable && !interactableObjectBinaryState.objectAsset.interactabilityRemote) { if (!interactableObjectBinaryState.objectAsset.areConditionsMet(player)) { return; } if (!interactableObjectBinaryState.objectAsset.areInteractabilityConditionsMet(player)) { return; } interactableObjectBinaryState.objectAsset.applyInteractabilityConditions(player, true); interactableObjectBinaryState.objectAsset.grantInteractabilityRewards(player, true); ObjectManager.manager.channel.send("tellToggleObjectBinaryState", ESteamCall.ALL, x, y, ObjectManager.OBJECT_REGIONS, ESteamPacket.UPDATE_RELIABLE_BUFFER, new object[] { x, y, index, !interactableObjectBinaryState.isUsed }); LevelObjects.objects[(int)x, (int)y][(int)index].state[0] = ((!interactableObjectBinaryState.isUsed) ? 0 : 1); } } }
public static bool tryGetSteamPlayer(string input, out SteamPlayer player) { player = null; ulong steamID; if (ulong.TryParse(input, out steamID)) { player = PlayerTool.getSteamPlayer(steamID); return(player != null); } player = PlayerTool.getSteamPlayer(input); return(player != null); }
public void askUseObjectDropper(CSteamID steamID, byte x, byte y, ushort index) { if (Provider.isServer) { if (!Regions.checkSafe((int)x, (int)y)) { return; } Player player = PlayerTool.getPlayer(steamID); if (player == null) { return; } if (player.life.isDead) { return; } if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count) { return; } if (!player.tryToPerformRateLimitedAction()) { return; } if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 400f) { return; } InteractableObjectDropper interactableObjectDropper = LevelObjects.objects[(int)x, (int)y][(int)index].interactable as InteractableObjectDropper; if (interactableObjectDropper != null && interactableObjectDropper.isUsable) { if (!interactableObjectDropper.objectAsset.areConditionsMet(player)) { return; } if (!interactableObjectDropper.objectAsset.areInteractabilityConditionsMet(player)) { return; } interactableObjectDropper.objectAsset.applyInteractabilityConditions(player, true); interactableObjectDropper.objectAsset.grantInteractabilityRewards(player, true); interactableObjectDropper.drop(); } } }
public static bool tryGetSteamID(string input, out CSteamID steamID) { steamID = CSteamID.Nil; ulong num; if (ulong.TryParse(input, out num)) { steamID..ctor(num); return(true); } SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(input); if (steamPlayer != null) { steamID = steamPlayer.playerID.steamID; return(true); } return(false); }
public void askUseObjectQuest(CSteamID steamID, byte x, byte y, ushort index) { if (Provider.isServer) { if (!Regions.checkSafe((int)x, (int)y)) { return; } Player player = PlayerTool.getPlayer(steamID); if (player == null) { return; } if (player.life.isDead) { return; } if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count) { return; } if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 1600f) { return; } InteractableObject interactable = LevelObjects.objects[(int)x, (int)y][(int)index].interactable; if (interactable != null && (interactable is InteractableObjectQuest || interactable is InteractableObjectNote)) { if (!interactable.objectAsset.areConditionsMet(player)) { return; } if (!interactable.objectAsset.areInteractabilityConditionsMet(player)) { return; } interactable.objectAsset.applyInteractabilityConditions(player, false); interactable.objectAsset.grantInteractabilityRewards(player, false); } } }
// Token: 0x060026A5 RID: 9893 RVA: 0x000E4DD0 File Offset: 0x000E31D0 private IEnumerator teleport() { yield return(new WaitForSeconds(3f)); if (this.target != null) { ZombieBossQuest.nearbyPlayers.Clear(); PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, ZombieBossQuest.nearbyPlayers); for (int i = 0; i < ZombieBossQuest.nearbyPlayers.Count; i++) { Player player = ZombieBossQuest.nearbyPlayers[i]; if (!player.life.isDead) { player.quests.sendRemoveQuest(213); player.quests.setFlag(213, 1); player.sendTeleport(this.target.position, MeasurementTool.angleToByte(this.target.rotation.eulerAngles.y)); } } } yield break; }
public void askUseObjectNPC(CSteamID steamID, byte x, byte y, ushort index) { if (Provider.isServer) { if (!Regions.checkSafe((int)x, (int)y)) { return; } Player player = PlayerTool.getPlayer(steamID); if (player == null) { return; } if (player.life.isDead) { return; } if ((int)index >= LevelObjects.objects[(int)x, (int)y].Count) { return; } if (!player.tryToPerformRateLimitedAction()) { return; } if ((LevelObjects.objects[(int)x, (int)y][(int)index].transform.position - player.transform.position).sqrMagnitude > 400f) { return; } InteractableObjectNPC interactableObjectNPC = LevelObjects.objects[(int)x, (int)y][(int)index].interactable as InteractableObjectNPC; if (interactableObjectNPC != null) { if (!interactableObjectNPC.objectAsset.areConditionsMet(player)) { return; } player.quests.checkNPC = interactableObjectNPC; } } }
// Token: 0x06001DF4 RID: 7668 RVA: 0x000A28B4 File Offset: 0x000A0CB4 protected override void execute(CSteamID executorID, string parameter) { if (!Dedicator.isDedicated) { return; } if (!Provider.isServer) { CommandWindow.LogError(this.localization.format("NotRunningErrorText")); return; } string[] componentsFromSerial = Parser.getComponentsFromSerial(parameter, '/'); if (componentsFromSerial.Length != 1 && componentsFromSerial.Length != 2) { CommandWindow.LogError(this.localization.format("InvalidParameterErrorText")); return; } SteamPlayer steamPlayer; if (!PlayerTool.tryGetSteamPlayer(componentsFromSerial[0], out steamPlayer)) { CommandWindow.LogError(this.localization.format("NoPlayerErrorText", new object[] { componentsFromSerial[0] })); return; } if (componentsFromSerial.Length == 1) { Provider.kick(steamPlayer.playerID.steamID, this.localization.format("KickTextReason")); } else if (componentsFromSerial.Length == 2) { Provider.kick(steamPlayer.playerID.steamID, componentsFromSerial[1]); } CommandWindow.Log(this.localization.format("KickText", new object[] { steamPlayer.playerID.playerName })); }
protected override IEnumerator teleport() { yield return(new WaitForSeconds(1f)); if (this.target != null) { GermanyTeleporterA.nearbyPlayers.Clear(); PlayerTool.getPlayersInRadius(base.transform.position, this.sqrRadius, GermanyTeleporterA.nearbyPlayers); for (int i = 0; i < GermanyTeleporterA.nearbyPlayers.Count; i++) { Player player = GermanyTeleporterA.nearbyPlayers[i]; if (!player.life.isDead) { if (player.quests.getQuestStatus(248) == ENPCQuestStatus.COMPLETED) { player.sendTeleport(this.target.position, MeasurementTool.angleToByte(this.target.rotation.eulerAngles.y)); } } } } yield break; }
public void tellVoteStart(CSteamID steamID, CSteamID origin, CSteamID target, byte votesNeeded) { if (base.channel.checkServer(steamID)) { SteamPlayer steamPlayer = PlayerTool.getSteamPlayer(origin); if (steamPlayer == null) { return; } SteamPlayer steamPlayer2 = PlayerTool.getSteamPlayer(target); if (steamPlayer2 == null) { return; } ChatManager.needsVote = true; ChatManager.hasVote = false; if (ChatManager.onVotingStart != null) { ChatManager.onVotingStart(steamPlayer, steamPlayer2, votesNeeded); } } }