Skip to content

Commit d2b2f8c

Browse files
committed
Fix CCE thrown while parsing role audit log events
1 parent f785fd6 commit d2b2f8c

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

src/commander/java/com/mcmoddev/mmdbot/commander/TheCommander.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,7 @@ record SlashCommandRegistration(Object fieldValue, RegisterSlashCommand annotati
459459
.disableCache(CacheFlag.ONLINE_STATUS)
460460
.disableCache(CacheFlag.VOICE_STATE)
461461
.disableCache(CacheFlag.ACTIVITY)
462+
.disableCache(CacheFlag.SCHEDULED_EVENTS)
462463
.setEnabledIntents(INTENTS);
463464
EventListeners.register(builder::addEventListeners);
464465
jda = builder.build().awaitReady();

src/listener/java/com/mcmoddev/mmdbot/thelistener/TheListener.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public Logger getLogger() {
8989

9090
private static final Set<GatewayIntent> INTENTS = Set.of(
9191
GatewayIntent.DIRECT_MESSAGES,
92-
GatewayIntent.GUILD_BANS,
92+
GatewayIntent.GUILD_MODERATION,
9393
GatewayIntent.GUILD_EMOJIS_AND_STICKERS,
9494
GatewayIntent.GUILD_MESSAGES,
9595
GatewayIntent.GUILD_MEMBERS,
@@ -137,6 +137,7 @@ public void start() {
137137
.disableCache(CacheFlag.ONLINE_STATUS)
138138
.disableCache(CacheFlag.VOICE_STATE)
139139
.disableCache(CacheFlag.ACTIVITY)
140+
.disableCache(CacheFlag.SCHEDULED_EVENTS)
140141
.build();
141142
}
142143

src/listener/java/com/mcmoddev/mmdbot/thelistener/events/RoleEvents.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import java.awt.Color;
4646
import java.util.ArrayList;
4747
import java.util.List;
48+
import java.util.Map;
4849
import java.util.function.BiConsumer;
4950
import java.util.stream.Collectors;
5051

@@ -83,14 +84,14 @@ private static List<Role> parseRoles(final AuditLogEntry entry, AuditLogKey logK
8384
// https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-exceptions
8485
// The added/removed roles are marked in the new_value property of the audit log change
8586

86-
final List<String> roleIds = requireNonNull(change.getNewValue());
87-
final List<Role> roles = new ArrayList<>(roleIds.size());
87+
final List<Map<String, String>> roleDatas = requireNonNull(change.getNewValue());
88+
final List<Role> roles = new ArrayList<>(roleDatas.size());
8889
final JDA jda = entry.getJDA();
8990

90-
for (String roleId : roleIds) {
91-
final @Nullable Role roleById = jda.getRoleById(roleId);
91+
for (final Map<String, String> roleData : roleDatas) {
92+
final @Nullable Role roleById = jda.getRoleById(roleData.get("id"));
9293
if (roleById == null) {
93-
LOGGER.warn("Could not find role with ID {} while parsing change key {} for log entry {}", roleId, logKey, entry);
94+
LOGGER.warn("Could not find role with ID {} while parsing change key {} for log entry {}", roleData, logKey, entry);
9495
continue;
9596
}
9697
roles.add(roleById);

src/watcher/java/com/mcmoddev/mmdbot/watcher/TheWatcher.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ public void start() {
297297
.disableCache(CacheFlag.ONLINE_STATUS)
298298
.disableCache(CacheFlag.VOICE_STATE)
299299
.disableCache(CacheFlag.ACTIVITY)
300+
.disableCache(CacheFlag.SCHEDULED_EVENTS)
300301
.enableCache(CacheFlag.FORUM_TAGS)
301302
.setEnabledIntents(INTENTS);
302303
if (oldConfig.hasActivity()) builder.setActivity(Activity.of(oldConfig.getActivityType(), oldConfig.getActivityName()));

0 commit comments

Comments
 (0)