public ReactMenuBuilder WithOption(string Description, IEmote ButtonEmote, ReactMenu.ButtonCallback OnPressed = null, ReactMenu.ButtonCallback OnReleased = null) { ReactMenu.OptionInfo Option = new ReactMenu.OptionInfo { Description = Description, Button = ButtonEmote }; if (OnPressed != null) { Option.PressedCallback += OnPressed; } else if (DefaultPressedCallback != null) { Option.PressedCallback += DefaultPressedCallback; } if (OnReleased != null) { Option.ReleasedCallback += OnReleased; } else if (DefaultReleasedCallback != null) { Option.ReleasedCallback += DefaultReleasedCallback; } Menu.Options.Add(Option); return(this); }
private Task ReactionRemoved(Cacheable <IUserMessage, ulong> Message, ISocketMessageChannel Channel, SocketReaction Reaction) { if (Reaction.User.Value.IsBot) { return(Task.CompletedTask); } ReactMenu Menu; if (Menus.TryGetValue(Message.Id, out Menu)) { ReactMenu.OptionInfo Option = Menu.GetOptionByEmoji(Reaction.Emote); Option.Released(Client, Channel, Reaction.User.Value); } return(Task.CompletedTask); }
private async Task ReactionAdded(Cacheable <Discord.IUserMessage, ulong> Message, ISocketMessageChannel Channel, SocketReaction Reaction) { if (Reaction.User.Value.IsBot) { return; } ReactMenu Menu; if (Menus.TryGetValue(Message.Id, out Menu)) { ReactMenu.OptionInfo Option = Menu.GetOptionByEmoji(Reaction.Emote); await Option.Pressed(Client, Channel, Reaction.User.Value); if (Menu.ClearReactAfterPress) { var Msg = await Message.GetOrDownloadAsync(); await Msg.RemoveReactionAsync(Reaction.Emote, Reaction.User.Value); } } }