added purge command to delete messages via bulk delete

adapted api of status message service
added concept of self destruct command results, these will cause the command message to be deleted
This commit is contained in:
Sheldan
2020-06-03 19:22:31 +02:00
parent 072072dffc
commit 1091e66013
23 changed files with 361 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
package dev.sheldan.abstracto.core.command.post;
import dev.sheldan.abstracto.core.command.Command;
import dev.sheldan.abstracto.core.command.execution.CommandContext;
import dev.sheldan.abstracto.core.command.execution.CommandResult;
import dev.sheldan.abstracto.core.command.execution.ResultState;
import dev.sheldan.abstracto.core.command.service.PostCommandExecution;
import org.springframework.stereotype.Component;
@Component
public class SelfDestructPostExecution implements PostCommandExecution {
@Override
public void execute(CommandContext commandContext, CommandResult commandResult, Command command) {
if(commandResult.getResult().equals(ResultState.SELF_DESTRUCT)) {
commandContext.getMessage().delete().queue();
}
}
}

View File

@@ -83,11 +83,26 @@ public class MessageServiceBean implements MessageService {
return channelService.sendMessageToSendToAChannel(messageToSend, channel).get(0);
}
@Override
public CompletableFuture<Message> createStatusMessage(MessageToSend messageToSend, MessageChannel channel) {
return channelService.sendMessageToSendToChannel(messageToSend, channel).get(0);
}
@Override
public CompletableFuture<Long> createStatusMessageId(MessageToSend messageToSend, MessageChannel channel) {
return channelService.sendMessageToSendToChannel(messageToSend, channel).get(0).thenApply(ISnowflake::getIdLong);
}
@Override
public void updateStatusMessage(AChannel channel, Long messageId, MessageToSend messageToSend) {
channelService.editMessageInAChannel(messageToSend, channel, messageId);
}
@Override
public void updateStatusMessage(MessageChannel channel, Long messageId, MessageToSend messageToSend) {
channelService.editMessageInAChannel(messageToSend, channel, messageId);
}
@Override
public void sendMessageToUser(AUserInAServer userInAServer, String text, TextChannel feedbackChannel) {
Member memberInServer = botService.getMemberInServer(userInAServer);