mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-04-24 14:40:14 +00:00
[AB-151] adding ability to define a priority in order to define which listener is executed before another
This commit is contained in:
@@ -5,6 +5,7 @@ import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace
|
|||||||
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlacePost;
|
import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlacePost;
|
||||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
||||||
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
||||||
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
||||||
@@ -37,4 +38,9 @@ public class AssignablePostDeletedListener implements MessageDeletedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return AssignableRoleFeature.ASSIGNABLE_ROLES;
|
return AssignableRoleFeature.ASSIGNABLE_ROLES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.LOW;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePl
|
|||||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
||||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignedRoleUserManagementService;
|
import dev.sheldan.abstracto.assignableroles.service.management.AssignedRoleUserManagementService;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.ReactedAddedListener;
|
import dev.sheldan.abstracto.core.listener.ReactedAddedListener;
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
@@ -130,4 +131,9 @@ public class AssignablePostReactionAdded implements ReactedAddedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return AssignableRoleFeature.ASSIGNABLE_ROLES;
|
return AssignableRoleFeature.ASSIGNABLE_ROLES;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import dev.sheldan.abstracto.assignableroles.models.database.AssignableRolePlace
|
|||||||
import dev.sheldan.abstracto.assignableroles.service.AssignableRoleService;
|
import dev.sheldan.abstracto.assignableroles.service.AssignableRoleService;
|
||||||
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
import dev.sheldan.abstracto.assignableroles.service.management.AssignableRolePlacePostManagementService;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.ReactedRemovedListener;
|
import dev.sheldan.abstracto.core.listener.ReactedRemovedListener;
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
@@ -62,4 +63,9 @@ public class AssignablePostReactionRemoved implements ReactedRemovedListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.experience.listener;
|
package dev.sheldan.abstracto.experience.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageReceivedListener;
|
import dev.sheldan.abstracto.core.listener.MessageReceivedListener;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
|
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
|
||||||
@@ -36,4 +37,9 @@ public class ExperienceTrackerListener implements MessageReceivedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ExperienceFeature.EXPERIENCE;
|
return ExperienceFeature.EXPERIENCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.experience.listener;
|
package dev.sheldan.abstracto.experience.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.JoinListener;
|
import dev.sheldan.abstracto.core.listener.JoinListener;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
import dev.sheldan.abstracto.experience.config.features.ExperienceFeature;
|
||||||
@@ -45,4 +46,9 @@ public class JoiningUserRoleListener implements JoinListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ExperienceFeature.EXPERIENCE;
|
return ExperienceFeature.EXPERIENCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.moderation.listener;
|
package dev.sheldan.abstracto.moderation.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.JoinListener;
|
import dev.sheldan.abstracto.core.listener.JoinListener;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
import dev.sheldan.abstracto.core.service.PostTargetService;
|
import dev.sheldan.abstracto.core.service.PostTargetService;
|
||||||
@@ -47,4 +48,9 @@ public class JoinLogger implements JoinListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModerationFeatures.LOGGING;
|
return ModerationFeatures.LOGGING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.moderation.listener;
|
package dev.sheldan.abstracto.moderation.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.JoinListener;
|
import dev.sheldan.abstracto.core.listener.JoinListener;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
import dev.sheldan.abstracto.moderation.config.features.ModerationFeatures;
|
import dev.sheldan.abstracto.moderation.config.features.ModerationFeatures;
|
||||||
@@ -34,4 +35,9 @@ public class JoinMuteListener implements JoinListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModerationFeatures.MUTING;
|
return ModerationFeatures.MUTING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.moderation.listener;
|
package dev.sheldan.abstracto.moderation.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.LeaveListener;
|
import dev.sheldan.abstracto.core.listener.LeaveListener;
|
||||||
import dev.sheldan.abstracto.core.service.PostTargetService;
|
import dev.sheldan.abstracto.core.service.PostTargetService;
|
||||||
import dev.sheldan.abstracto.moderation.config.features.ModerationFeatures;
|
import dev.sheldan.abstracto.moderation.config.features.ModerationFeatures;
|
||||||
@@ -49,4 +50,9 @@ public class LeaveLogger implements LeaveListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModerationFeatures.LOGGING;
|
return ModerationFeatures.LOGGING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.moderation.listener;
|
package dev.sheldan.abstracto.moderation.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
||||||
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
||||||
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
||||||
@@ -74,4 +75,9 @@ public class MessageDeleteLogListener implements MessageDeletedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModerationFeatures.LOGGING;
|
return ModerationFeatures.LOGGING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.moderation.listener;
|
package dev.sheldan.abstracto.moderation.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageTextUpdatedListener;
|
import dev.sheldan.abstracto.core.listener.MessageTextUpdatedListener;
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
import dev.sheldan.abstracto.moderation.config.features.ModerationFeatures;
|
import dev.sheldan.abstracto.moderation.config.features.ModerationFeatures;
|
||||||
@@ -51,4 +52,9 @@ public class MessageEditedListener implements MessageTextUpdatedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModerationFeatures.LOGGING;
|
return ModerationFeatures.LOGGING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.modmail.listener;
|
package dev.sheldan.abstracto.modmail.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
||||||
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
||||||
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
||||||
@@ -54,7 +55,7 @@ public class ModMailMessageDeletedListener implements MessageDeletedListener {
|
|||||||
} else {
|
} else {
|
||||||
channelDeletePromise = CompletableFuture.completedFuture(null);
|
channelDeletePromise = CompletableFuture.completedFuture(null);
|
||||||
}
|
}
|
||||||
CompletableFuture.allOf(dmDeletePromise, channelDeletePromise).thenAccept(unused ->
|
CompletableFuture.allOf(dmDeletePromise, channelDeletePromise).whenComplete((unused, throwable) ->
|
||||||
self.removeMessageFromThread(messageBefore.getMessageId())
|
self.removeMessageFromThread(messageBefore.getMessageId())
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@@ -74,4 +75,9 @@ public class ModMailMessageDeletedListener implements MessageDeletedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModMailFeatures.MOD_MAIL;
|
return ModMailFeatures.MOD_MAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import dev.sheldan.abstracto.core.command.config.Parameters;
|
|||||||
import dev.sheldan.abstracto.core.command.service.CommandRegistry;
|
import dev.sheldan.abstracto.core.command.service.CommandRegistry;
|
||||||
import dev.sheldan.abstracto.core.command.service.CommandService;
|
import dev.sheldan.abstracto.core.command.service.CommandService;
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageTextUpdatedListener;
|
import dev.sheldan.abstracto.core.listener.MessageTextUpdatedListener;
|
||||||
import dev.sheldan.abstracto.core.models.FullUserInServer;
|
import dev.sheldan.abstracto.core.models.FullUserInServer;
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
@@ -129,4 +130,9 @@ public class ModMailMessageEditedListener implements MessageTextUpdatedListener
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModMailFeatures.MOD_MAIL;
|
return ModMailFeatures.MOD_MAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.modmail.listener;
|
package dev.sheldan.abstracto.modmail.listener;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.PrivateMessageReceivedListener;
|
import dev.sheldan.abstracto.core.listener.PrivateMessageReceivedListener;
|
||||||
import dev.sheldan.abstracto.core.models.database.AUser;
|
import dev.sheldan.abstracto.core.models.database.AUser;
|
||||||
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
|
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
|
||||||
@@ -64,4 +65,9 @@ public class ModMailMessageListener implements PrivateMessageReceivedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return ModMailFeatures.MOD_MAIL;
|
return ModMailFeatures.MOD_MAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.utility.listener.embed;
|
package dev.sheldan.abstracto.utility.listener.embed;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageReceivedListener;
|
import dev.sheldan.abstracto.core.listener.MessageReceivedListener;
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
import dev.sheldan.abstracto.core.service.MessageCache;
|
import dev.sheldan.abstracto.core.service.MessageCache;
|
||||||
@@ -76,4 +77,9 @@ public class MessageEmbedListener implements MessageReceivedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return UtilityFeature.LINK_EMBEDS;
|
return UtilityFeature.LINK_EMBEDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.MEDIUM;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.utility.listener.embed;
|
package dev.sheldan.abstracto.utility.listener.embed;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.ReactedAddedListener;
|
import dev.sheldan.abstracto.core.listener.ReactedAddedListener;
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
import dev.sheldan.abstracto.core.models.database.AEmote;
|
import dev.sheldan.abstracto.core.models.database.AEmote;
|
||||||
@@ -72,4 +73,9 @@ public class MessageEmbedRemovalReactionListener implements ReactedAddedListener
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return UtilityFeature.LINK_EMBEDS;
|
return UtilityFeature.LINK_EMBEDS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.utility.listener.starboard;
|
package dev.sheldan.abstracto.utility.listener.starboard;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.ReactedAddedListener;
|
import dev.sheldan.abstracto.core.listener.ReactedAddedListener;
|
||||||
import dev.sheldan.abstracto.core.listener.ReactedRemovedListener;
|
import dev.sheldan.abstracto.core.listener.ReactedRemovedListener;
|
||||||
import dev.sheldan.abstracto.core.listener.ReactionClearedListener;
|
import dev.sheldan.abstracto.core.listener.ReactionClearedListener;
|
||||||
@@ -165,4 +166,9 @@ public class StarboardListener implements ReactedAddedListener, ReactedRemovedLi
|
|||||||
completelyRemoveStarboardPost(starboardPost);
|
completelyRemoveStarboardPost(starboardPost);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package dev.sheldan.abstracto.utility.listener.starboard;
|
package dev.sheldan.abstracto.utility.listener.starboard;
|
||||||
|
|
||||||
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
import dev.sheldan.abstracto.core.config.FeatureEnum;
|
||||||
|
import dev.sheldan.abstracto.core.config.ListenerPriority;
|
||||||
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
import dev.sheldan.abstracto.core.listener.MessageDeletedListener;
|
||||||
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
||||||
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
||||||
@@ -36,4 +37,9 @@ public class StarboardPostDeletedListener implements MessageDeletedListener {
|
|||||||
public FeatureEnum getFeature() {
|
public FeatureEnum getFeature() {
|
||||||
return UtilityFeature.STARBOARD;
|
return UtilityFeature.STARBOARD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getPriority() {
|
||||||
|
return ListenerPriority.HIGH;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,9 @@ import org.springframework.transaction.annotation.Propagation;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -57,4 +60,9 @@ public class JoinListenerBean extends ListenerAdapter {
|
|||||||
log.trace("Executing join listener {} for member {} in guild {}.", joinListener.getClass().getName(), event.getMember().getId(), event.getGuild().getId());
|
log.trace("Executing join listener {} for member {} in guild {}.", joinListener.getClass().getName(), event.getMember().getId(), event.getGuild().getId());
|
||||||
joinListener.execute(event.getMember(), event.getGuild(), aUserInAServer);
|
joinListener.execute(event.getMember(), event.getGuild(), aUserInAServer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void postConstruct() {
|
||||||
|
listenerList.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import org.springframework.transaction.annotation.Propagation;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -52,4 +54,9 @@ public class LeaveListenerBean extends ListenerAdapter {
|
|||||||
log.trace("Executing leave listener {} for member {} in guild {}.", leaveListener.getClass().getName(), event.getMember().getId(), event.getGuild().getId());
|
log.trace("Executing leave listener {} for member {} in guild {}.", leaveListener.getClass().getName(), event.getMember().getId(), event.getGuild().getId());
|
||||||
leaveListener.execute(event.getMember(), event.getGuild());
|
leaveListener.execute(event.getMember(), event.getGuild());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void postConstruct() {
|
||||||
|
listenerList.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import org.springframework.transaction.annotation.Propagation;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
@@ -106,4 +108,9 @@ public class MessageDeletedListenerBean extends ListenerAdapter {
|
|||||||
log.trace("Executing message deleted listener {} for message {} in guild {}.", messageDeletedListener.getClass().getName(), cachedMessage.getMessageId(), cachedMessage.getMessageId());
|
log.trace("Executing message deleted listener {} for message {} in guild {}.", messageDeletedListener.getClass().getName(), cachedMessage.getMessageId(), cachedMessage.getMessageId());
|
||||||
messageDeletedListener.execute(cachedMessage, authorUser, authorMember);
|
messageDeletedListener.execute(cachedMessage, authorUser, authorMember);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void postConstruct() {
|
||||||
|
listener.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import org.springframework.transaction.annotation.Propagation;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -88,4 +90,10 @@ public class MessageReceivedListenerBean extends ListenerAdapter {
|
|||||||
log.trace("Executing private message listener {} for member {}.", messageReceivedListener.getClass().getName(), event.getAuthor().getId());
|
log.trace("Executing private message listener {} for member {}.", messageReceivedListener.getClass().getName(), event.getAuthor().getId());
|
||||||
messageReceivedListener.execute(event.getMessage());
|
messageReceivedListener.execute(event.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void postConstruct() {
|
||||||
|
listenerList.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
privateMessageReceivedListeners.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import org.springframework.transaction.annotation.Propagation;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -69,4 +71,9 @@ public class MessageUpdatedListener extends ListenerAdapter {
|
|||||||
public void executeIndividualMessageUpdatedListener(Message message, CachedMessage cachedMessage, MessageTextUpdatedListener messageTextUpdatedListener) {
|
public void executeIndividualMessageUpdatedListener(Message message, CachedMessage cachedMessage, MessageTextUpdatedListener messageTextUpdatedListener) {
|
||||||
messageTextUpdatedListener.execute(cachedMessage, message);
|
messageTextUpdatedListener.execute(cachedMessage, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void postConstruct() {
|
||||||
|
listener.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ import org.springframework.transaction.annotation.Propagation;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
@@ -198,4 +200,11 @@ public class ReactionUpdatedListener extends ListenerAdapter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostConstruct
|
||||||
|
public void postConstruct() {
|
||||||
|
reactionRemovedListeners.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
addedListenerList.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
clearedListenerList.sort(Comparator.comparing(Prioritized::getPriority).reversed());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package dev.sheldan.abstracto.core.config;
|
||||||
|
|
||||||
|
public class ListenerPriority {
|
||||||
|
public static final Integer HIGHEST = 100;
|
||||||
|
public static final Integer HIGH = 75;
|
||||||
|
public static final Integer MEDIUM = 50;
|
||||||
|
public static final Integer LOW = 25;
|
||||||
|
public static final Integer LOWEST = 0;
|
||||||
|
}
|
||||||
@@ -4,6 +4,6 @@ import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
|||||||
import net.dv8tion.jda.api.entities.Guild;
|
import net.dv8tion.jda.api.entities.Guild;
|
||||||
import net.dv8tion.jda.api.entities.Member;
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
|
|
||||||
public interface JoinListener extends FeatureAware {
|
public interface JoinListener extends FeatureAware, Prioritized {
|
||||||
void execute(Member member, Guild guild, AUserInAServer aUserInAServer);
|
void execute(Member member, Guild guild, AUserInAServer aUserInAServer);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ package dev.sheldan.abstracto.core.listener;
|
|||||||
import net.dv8tion.jda.api.entities.Guild;
|
import net.dv8tion.jda.api.entities.Guild;
|
||||||
import net.dv8tion.jda.api.entities.Member;
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
|
|
||||||
public interface LeaveListener extends FeatureAware {
|
public interface LeaveListener extends FeatureAware, Prioritized {
|
||||||
void execute(Member member, Guild guild);
|
void execute(Member member, Guild guild);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
|
|||||||
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
import dev.sheldan.abstracto.core.models.GuildChannelMember;
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
|
|
||||||
public interface MessageDeletedListener extends FeatureAware {
|
public interface MessageDeletedListener extends FeatureAware, Prioritized {
|
||||||
void execute(CachedMessage messageBefore, AServerAChannelAUser authorUser, GuildChannelMember authorMember);
|
void execute(CachedMessage messageBefore, AServerAChannelAUser authorUser, GuildChannelMember authorMember);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package dev.sheldan.abstracto.core.listener;
|
|||||||
|
|
||||||
import net.dv8tion.jda.api.entities.Message;
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
|
|
||||||
public interface MessageReceivedListener extends FeatureAware {
|
public interface MessageReceivedListener extends FeatureAware, Prioritized {
|
||||||
void execute(Message message);
|
void execute(Message message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,6 @@ package dev.sheldan.abstracto.core.listener;
|
|||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
import net.dv8tion.jda.api.entities.Message;
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
|
|
||||||
public interface MessageTextUpdatedListener extends FeatureAware {
|
public interface MessageTextUpdatedListener extends FeatureAware, Prioritized {
|
||||||
void execute(CachedMessage messageBefore, Message messageAfter);
|
void execute(CachedMessage messageBefore, Message messageAfter);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package dev.sheldan.abstracto.core.listener;
|
||||||
|
|
||||||
|
public interface Prioritized {
|
||||||
|
Integer getPriority();
|
||||||
|
}
|
||||||
@@ -2,6 +2,6 @@ package dev.sheldan.abstracto.core.listener;
|
|||||||
|
|
||||||
import net.dv8tion.jda.api.entities.Message;
|
import net.dv8tion.jda.api.entities.Message;
|
||||||
|
|
||||||
public interface PrivateMessageReceivedListener extends FeatureAware {
|
public interface PrivateMessageReceivedListener extends FeatureAware, Prioritized {
|
||||||
void execute(Message message);
|
void execute(Message message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
|||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
import net.dv8tion.jda.api.events.message.guild.react.GuildMessageReactionAddEvent;
|
import net.dv8tion.jda.api.events.message.guild.react.GuildMessageReactionAddEvent;
|
||||||
|
|
||||||
public interface ReactedAddedListener extends FeatureAware {
|
public interface ReactedAddedListener extends FeatureAware, Prioritized {
|
||||||
void executeReactionAdded(CachedMessage message, GuildMessageReactionAddEvent event, AUserInAServer userAdding);
|
void executeReactionAdded(CachedMessage message, GuildMessageReactionAddEvent event, AUserInAServer userAdding);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,6 @@ import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
|||||||
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
|
||||||
import net.dv8tion.jda.api.events.message.guild.react.GuildMessageReactionRemoveEvent;
|
import net.dv8tion.jda.api.events.message.guild.react.GuildMessageReactionRemoveEvent;
|
||||||
|
|
||||||
public interface ReactedRemovedListener extends FeatureAware {
|
public interface ReactedRemovedListener extends FeatureAware, Prioritized {
|
||||||
void executeReactionRemoved(CachedMessage message, GuildMessageReactionRemoveEvent reaction, AUserInAServer userRemoving);
|
void executeReactionRemoved(CachedMessage message, GuildMessageReactionRemoveEvent reaction, AUserInAServer userRemoving);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ package dev.sheldan.abstracto.core.listener;
|
|||||||
|
|
||||||
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
|
||||||
|
|
||||||
public interface ReactionClearedListener extends FeatureAware {
|
public interface ReactionClearedListener extends FeatureAware, Prioritized {
|
||||||
void executeReactionCleared(CachedMessage message);
|
void executeReactionCleared(CachedMessage message);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user