mirror of
https://github.com/Caraxi/mare.server.git
synced 2025-12-12 22:17:22 +01:00
fix check for vanity roles
This commit is contained in:
parent
b0a05800b9
commit
6006f42fc2
1 changed files with 3 additions and 27 deletions
|
|
@ -204,9 +204,9 @@ internal class DiscordBot : IHostedService
|
||||||
await _interactionModule.RegisterCommandsToGuildAsync(guild.Id, true).ConfigureAwait(false);
|
await _interactionModule.RegisterCommandsToGuildAsync(guild.Id, true).ConfigureAwait(false);
|
||||||
|
|
||||||
await CreateOrUpdateModal(guild).ConfigureAwait(false);
|
await CreateOrUpdateModal(guild).ConfigureAwait(false);
|
||||||
|
_ = UpdateVanityRoles(guild);
|
||||||
_ = RemoveUsersNotInVanityRole();
|
_ = RemoveUsersNotInVanityRole();
|
||||||
_ = ProcessReportsQueue();
|
_ = ProcessReportsQueue();
|
||||||
_ = UpdateVanityRoles(guild);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task UpdateVanityRoles(RestGuild guild)
|
private async Task UpdateVanityRoles(RestGuild guild)
|
||||||
|
|
@ -395,9 +395,7 @@ internal class DiscordBot : IHostedService
|
||||||
_vanityUpdateCts = new();
|
_vanityUpdateCts = new();
|
||||||
var token = _vanityUpdateCts.Token;
|
var token = _vanityUpdateCts.Token;
|
||||||
var guild = (await _discordClient.Rest.GetGuildsAsync()).First();
|
var guild = (await _discordClient.Rest.GetGuildsAsync()).First();
|
||||||
var commands = await guild.GetApplicationCommandsAsync();
|
|
||||||
var appId = await _discordClient.GetApplicationInfoAsync().ConfigureAwait(false);
|
var appId = await _discordClient.GetApplicationInfoAsync().ConfigureAwait(false);
|
||||||
var vanityCommandId = commands.First(c => c.ApplicationId == appId.Id && c.Name == "setvanityuid").Id;
|
|
||||||
|
|
||||||
while (!token.IsCancellationRequested)
|
while (!token.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
|
|
@ -406,31 +404,9 @@ internal class DiscordBot : IHostedService
|
||||||
_logger.LogInformation($"Cleaning up Vanity UIDs");
|
_logger.LogInformation($"Cleaning up Vanity UIDs");
|
||||||
_logger.LogInformation("Getting application commands from guild {guildName}", guild.Name);
|
_logger.LogInformation("Getting application commands from guild {guildName}", guild.Name);
|
||||||
var restGuild = await _discordClient.Rest.GetGuildAsync(guild.Id);
|
var restGuild = await _discordClient.Rest.GetGuildAsync(guild.Id);
|
||||||
var vanityCommand = await restGuild.GetSlashCommandAsync(vanityCommandId).ConfigureAwait(false);
|
|
||||||
GuildApplicationCommandPermission commandPermissions = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
_logger.LogInformation($"Getting command permissions");
|
|
||||||
commandPermissions = await vanityCommand.GetCommandPermission().ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.LogError(ex, "Error getting command permissions");
|
|
||||||
throw new Exception("Can't get command permissions");
|
|
||||||
}
|
|
||||||
|
|
||||||
_logger.LogInformation($"Getting allowed role ids from permissions");
|
ulong[] allowedRoleIds = _configurationService.GetValueOrDefault(nameof(ServicesConfiguration.VanityRoles), Array.Empty<ulong>());
|
||||||
List<ulong> allowedRoleIds = new();
|
_logger.LogInformation($"Allowed role ids: {string.Join(", ", allowedRoleIds)}");
|
||||||
try
|
|
||||||
{
|
|
||||||
allowedRoleIds = (from perm in commandPermissions.Permissions where perm.TargetType == ApplicationCommandPermissionTarget.Role where perm.Permission select perm.TargetId).ToList();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.LogError(ex, "Error resolving permissions to roles");
|
|
||||||
}
|
|
||||||
|
|
||||||
_logger.LogInformation($"Found allowed role ids: {string.Join(", ", allowedRoleIds)}");
|
|
||||||
|
|
||||||
if (allowedRoleIds.Any())
|
if (allowedRoleIds.Any())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue