expose vanity and colors and update from bot
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using Discord;
|
||||
using Discord;
|
||||
using Discord.Interactions;
|
||||
using Discord.Rest;
|
||||
using Discord.WebSocket;
|
||||
@@ -384,13 +384,50 @@ internal class DiscordBot : IHostedService
|
||||
|
||||
_logger.LogInformation($"Checking Group: {group.GID} [{group.Alias}], owned by {group.OwnerUID} ({groupPrimaryUser}), User in Roles: {string.Join(", ", discordUser?.RoleIds ?? new List<ulong>())}");
|
||||
|
||||
if (lodestoneUser == null || discordUser == null || !discordUser.RoleIds.Any(allowedRoleIds.Keys.Contains))
|
||||
var hasAllowedRole = lodestoneUser != null && discordUser != null && discordUser.RoleIds.Any(allowedRoleIds.Keys.Contains);
|
||||
|
||||
if (!hasAllowedRole)
|
||||
{
|
||||
await _botServices.LogToChannel($"VANITY GID REMOVAL: <@{lodestoneUser?.DiscordId ?? 0}> ({lodestoneUser?.User?.UID}) - GID: {group.GID}, Vanity: {group.Alias}").ConfigureAwait(false);
|
||||
|
||||
_logger.LogInformation($"User {lodestoneUser?.User?.UID ?? "unknown"} not in allowed roles, deleting group alias for {group.GID}");
|
||||
group.Alias = null;
|
||||
db.Update(group);
|
||||
|
||||
if (lodestoneUser?.User != null)
|
||||
{
|
||||
lodestoneUser.User.HasVanity = false;
|
||||
db.Update(lodestoneUser.User);
|
||||
|
||||
var secondaryUsers = await db.Auth.Include(u => u.User)
|
||||
.Where(u => u.PrimaryUserUID == lodestoneUser.User.UID).ToListAsync().ConfigureAwait(false);
|
||||
|
||||
foreach (var secondaryUser in secondaryUsers)
|
||||
{
|
||||
secondaryUser.User.HasVanity = false;
|
||||
db.Update(secondaryUser.User);
|
||||
}
|
||||
}
|
||||
|
||||
await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
else if (lodestoneUser?.User != null && lodestoneUser.User.HasVanity != true)
|
||||
{
|
||||
lodestoneUser.User.HasVanity = true;
|
||||
db.Update(lodestoneUser.User);
|
||||
|
||||
var secondaryUsers = await db.Auth.Include(u => u.User)
|
||||
.Where(u => u.PrimaryUserUID == lodestoneUser.User.UID).ToListAsync().ConfigureAwait(false);
|
||||
|
||||
foreach (var secondaryUser in secondaryUsers)
|
||||
{
|
||||
if (secondaryUser.User.HasVanity != true)
|
||||
{
|
||||
secondaryUser.User.HasVanity = true;
|
||||
db.Update(secondaryUser.User);
|
||||
}
|
||||
}
|
||||
|
||||
await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
@@ -400,22 +437,55 @@ internal class DiscordBot : IHostedService
|
||||
var discordUser = await restGuild.GetUserAsync(lodestoneAuth.DiscordId).ConfigureAwait(false);
|
||||
_logger.LogInformation($"Checking User: {lodestoneAuth.DiscordId}, {lodestoneAuth.User.UID} ({lodestoneAuth.User.Alias}), User in Roles: {string.Join(", ", discordUser?.RoleIds ?? new List<ulong>())}");
|
||||
|
||||
if (discordUser == null || !discordUser.RoleIds.Any(u => allowedRoleIds.Keys.Contains(u)))
|
||||
var hasAllowedRole = discordUser != null && discordUser.RoleIds.Any(u => allowedRoleIds.Keys.Contains(u));
|
||||
|
||||
if (!hasAllowedRole)
|
||||
{
|
||||
_logger.LogInformation($"User {lodestoneAuth.User.UID} not in allowed roles, deleting alias");
|
||||
await _botServices.LogToChannel($"VANITY UID REMOVAL: <@{lodestoneAuth.DiscordId}> - UID: {lodestoneAuth.User.UID}, Vanity: {lodestoneAuth.User.Alias}").ConfigureAwait(false);
|
||||
lodestoneAuth.User.Alias = null;
|
||||
lodestoneAuth.User.HasVanity = false;
|
||||
var secondaryUsers = await db.Auth.Include(u => u.User).Where(u => u.PrimaryUserUID == lodestoneAuth.User.UID).ToListAsync().ConfigureAwait(false);
|
||||
foreach (var secondaryUser in secondaryUsers)
|
||||
{
|
||||
_logger.LogInformation($"Secondary User {secondaryUser.User.UID} not in allowed roles, deleting alias");
|
||||
|
||||
secondaryUser.User.Alias = null;
|
||||
secondaryUser.User.HasVanity = false;
|
||||
db.Update(secondaryUser.User);
|
||||
}
|
||||
db.Update(lodestoneAuth.User);
|
||||
await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
var secondaryUsers = await db.Auth.Include(u => u.User)
|
||||
.Where(u => u.PrimaryUserUID == lodestoneAuth.User.UID).ToListAsync().ConfigureAwait(false);
|
||||
|
||||
var hasChanges = false;
|
||||
|
||||
if (lodestoneAuth.User.HasVanity != true)
|
||||
{
|
||||
lodestoneAuth.User.HasVanity = true;
|
||||
db.Update(lodestoneAuth.User);
|
||||
hasChanges = true;
|
||||
}
|
||||
|
||||
foreach (var secondaryUser in secondaryUsers)
|
||||
{
|
||||
if (secondaryUser.User.HasVanity != true)
|
||||
{
|
||||
secondaryUser.User.HasVanity = true;
|
||||
db.Update(secondaryUser.User);
|
||||
hasChanges = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (hasChanges)
|
||||
{
|
||||
await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async Task UpdateStatusAsync(CancellationToken token)
|
||||
|
||||
Reference in New Issue
Block a user