Пример #1
0
        private async void OnChannelExpiredReceived(OnChannelExpiredEvent args)
        {
            var channel = DefaultServer.VoiceChannels.FirstOrDefault(v => string.Equals(args.ChannelName, v.Name, StringComparison.OrdinalIgnoreCase));

            if (channel != null)
            {
                foreach (var user in channel.Users.ToList())
                {
                    await user.ModifyAsync(x => x.ChannelId = WaitingRoomVoiceChannelId);
                }

                await channel.DeleteAsync();

                await LogsTextChannel.SendMessageAsync($"Channel '{args.ChannelName}' has been deleted due to expiry");
            }
        }
Пример #2
0
        private async void OnJoinedGameEventReceived(OnJoinedGameEvent args)
        {
            await LogsTextChannel.SendMessageAsync($"Received join game '{args.ChannelName}' for player '{args.VoiceUserId}'");

            ulong channelId = 0;

            lock (_getChannelLock)
            {
                channelId = DefaultServer.VoiceChannels.FirstOrDefault(v => string.Equals(v.Name, args.ChannelName, StringComparison.OrdinalIgnoreCase))?.Id
                            ?? DefaultServer.CreateVoiceChannelAsync(args.ChannelName).GetAwaiter().GetResult().Id;
            }

            var user = DefaultServer.GetUser(args.VoiceUserId);

            if (user != null)
            {
                await user.ModifyAsync(x => x.ChannelId = channelId);

                await LogsTextChannel.SendMessageAsync($"User '{user.Username}' has been moved to '{args.ChannelName}' with id '{channelId}'");
            }
        }