ComponentBuilder GetButtons(RolesService.RolesSetup setup) { var builder = new ComponentBuilder(); int buttons = 0; foreach (var emoji in setup.Roles) { IEmote em; if (Emote.TryParse(emoji.Key, out var emote)) { em = emote; } else { em = new Emoji(emoji.Key); } var role = Context.Guild.GetRole(emoji.Value); var name = role?.Name ?? emoji.Value.ToString(); builder.WithButton(name, emoji.Value.ToString(), ButtonStyle.Primary, em, row: (buttons++) / 5 ); } return(builder); }
async Task UpdateMessage(RolesService.RolesSetup setup) { await setup.Message.RemoveAllReactionsAsync(); var builder = new EmbedBuilder(); builder.Title = "Reaction Roles"; builder.Description = "Use the buttons below to toggle certain roles controlling your access to parts of this server."; await setup.Message.ModifyAsync(x => { x.Embed = builder.Build(); x.Components = GetButtons(setup).Build(); }); }