From b4bbe166fc3cd79070a68e7bebfd378bb6d7e039 Mon Sep 17 00:00:00 2001 From: Alexander Trost Date: Wed, 9 Oct 2024 16:38:23 +0200 Subject: [PATCH] fix: issues with discord bot not removing roles Signed-off-by: Alexander Trost --- pkg/discord/bot.go | 7 +------ pkg/discord/modules/modules.go | 2 +- pkg/discord/types/apply.go | 1 + pkg/discord/types/calculate.go | 4 ---- 4 files changed, 3 insertions(+), 11 deletions(-) diff --git a/pkg/discord/bot.go b/pkg/discord/bot.go index 70d26b302..fffa06892 100644 --- a/pkg/discord/bot.go +++ b/pkg/discord/bot.go @@ -107,11 +107,6 @@ func NewBot(p BotParams) (*Bot, error) { state.AddIntents(gateway.IntentGuildPresences) state.AddIntents(gateway.IntentGuildIntegrations) - state.AddHandler(func(*gateway.ReadyEvent) { - me, _ := state.Me() - p.Logger.Info("connected to gateway", zap.String("me", me.Tag())) - }) - cmds, err := commands.New(p.Logger, state, p.Config, p.I18n) if err != nil { return nil, fmt.Errorf("error creating commands for discord bot. %w", err) @@ -205,7 +200,7 @@ func (b *Bot) start(ctx context.Context) error { var ready atomic.Bool b.discord.AddHandler(func(r *gateway.ReadyEvent) { - b.logger.Info(fmt.Sprintf("ready with %d guilds", len(r.Guilds))) + b.logger.Info(fmt.Sprintf("connected to gateway, ready with %d guilds", len(r.Guilds)), zap.String("me", r.User.Tag())) ready.Store(true) }) diff --git a/pkg/discord/modules/modules.go b/pkg/discord/modules/modules.go index dcd79a39f..55fd9fec4 100644 --- a/pkg/discord/modules/modules.go +++ b/pkg/discord/modules/modules.go @@ -74,7 +74,7 @@ func NewBaseModule(logger *zap.Logger, db *sql.DB, discord *state.State, guild d func (m *BaseModule) checkIfJobIgnored(job string) bool { // Ignore certain jobs when syncing (e.g., "temporary" jobs), example: - // "ambulance" job Discord, and an user is currently in the ignored, e.g., "army", jobs. + // "ambulance" job Discord, and an user is currently in the ignored job, e.g., "army". ignoredJobs := m.appCfg.Get().Discord.IgnoredJobs if m.job != job && slices.Contains(ignoredJobs, job) { return true diff --git a/pkg/discord/types/apply.go b/pkg/discord/types/apply.go index 73a68701b..f393fb9b7 100644 --- a/pkg/discord/types/apply.go +++ b/pkg/discord/types/apply.go @@ -19,6 +19,7 @@ func (p *Plan) Apply(ctx context.Context, dc *state.State) ([]discord.Embed, err } dc = dc.WithContext(ctx) + if err := p.applyRoles(dc); err != nil { return logs, err } diff --git a/pkg/discord/types/calculate.go b/pkg/discord/types/calculate.go index 429c25e43..95bd0c64b 100644 --- a/pkg/discord/types/calculate.go +++ b/pkg/discord/types/calculate.go @@ -133,10 +133,6 @@ func (s *State) calculateUserUpdates(ctx context.Context, member discord.Member, if !slices.ContainsFunc(user.Roles.Sum, func(r *Role) bool { return r.ID == role }) { - if s.Roles[idx].Job != "" && s.Roles[idx].Job == user.Job { - continue - } - user.Roles.ToRemove = append(user.Roles.ToRemove, s.Roles[idx]) } }