mirror of
https://github.com/TeamOctolings/Octobot.git
synced 2025-05-10 16:03:15 +03:00
Backfill member data when a guild is loaded or a new member joins it (#77)
This PR backfills member data when a guild is loaded or a new member joins it. The reason for that is some actions that happen on member tick (default role grant, nickname filtering) would only occur if a member had data related to them (due to being banned or setting a reminder). In addition, the `.editorconfig` was updated with new inspections provided by a new release of Rider, 2023.2 See explanations for some changes in comments. --------- Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
This commit is contained in:
parent
d023033ed4
commit
e9f7825e4a
10 changed files with 61 additions and 35 deletions
|
@ -43,7 +43,13 @@ public class GuildLoadedResponder : IResponder<IGuildCreate>
|
|||
var guild = gatewayEvent.Guild.AsT0;
|
||||
_logger.LogInformation("Joined guild \"{Name}\"", guild.Name);
|
||||
|
||||
var cfg = await _guildData.GetSettings(guild.ID, ct);
|
||||
var data = await _guildData.GetData(guild.ID, ct);
|
||||
var cfg = data.Settings;
|
||||
foreach (var member in guild.Members.Where(m => m.User.HasValue))
|
||||
{
|
||||
data.GetOrCreateMemberData(member.User.Value.ID);
|
||||
}
|
||||
|
||||
if (!GuildSettings.ReceiveStartupMessages.Get(cfg))
|
||||
{
|
||||
return Result.FromSuccess();
|
||||
|
|
|
@ -38,12 +38,13 @@ public class GuildMemberJoinedResponder : IResponder<IGuildMemberAdd>
|
|||
|
||||
var data = await _guildData.GetData(gatewayEvent.GuildID, ct);
|
||||
var cfg = data.Settings;
|
||||
var memberData = data.GetOrCreateMemberData(user.ID);
|
||||
|
||||
if (GuildSettings.ReturnRolesOnRejoin.Get(cfg))
|
||||
{
|
||||
var result = await _guildApi.ModifyGuildMemberAsync(
|
||||
gatewayEvent.GuildID, user.ID,
|
||||
roles: data.GetMemberData(user.ID).Roles.ConvertAll(r => r.ToSnowflake()), ct: ct);
|
||||
roles: memberData.Roles.ConvertAll(r => r.ToSnowflake()), ct: ct);
|
||||
if (!result.IsSuccess)
|
||||
{
|
||||
return Result.FromError(result.Error);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue