private async Task Client_UserVoiceStateUpdated(SocketUser arg1, SocketVoiceState arg2, SocketVoiceState arg3) { if (!(arg1 is SocketGuildUser user)) { return; } if (TTTGame.IsTTTVoice(arg2.VoiceChannel) || TTTGame.IsTTTVoice(arg3.VoiceChannel)) { return; } if (user.IsBot) { return; } if (arg3.VoiceChannel == null) { await UserLeftVc(user, arg2); } else if (arg2.VoiceChannel == null) { await UserJoinedVc(user, arg3); } else if (arg2.VoiceChannel.Id != arg3.VoiceChannel.Id) { await UserMovedVc(user, arg2, arg3); } }
private async Task Client_UserVoiceStateUpdated(SocketUser arg1, SocketVoiceState arg2, SocketVoiceState arg3) { if (arg1.IsBot || !(arg1 is SocketGuildUser user)) { return; } if (!(TTTGame.IsTTTVoice(arg2.VoiceChannel) || TTTGame.IsTTTVoice(arg3.VoiceChannel))) { return; } if (!TTTGame.IsTTTVoice(arg3.VoiceChannel)) { return; // left the channel. } var game = Games.FirstOrDefault(x => x.Contains(arg1)); if (game == null) { game = Games.FirstOrDefault(x => x.In(arg3.VoiceChannel.Guild)); } try { await Handle(game, user, arg2.VoiceChannel, arg3.VoiceChannel); } catch (Exception ex) { Program.LogMsg("VCTTT", ex); } finally { await user.ModifyAsync(x => x.Channel = arg2.VoiceChannel); } }
async Task Client_UserVoiceStateUpdated(Discord.WebSocket.SocketUser arg1, Discord.WebSocket.SocketVoiceState arg2, Discord.WebSocket.SocketVoiceState arg3) { if (arg1.IsBot) { return; } if (TTTGame.IsTTTVoice(arg2.VoiceChannel) || TTTGame.IsTTTVoice(arg3.VoiceChannel)) { return; } var thread = new Thread(handle); thread.Start(new passing() { arg1 = arg1, arg2 = arg2, arg3 = arg3 }); }