[AB-151] adding ability to define a priority in order to define which listener is executed before another

This commit is contained in:
Sheldan
2020-10-20 21:58:04 +02:00
parent dca98c2953
commit 389b38f4f0
34 changed files with 172 additions and 10 deletions

View File

@@ -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;
}

View File

@@ -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.Member;
public interface JoinListener extends FeatureAware {
public interface JoinListener extends FeatureAware, Prioritized {
void execute(Member member, Guild guild, AUserInAServer aUserInAServer);
}

View File

@@ -3,6 +3,6 @@ package dev.sheldan.abstracto.core.listener;
import net.dv8tion.jda.api.entities.Guild;
import net.dv8tion.jda.api.entities.Member;
public interface LeaveListener extends FeatureAware {
public interface LeaveListener extends FeatureAware, Prioritized {
void execute(Member member, Guild guild);
}

View File

@@ -4,6 +4,6 @@ import dev.sheldan.abstracto.core.models.AServerAChannelAUser;
import dev.sheldan.abstracto.core.models.GuildChannelMember;
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);
}

View File

@@ -2,6 +2,6 @@ package dev.sheldan.abstracto.core.listener;
import net.dv8tion.jda.api.entities.Message;
public interface MessageReceivedListener extends FeatureAware {
public interface MessageReceivedListener extends FeatureAware, Prioritized {
void execute(Message message);
}

View File

@@ -3,6 +3,6 @@ package dev.sheldan.abstracto.core.listener;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import net.dv8tion.jda.api.entities.Message;
public interface MessageTextUpdatedListener extends FeatureAware {
public interface MessageTextUpdatedListener extends FeatureAware, Prioritized {
void execute(CachedMessage messageBefore, Message messageAfter);
}

View File

@@ -0,0 +1,5 @@
package dev.sheldan.abstracto.core.listener;
public interface Prioritized {
Integer getPriority();
}

View File

@@ -2,6 +2,6 @@ package dev.sheldan.abstracto.core.listener;
import net.dv8tion.jda.api.entities.Message;
public interface PrivateMessageReceivedListener extends FeatureAware {
public interface PrivateMessageReceivedListener extends FeatureAware, Prioritized {
void execute(Message message);
}

View File

@@ -4,6 +4,6 @@ import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
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);
}

View File

@@ -4,6 +4,6 @@ import dev.sheldan.abstracto.core.models.cache.CachedMessage;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
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);
}

View File

@@ -2,6 +2,6 @@ package dev.sheldan.abstracto.core.listener;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
public interface ReactionClearedListener extends FeatureAware {
public interface ReactionClearedListener extends FeatureAware, Prioritized {
void executeReactionCleared(CachedMessage message);
}