.whosplaying code cleanup

This commit is contained in:
Toastie (DCS Team) 2024-08-17 19:02:58 +12:00
parent 58e59a208f
commit ba993a1bab
Signed by: toastie_t0ast
GPG key ID: 27F3B6855AFD40A4
3 changed files with 31 additions and 22 deletions

View file

@ -9,5 +9,3 @@ public class UserXpStats : DbEntity
public long AwardedXp { get; set; } public long AwardedXp { get; set; }
public XpNotificationLocation NotifyOnLevelUp { get; set; } public XpNotificationLocation NotifyOnLevelUp { get; set; }
} }
public enum XpNotificationLocation { None, Dm, Channel }

View file

@ -0,0 +1,7 @@
namespace EllieBot.Db.Models;
public enum XpNotificationLocation
{
None,
Dm,
}

View file

@ -112,28 +112,32 @@ public partial class Utility : EllieModule
return; return;
} }
var rng = new EllieRandom();
var arr = await Task.Run(() => socketGuild.Users var userNames = new List<IUser>(socketGuild.Users.Count / 100);
.Where(u => u.Activities.Any(x foreach (var user in socketGuild.Users)
=> x.Name is not null && x.Name.ToUpperInvariant() == game)) {
.Select(u => u.Username) if (user.Activities.Any(x => x.Name is not null && x.Name.ToUpperInvariant() == game))
.OrderBy(_ => rng.Next()) {
.Take(60) userNames.Add(user);
.ToArray()); }
}
userNames.Shuffle();
var i = 0; var i = 0;
if (arr.Length == 0) if (userNames.Count == 0)
await Response().Error(strs.nobody_playing_game).SendAsync();
else
{ {
await Response() await Response().Error(strs.nobody_playing_game).SendAsync();
.Confirm("```css\n" return;
+ string.Join("\n",
arr.GroupBy(_ => i++ / 2)
.Select(ig => string.Concat(ig.Select(el => $"• {el,-27}"))))
+ "\n```")
.SendAsync();
} }
var users = userNames.GroupBy(_ => i++ / 2)
.Select(ig => string.Concat(ig.Select(el => $"• {el,-27}")))
.Join('\n');
await Response()
.Confirm(Format.Code(users))
.SendAsync();
} }
[Cmd] [Cmd]