private async Task ProcessVoiceChannelChange(SocketUser user, SocketVoiceState oldChannel, SocketVoiceState newChannel) { await UpdateConsole($"{user == null} {oldChannel} {newChannel}"); if (oldChannel.VoiceChannel.Id != newChannel.VoiceChannel.Id) { TVroom roomToUse = await GetRoom(newChannel.VoiceChannel); TVroom roomLeft = await GetRoom(oldChannel.VoiceChannel); if (roomToUse != null && roomLeft == roomToUse) { await roomToUse.Modify(user); } else { if (roomToUse != null) { await roomToUse.Add(user); } if (roomLeft != null) { await roomLeft.Remove(user); if ((await roomLeft.GetRoomCount()) == 0) { await RemoveRoom(roomLeft.TvChannel); } } } } }
public async Task StartTvRoom(SocketVoiceChannel voicechannel, List <SocketUser> admins) { TVroom room = new TVroom(voicechannel, Console); foreach (SocketUser user in admins) { await room.AddAdmins(user); } foreach (SocketUser user in voicechannel.Users) { if (!admins.Contains(user)) { await room.Add(user, true); } } RunningTVRooms.Add($"{voicechannel.Id}", room); await Console.UpdateObservers(RunningTVRooms.Values.Count.ToString() + " rooms running"); }