public void OnMeetingStarted(IMeetingStartedEvent evt)
        {
            var code    = evt.Game.Code;
            var players = evt.Game.Players;

            logger.LogInformation($"[{code}] Meeting has started, unmuting alive clients.");

            foreach (var player in players)
            {
                var name = player.Character.PlayerInfo.PlayerName;
                var dead = player.Character.PlayerInfo.IsDead;

                if (!dead)
                {
                    logger.LogInformation($"Unmuting client: {name}");

                    var unmute = new UnmuteClient {
                        Nickname = name
                    };
                    executor.Schedule(unmute);
                }
            }
        }
        public void OnPlayerJoined(IGamePlayerJoinedEvent evt)
        {
            var code    = evt.Game.Code;
            var players = evt.Game.Players;

            logger.LogInformation($"[{code}] Player joined, moving clients into voice channel.");

            foreach (var player in players)
            {
                // must use p.Client here since p.Character is not available yet
                var name = player.Client.Name;
                logger.LogInformation($"Moving client: {name}");

                var move = new MoveClient {
                    ChannelName = $"Impostor {code}", Nickname = name
                };
                executor.Schedule(move);

                var unmute = new UnmuteClient {
                    Nickname = name
                };
                executor.Schedule(unmute);
            }
        }