Exemplo n.º 1
0
        private void OnPluginKeyTick(Player player, uint simulation, byte key, bool state)
        {
            if (!state || key != 0)
            {
                return;
            }
            TTTPlayer tttPlayer = PlayerManager.GetTTTPlayer(player.channel.owner.playerID.steamID);

            if (tttPlayer is null)
            {
                return;
            }

            if (tttPlayer.GetStatus() == PlayerStatus.DEAD)
            {
                return;
            }
            if (RoundManager.GetState() != RoundState.LIVE)
            {
                return;
            }


            if (KeyCooldowns.ContainsKey(player.channel.owner.playerID.steamID))
            {
                long lastPressed = KeyCooldowns[player.channel.owner.playerID.steamID];
                // 1 second key cooldown on menu
                if (DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() - lastPressed < 300)
                {
                    return;
                }

                KeyCooldowns.Remove(player.channel.owner.playerID.steamID);
            }

            KeyCooldowns.Add(player.channel.owner.playerID.steamID, DateTimeOffset.UtcNow.ToUnixTimeMilliseconds());

            if (tttPlayer.Role == PlayerRole.TRAITOR)
            {
                ToggleShop(player, tttPlayer, 8501);
            }
            else if (tttPlayer.Role == PlayerRole.DETECTIVE)
            {
                ToggleShop(player, tttPlayer, 8502);
            }
        }