[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

@@ -1,6 +1,7 @@
package dev.sheldan.abstracto.modmail.listener;
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.models.AServerAChannelAUser;
import dev.sheldan.abstracto.core.models.GuildChannelMember;
@@ -54,7 +55,7 @@ public class ModMailMessageDeletedListener implements MessageDeletedListener {
} else {
channelDeletePromise = CompletableFuture.completedFuture(null);
}
CompletableFuture.allOf(dmDeletePromise, channelDeletePromise).thenAccept(unused ->
CompletableFuture.allOf(dmDeletePromise, channelDeletePromise).whenComplete((unused, throwable) ->
self.removeMessageFromThread(messageBefore.getMessageId())
);
});
@@ -74,4 +75,9 @@ public class ModMailMessageDeletedListener implements MessageDeletedListener {
public FeatureEnum getFeature() {
return ModMailFeatures.MOD_MAIL;
}
@Override
public Integer getPriority() {
return ListenerPriority.MEDIUM;
}
}

View File

@@ -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.CommandService;
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.models.FullUserInServer;
import dev.sheldan.abstracto.core.models.cache.CachedMessage;
@@ -129,4 +130,9 @@ public class ModMailMessageEditedListener implements MessageTextUpdatedListener
public FeatureEnum getFeature() {
return ModMailFeatures.MOD_MAIL;
}
@Override
public Integer getPriority() {
return ListenerPriority.HIGH;
}
}

View File

@@ -1,6 +1,7 @@
package dev.sheldan.abstracto.modmail.listener;
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.models.database.AUser;
import dev.sheldan.abstracto.core.service.management.UserInServerManagementService;
@@ -64,4 +65,9 @@ public class ModMailMessageListener implements PrivateMessageReceivedListener {
public FeatureEnum getFeature() {
return ModMailFeatures.MOD_MAIL;
}
@Override
public Integer getPriority() {
return ListenerPriority.HIGH;
}
}