mirror of
https://github.com/Sheldan/abstracto.git
synced 2026-05-21 22:45:14 +00:00
added template support to echo
replaced HashMaps for templates with concrete models, so the interface is easier known added rendering method for objects directly added default parameters available for commands split up service beans for server/channel into management and service bean added server reference in AChannel refactored join/leave listener
This commit is contained in:
@@ -6,6 +6,7 @@ import dev.sheldan.abstracto.command.execution.Configuration;
|
||||
import dev.sheldan.abstracto.command.execution.Parameter;
|
||||
import dev.sheldan.abstracto.command.meta.CommandRegistry;
|
||||
import dev.sheldan.abstracto.command.meta.UnParsedCommandParameter;
|
||||
import dev.sheldan.abstracto.commands.management.exception.CommandNotFoundException;
|
||||
import net.dv8tion.jda.api.entities.Message;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -2,12 +2,12 @@ package dev.sheldan.abstracto.commands.management;
|
||||
|
||||
import dev.sheldan.abstracto.command.Command;
|
||||
import dev.sheldan.abstracto.command.PostCommandExecution;
|
||||
import dev.sheldan.abstracto.command.execution.Context;
|
||||
import dev.sheldan.abstracto.command.execution.Parameter;
|
||||
import dev.sheldan.abstracto.command.execution.Parameters;
|
||||
import dev.sheldan.abstracto.command.execution.Result;
|
||||
import dev.sheldan.abstracto.command.execution.*;
|
||||
import dev.sheldan.abstracto.command.meta.UnParsedCommandParameter;
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
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 net.dv8tion.jda.api.entities.Message;
|
||||
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
|
||||
@@ -29,6 +29,12 @@ public class CommandReceivedHandler extends ListenerAdapter {
|
||||
@Autowired
|
||||
private PostCommandExecution execution;
|
||||
|
||||
@Autowired
|
||||
private ServerManagementService serverManagementService;
|
||||
|
||||
@Autowired
|
||||
private ChannelManagementService channelManagementService;
|
||||
|
||||
@Override
|
||||
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
|
||||
if(!manager.isCommand(event.getMessage())) {
|
||||
@@ -40,16 +46,23 @@ public class CommandReceivedHandler extends ListenerAdapter {
|
||||
String withoutPrefix = parameters.get(0).substring(1);
|
||||
Command foundCommand = manager.findCommandByParameters(withoutPrefix, unparsedParameter);
|
||||
Parameters parsedParameters = getParsedParameters(unparsedParameter, foundCommand, event.getMessage());
|
||||
Context context = Context.builder()
|
||||
CommandContext commandContext = CommandContext.builder()
|
||||
.author(event.getAuthor())
|
||||
.guild(event.getGuild())
|
||||
.channel(event.getTextChannel())
|
||||
.message(event.getMessage())
|
||||
.parameters(parsedParameters)
|
||||
.jda(event.getJDA())
|
||||
.commandTemplateContext(buildTemplateParameter(event))
|
||||
.build();
|
||||
Result result = foundCommand.execute(context);
|
||||
execution.execute(context, result, foundCommand);
|
||||
Result result = foundCommand.execute(commandContext);
|
||||
execution.execute(commandContext, result, foundCommand);
|
||||
}
|
||||
|
||||
private CommandTemplateContext 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();
|
||||
}
|
||||
|
||||
public Parameters getParsedParameters(UnParsedCommandParameter unParsedCommandParameter, Command command, Message message){
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
package dev.sheldan.abstracto.commands.management;
|
||||
|
||||
public class PostTargetException extends RuntimeException {
|
||||
public PostTargetException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -2,16 +2,16 @@ package dev.sheldan.abstracto.commands.management;
|
||||
|
||||
import dev.sheldan.abstracto.command.Command;
|
||||
import dev.sheldan.abstracto.command.PostCommandExecution;
|
||||
import dev.sheldan.abstracto.command.execution.Context;
|
||||
import dev.sheldan.abstracto.command.execution.CommandContext;
|
||||
import dev.sheldan.abstracto.command.execution.Result;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class ReactionPostExecution implements PostCommandExecution {
|
||||
@Override
|
||||
public void execute(Context context, Result result, Command command) {
|
||||
public void execute(CommandContext commandContext, Result result, Command command) {
|
||||
if(command.getConfiguration().isCausesReaction()){
|
||||
context.getMessage().addReaction("⭐").queue();
|
||||
commandContext.getMessage().addReaction("⭐").queue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package dev.sheldan.abstracto.commands.management;
|
||||
package dev.sheldan.abstracto.commands.management.exception;
|
||||
|
||||
public class CommandNotFoundException extends RuntimeException {
|
||||
}
|
||||
Reference in New Issue
Block a user