Fixed UserId patron table error

Added au and kz countries as en and kz languages respectively
Strikeout is thinner now on plants
This commit is contained in:
Toastie 2024-11-04 19:19:53 +13:00
parent 945725e87c
commit 090f50b253
Signed by: toastie_t0ast
GPG key ID: 27F3B6855AFD40A4
6 changed files with 75 additions and 42 deletions

View file

@ -2,6 +2,8 @@
Mostly based on [keepachangelog](https://keepachangelog.com/en/1.1.0/) except date format. a-c-f-r-o
## [5.1.19]
## [5.1.18] - 04.11.2024
### Added

View file

@ -15,6 +15,17 @@ service GrpcXp {
rpc AddReward(AddRewardRequest) returns (AddRewardReply);
rpc DeleteReward(DeleteRewardRequest) returns (DeleteRewardReply);
rpc SetServerExclusion(SetServerExclusionRequest) returns (SetServerExclusionReply);
}
message SetServerExclusionRequest {
uint64 guildId = 1;
bool serverExcluded = 2;
}
message SetServerExclusionReply {
bool success = 1;
}
message GetXpLbRequest {
@ -32,7 +43,8 @@ message XpLbUserReply {
string username = 2;
int64 xp = 3;
int64 level = 4;
string avatar = 5;
int64 levelPercent = 5;
string avatar = 6;
}
message ResetUserXpRequest {

View file

@ -3,6 +3,7 @@ namespace EllieBot.Db.Models;
public class PatronUser
{
public int Id { get; set; }
public string UniquePlatformUserId { get; set; }
public ulong UserId { get; set; }
public int AmountCents { get; set; }

View file

@ -169,7 +169,7 @@ public class PlantPickService : IEService, IExecNoCommand
Start = 0,
End = pass.GetGraphemeCount(),
Font = font,
StrikeoutPen = new SolidPen(Color.White, 5),
StrikeoutPen = new SolidPen(Color.White, 3),
TextDecorations = TextDecorations.Strikeout
};

View file

@ -69,5 +69,8 @@ public partial class FlagTranslateService
YE ar
AL sq
AE ar
AU en
NZ en
KZ kz
""";
}

View file

@ -69,10 +69,10 @@ public class XpSvc : GrpcXp.GrpcXpBase, IGrpcSvc, IEService
rews = rews.Concat(roleRews.Select(x => new RewItemReply()
{
Level = x.Level,
Type = "Role",
Type = x.Remove ? "RemoveRole" : "AddRole",
Value = guild.GetRole(x.RoleId)?.ToString() ?? x.RoleId.ToString()
}))
.OrderBy(x => x.Level);
.OrderBy(x => x.Level);
reply.Rewards.AddRange(rews);
@ -207,15 +207,15 @@ public class XpSvc : GrpcXp.GrpcXpBase, IGrpcSvc, IEService
public override async Task<GetXpLbReply> GetXpLb(GetXpLbRequest request, ServerCallContext context)
{
if (request.Page < 0)
throw new RpcException(new Status(StatusCode.InvalidArgument, "Page must be greater than or equal to 0"));
if (request.Page < 1)
throw new RpcException(new Status(StatusCode.InvalidArgument, "Page must be greater than or equal to 1"));
var guild = _client.GetGuild(request.GuildId);
if (guild is null)
throw new RpcException(new Status(StatusCode.NotFound, "Guild not found"));
var data = await _xp.GetGuildUserXps(request.GuildId, request.Page);
var data = await _xp.GetGuildUserXps(request.GuildId, request.Page - 1);
var total = await _xp.GetTotalGuildUsers(request.GuildId);
var reply = new GetXpLbReply
@ -223,45 +223,60 @@ public class XpSvc : GrpcXp.GrpcXpBase, IGrpcSvc, IEService
Total = total
};
reply.Users.AddRange(await data
.Select(async x =>
{
var user = guild.GetUser(x.UserId);
var users = await data
.Select(async x =>
{
var user = guild.GetUser(x.UserId);
if (user is null)
{
var du = await _duSvc.GetUserAsync(x.UserId);
if (du is null)
return new XpLbUserReply
{
UserId = x.UserId,
Avatar = string.Empty,
Username = string.Empty,
Xp = x.Xp,
Level = new LevelStats(x.Xp).Level
};
if (user is null)
{
var du = await _duSvc.GetUserAsync(x.UserId);
if (du is null)
return new XpLbUserReply
{
UserId = x.UserId,
Avatar = string.Empty,
Username = string.Empty,
Xp = x.Xp,
Level = new LevelStats(x.Xp).Level
};
return new XpLbUserReply()
{
UserId = x.UserId,
Avatar = du.RealAvatarUrl()?.ToString() ?? string.Empty,
Username = du.ToString() ?? string.Empty,
Xp = x.Xp,
Level = new LevelStats(x.Xp).Level
};
}
return new XpLbUserReply()
{
UserId = x.UserId,
Avatar = du.RealAvatarUrl()?.ToString() ?? string.Empty,
Username = du.ToString() ?? string.Empty,
Xp = x.Xp,
Level = new LevelStats(x.Xp).Level
};
}
return new XpLbUserReply
{
UserId = x.UserId,
Avatar = user?.GetAvatarUrl() ?? string.Empty,
Username = user?.ToString() ?? string.Empty,
Xp = x.Xp,
Level = new LevelStats(x.Xp).Level
};
})
.WhenAll());
return new XpLbUserReply
{
UserId = x.UserId,
Avatar = user?.GetAvatarUrl() ?? string.Empty,
Username = user?.ToString() ?? string.Empty,
Xp = x.Xp,
Level = new LevelStats(x.Xp).Level
};
})
.WhenAll();
reply.Users.AddRange(users);
return reply;
}
public override async Task<SetServerExclusionReply> SetServerExclusion(
SetServerExclusionRequest request,
ServerCallContext context)
{
await Task.Yield();
var newValue = _xp.ToggleExcludeServer(request.GuildId);
return new()
{
Success = newValue
};
}
}