Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [Command("roles")]
- public async Task GetGuildRoles(CommandContext ctx, int chunkSize = 10) {
- await ctx.TriggerTypingAsync();
- var interactive = ctx.Client.GetInteractivityModule();
- List<Page> pages = null;
- pages = new List<Page>(new Func<Page[]>(() => {
- if (chunkSize >= 31)
- chunkSize = 10;
- if (chunkSize <= 10)
- chunkSize = 10;
- List<Page> list = new List<Page>();
- {
- var roles = ctx.Guild.Roles.ToList();
- var page_ = 0;
- var total = 0;
- for (var i = 0; i < ctx.Guild.Roles.Count; i += chunkSize) {
- page_ = i / chunkSize;
- total = roles.Count / chunkSize;
- var page = new Page {
- Embed = new DiscordEmbedBuilder()
- .WithFooter($"Requested by {ctx.User.Username}#{ctx.User.Discriminator}", ctx.User.AvatarUrl)
- .WithColor(new DiscordColor("#6f18a5"))
- .WithThumbnailUrl(string.IsNullOrEmpty(ctx.Guild.IconUrl) ? ctx.Guild.Owner.AvatarUrl : ctx.Guild.IconUrl)
- .AddField($"Roles [`{page_}/{total}`]", new Func<string>(() => {
- var str = "";
- {
- str = string.Join("\n", roles.GetRange(i, Math.Min(chunkSize, roles.Count - i)).Select(r => $"{r.Mention}"));
- }
- return str;
- })())
- .Build()
- };
- list.Add(page);
- }
- }
- return list.ToArray();
- })());
- await interactive.SendPaginatedMessage(ctx.Channel, ctx.User, pages, TimeSpan.FromMinutes(5), TimeoutBehaviour.Delete);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement