public static async Task LobbyInviteMenu(UserAccount user, IUserMessage message, IEmote emote, ContextIds idList) { switch (emote.Name.ToLower()) { case "check": if (!user.Char.InCombat) { if (user.InviteMessages.ContainsKey(message.Id)) { var otherUser = UserHandler.GetUser(user.InviteMessages[message.Id]); if (otherUser.HasLobby()) { var lobby = otherUser.CombatLobby; user.InviteMessages.Remove(message.Id); user.RemoveAllReactionMessages(14); await message.RemoveAllReactionsAsync(); //FOR FUTURE USE- When bot has no permissions, this can be used to remove bot-only reactions //await message.RemoveReactionAsync(await MessageHandler.GetEmoji(736480922152730665), message.Author); if (lobby.IsLobbyFull()) { await message.ModifyAsync(m => { m.Content = "Joining failed. Lobby is full."; }); } else { lobby.AddPlayer(user); user.CombatLobby = lobby; string url = MessageHandler.GetImageURL(ImageGenerator.PvPSoloLobby(lobby)).Result; await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.PvPLobby(lobby, url, user); m.Content = ""; }); await MessageHandler.PvPLobbyEmojis(message, user); user.ReactionMessages.Add(message.Id, 12); //Update the menu of the person who sent the invite await MessageHandler.UpdateMenu(otherUser, idList.ChannelId, 12, ""); /*foreach(KeyValuePair<ulong, int> kvp in otherUser.ReactionMessages) * { * if(kvp.Value == 12) * { * IMessage teamMess = await message.Channel.GetMessageAsync(kvp.Key); * if(teamMess is IUserMessage) * { * IUserMessage userTeamMess = (IUserMessage)teamMess; * await userTeamMess.ModifyAsync(m => {m.Embed = MonEmbedBuilder.TeamMenu(otherUser); m.Content = "";}); * } * } * }*/ } } } } break; case "redx": user.InviteMessages.Remove(message.Id); user.ReactionMessages.Remove(message.Id); await message.ModifyAsync(m => { m.Content = "Invite Declined."; }); break; default: break; } }
public static async Task TeamSettingsMenu(UserAccount user, IUserMessage message, IEmote emote, ContextIds idList) { Team team = user.GetTeam(); if (team != null) { switch (emote.Name.ToLower()) { case "back1": user.RemoveAllReactionMessages(8); user.RemoveAllReactionMessages(7); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.TeamMenu(user); m.Content = ""; }); await MessageHandler.TeamMenuEmojis(message, user); break; case "edit": if (team.CanAccessSettings(user)) { await message.ModifyAsync(m => { m.Content = "**Type your team's name. It must be less than 64 charcters.**"; }); user.ExpectedInput = 2; user.ExpectedInputLocation = message.Channel.Id; } break; case "addpicturegreen": if (team.CanAccessSettings(user)) { await message.ModifyAsync(m => { m.Content = "**Enter your team's picture as an image URL**"; }); user.ExpectedInput = 3; user.ExpectedInputLocation = message.Channel.Id; } break; case "rgb": if (team.CanAccessSettings(user)) { await message.ModifyAsync(m => { m.Content = "**Enter RGB values separated with spaces. Ex: 91 255 10**"; }); user.ExpectedInput = 4; user.ExpectedInputLocation = message.Channel.Id; } break; case "permissions": if (team.CanAccessSettings(user)) { if (team.Permissions == "OwnerOnly") { team.Permissions = "AllMembers"; } else if (team.Permissions == "AllMembers") { team.Permissions = "NoPerms"; } else if (team.Permissions == "NoPerms") { team.Permissions = "OwnerOnly"; } await MessageHandler.UpdateMenu(user, (ISocketMessageChannel)message.Channel, 8, ""); } break; case "locked": case "unlocked": if (team.CanAccessSettings(user)) { if (team.OpenInvite) { team.OpenInvite = false; } else { team.OpenInvite = true; } await MessageHandler.UpdateMenu(user, (ISocketMessageChannel)message.Channel, 8, ""); } break; default: break; } } }