mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-13 19:41:38 +00:00
added listener to listen for all reactions removed
This commit is contained in:
@@ -38,6 +38,9 @@ public class ReactionUpdatedListener extends ListenerAdapter {
|
||||
@Autowired
|
||||
private List<ReactedAddedListener> addedListenerList;
|
||||
|
||||
@Autowired
|
||||
private List<ReactionClearedListener> clearedListenerList;
|
||||
|
||||
@Autowired
|
||||
private List<ReactedRemovedListener> reactionRemovedListener;
|
||||
|
||||
@@ -156,6 +159,21 @@ public class ReactionUpdatedListener extends ListenerAdapter {
|
||||
});
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void callClearListeners(@Nonnull GuildMessageReactionRemoveAllEvent event, CachedMessage cachedMessage) {
|
||||
clearedListenerList.forEach(reactionRemovedListener -> {
|
||||
FeatureConfig feature = featureConfigService.getFeatureDisplayForFeature(reactionRemovedListener.getFeature());
|
||||
if(!featureFlagService.isFeatureEnabled(feature, event.getGuild().getIdLong())) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
reactionRemovedListener.executeReactionCleared(cachedMessage);
|
||||
} catch (AbstractoRunTimeException e) {
|
||||
log.warn(String.format("Failed to execute reaction clear listener %s.", reactionRemovedListener.getClass().getName()), e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void onGuildMessageReactionRemoveAll(@Nonnull GuildMessageReactionRemoveAllEvent event) {
|
||||
@@ -163,6 +181,7 @@ public class ReactionUpdatedListener extends ListenerAdapter {
|
||||
asyncMessageFromCache.thenAccept(cachedMessage -> {
|
||||
cachedMessage.getReactions().clear();
|
||||
messageCache.putMessageInCache(cachedMessage);
|
||||
self.callClearListeners(event, cachedMessage);
|
||||
}) .exceptionally(throwable -> {
|
||||
log.error("Message retrieval from cache failed for message {}", event.getMessageIdLong(), throwable);
|
||||
return null;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package dev.sheldan.abstracto.core.listener;
|
||||
|
||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||
|
||||
public interface ReactionClearedListener extends FeatureAware {
|
||||
void executeReactionCleared(CachedMessage message);
|
||||
}
|
||||
@@ -21,9 +21,10 @@ public class EmoteUtils {
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
} else if(reaction.isEmoji()){
|
||||
return reaction.getEmoji().equals(emote.getEmoteKey());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static Optional<CachedReaction> getReactionFromMessageByEmote(CachedMessage message, AEmote emote) {
|
||||
|
||||
Reference in New Issue
Block a user