public async Task <string> GetUserList(SocketVoiceChannel room) { StringBuilder output = new StringBuilder(); TVroom currentRoom = await GetRoom(room); if (currentRoom != null) { output.AppendLine($"{currentRoom.TvChannel.Name}"); output.AppendLine("Admins:"); foreach (SocketUser user in currentRoom.Admins) { output.AppendLine($"{user.Username}"); } output.AppendLine("Allowed:"); foreach (SocketUser user in currentRoom.Allowed) { output.AppendLine($"{user.Username}"); } output.AppendLine("Muted:"); foreach (SocketUser user in currentRoom.Muted) { output.AppendLine($"{user.Username}"); } } else { output.AppendLine("No tv rooms in this channel"); } return(output.ToString()); }
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 <bool> RemoveRoom(SocketVoiceChannel voicechannel, SocketUser user) { TVroom room = await GetRoom(voicechannel); if (room != null && room.Admins.Contains(user)) { await RemoveRoom(voicechannel); return(true); } else { return(false); } }
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"); }