changed context handling for command models for logging

added method to convert the user initiated context to a concrete command model
added method to find if a template exists
added method to render a context aware model
added banid command
This commit is contained in:
Sheldan
2020-03-20 09:34:37 +01:00
parent ec21305725
commit c978c1c677
68 changed files with 412 additions and 254 deletions

View File

@@ -5,12 +5,14 @@ import dev.sheldan.abstracto.command.PostCommandExecution;
import dev.sheldan.abstracto.command.execution.*;
import dev.sheldan.abstracto.command.meta.UnParsedCommandParameter;
import dev.sheldan.abstracto.commands.management.exception.IncorrectParameterException;
import dev.sheldan.abstracto.commands.management.exception.InsufficientParametersException;
import dev.sheldan.abstracto.core.management.ChannelManagementService;
import dev.sheldan.abstracto.core.management.ServerManagementService;
import dev.sheldan.abstracto.core.models.AChannel;
import dev.sheldan.abstracto.core.models.AServer;
import net.dv8tion.jda.api.entities.GuildChannel;
import dev.sheldan.abstracto.core.management.UserManagementService;
import dev.sheldan.abstracto.core.models.database.AChannel;
import dev.sheldan.abstracto.core.models.database.AServer;
import dev.sheldan.abstracto.core.models.UserInitiatedServerContext;
import dev.sheldan.abstracto.core.models.database.AUser;
import dev.sheldan.abstracto.core.models.database.AUserInAServer;
import net.dv8tion.jda.api.entities.Member;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.entities.TextChannel;
@@ -35,6 +37,9 @@ public class CommandReceivedHandler extends ListenerAdapter {
@Autowired
private ServerManagementService serverManagementService;
@Autowired
private UserManagementService userManagementService;
@Autowired
private ChannelManagementService channelManagementService;
@@ -53,7 +58,7 @@ public class CommandReceivedHandler extends ListenerAdapter {
.channel(event.getTextChannel())
.message(event.getMessage())
.jda(event.getJDA())
.commandTemplateContext(buildTemplateParameter(event));
.userInitiatedContext(buildTemplateParameter(event));
Command foundCommand = null;
try {
List<String> parameters = Arrays.asList(event.getMessage().getContentStripped().split(" "));
@@ -77,10 +82,20 @@ public class CommandReceivedHandler extends ListenerAdapter {
}
private CommandTemplateContext buildTemplateParameter(MessageReceivedEvent event) {
private UserInitiatedServerContext buildTemplateParameter(MessageReceivedEvent event) {
AChannel channel = channelManagementService.loadChannel(event.getChannel().getIdLong());
AServer server = serverManagementService.loadServer(event.getGuild().getIdLong());
return CommandTemplateContext.builder().channel(channel).server(server).build();
AUserInAServer user = userManagementService.loadUser(event.getMember());
return UserInitiatedServerContext
.builder()
.channel(channel)
.server(server)
.member(event.getMember())
.aUserInAServer(user)
.user(user.getUserReference())
.textChannel(event.getTextChannel())
.guild(event.getGuild())
.build();
}
public Parameters getParsedParameters(UnParsedCommandParameter unParsedCommandParameter, Command command, Message message){