1
Fork 0
mirror of https://gitlab.com/Kwoth/nadekobot.git synced 2024-10-02 12:09:07 +00:00

dev: .whosplaying code cleanup

This commit is contained in:
Kwoth 2024-08-16 23:46:16 +00:00
parent f66c105cc0
commit d0aa80a004
3 changed files with 30 additions and 21 deletions

View file

@ -8,6 +8,4 @@ public class UserXpStats : DbEntity
public long Xp { get; set; }
public long AwardedXp { get; set; }
public XpNotificationLocation NotifyOnLevelUp { get; set; }
}
public enum XpNotificationLocation { None, Dm, Channel }
}

View file

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

View file

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