.inrole is now paginated

This commit is contained in:
Master Kwoth 2017-11-16 16:20:00 +01:00
parent dc0c8e3088
commit 0ca82ab17c

View File

@ -93,15 +93,17 @@ namespace NadekoBot.Modules.Utility
{ {
var rng = new NadekoRandom(); var rng = new NadekoRandom();
var usrs = (await Context.Guild.GetUsersAsync()).ToArray(); var usrs = (await Context.Guild.GetUsersAsync()).ToArray();
var roleUsers = usrs.Where(u => u.RoleIds.Contains(role.Id)).Select(u => u.ToString()) var roleUsers = usrs
.Where(u => u.RoleIds.Contains(role.Id))
.Select(u => u.ToString())
.ToArray(); .ToArray();
var inroleusers = string.Join(", ", roleUsers
.OrderBy(x => rng.Next()) await Context.Channel.SendPaginatedConfirmAsync(_client, 0, (cur) =>
.Take(50)); {
var embed = new EmbedBuilder().WithOkColor() return new EmbedBuilder().WithOkColor()
.WithTitle(" " + Format.Bold(GetText("inrole_list", Format.Bold(role.Name))) + $" - {roleUsers.Length}") .WithTitle(Format.Bold(GetText("inrole_list", Format.Bold(role.Name))) + $" - {roleUsers.Length}")
.WithDescription($"```css\n[{role.Name}]\n{inroleusers}```"); .WithDescription(string.Join("\n", roleUsers.Skip(cur * 20).Take(20)));
await Context.Channel.EmbedAsync(embed).ConfigureAwait(false); }, roleUsers.Length, 20).ConfigureAwait(false);
} }
[NadekoCommand, Usage, Description, Aliases] [NadekoCommand, Usage, Description, Aliases]