Moved ResponderContext#triggerEvent to ResponderContext#getEvent

This commit is contained in:
mathias 2021-10-03 21:30:35 +02:00
parent 0c28fe65d8
commit 818c26bd85
No known key found for this signature in database
GPG Key ID: 8950DF62139C852A

View File

@ -15,6 +15,7 @@ import de.gnmyt.autoresponder.commands.usage.UsageException;
import de.gnmyt.autoresponder.commands.usage.UsageType; import de.gnmyt.autoresponder.commands.usage.UsageType;
import de.gnmyt.autoresponder.entities.ChatCommand; import de.gnmyt.autoresponder.entities.ChatCommand;
import de.gnmyt.autoresponder.entities.GroupCommand; import de.gnmyt.autoresponder.entities.GroupCommand;
import de.gnmyt.autoresponder.event.ResponderEvent;
import de.gnmyt.autoresponder.event.chat.ChatMessageReceivedEvent; import de.gnmyt.autoresponder.event.chat.ChatMessageReceivedEvent;
import de.gnmyt.autoresponder.event.group.GroupMessageReceivedEvent; import de.gnmyt.autoresponder.event.group.GroupMessageReceivedEvent;
import de.gnmyt.autoresponder.http.controller.HttpResponseController; import de.gnmyt.autoresponder.http.controller.HttpResponseController;
@ -71,11 +72,13 @@ public class ResponderContext extends SimpleHttpHandler {
public void run(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup, public void run(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup,
String groupParticipant, int ruleId, HttpResponseController controller) { String groupParticipant, int ruleId, HttpResponseController controller) {
ResponderEvent event = getEvent(appPackageName, messengerPackageName, sender, message, isGroup, groupParticipant, ruleId, controller);
if (message.startsWith(responder.getPrefix())) if (message.startsWith(responder.getPrefix()))
runCommand(appPackageName, messengerPackageName, sender, message.substring(responder.getPrefix().length()), isGroup, runCommand(appPackageName, messengerPackageName, sender, message.substring(responder.getPrefix().length()), isGroup,
groupParticipant, ruleId, controller); groupParticipant, ruleId, controller);
triggerEvent(appPackageName, messengerPackageName, sender, message, isGroup, groupParticipant, ruleId, controller); triggerEvent(event);
if (!controller.isResponseSent()) sendNotFoundReply(isGroup ? groupParticipant : sender, message, controller); if (!controller.isResponseSent()) sendNotFoundReply(isGroup ? groupParticipant : sender, message, controller);
} }
@ -92,14 +95,27 @@ public class ResponderContext extends SimpleHttpHandler {
* @param ruleId The id of the rule that has been executed * @param ruleId The id of the rule that has been executed
* @param controller The response controller of the executed request * @param controller The response controller of the executed request
*/ */
public void triggerEvent(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup, public ResponderEvent getEvent(String appPackageName, String messengerPackageName, String sender, String message, boolean isGroup,
String groupParticipant, int ruleId, HttpResponseController controller) { String groupParticipant, int ruleId, HttpResponseController controller) {
ResponderEvent event;
if (isGroup) { if (isGroup) {
new GroupMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender, event = new GroupMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender,
message, groupParticipant).call(); message, groupParticipant);
} else { } else {
new ChatMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender, message).call(); event = new ChatMessageReceivedEvent(responder, appPackageName, messengerPackageName, ruleId, controller, sender, message);
} }
return event;
}
/**
* Triggers the provided event
*
* @param event The event you want to trigger
*/
public void triggerEvent(ResponderEvent event) {
event.call();
} }
/** /**
@ -134,11 +150,11 @@ public class ResponderContext extends SimpleHttpHandler {
if (command instanceof ResponderGroupCommand) { if (command instanceof ResponderGroupCommand) {
((ResponderGroupCommand) command) ((ResponderGroupCommand) command)
.execute(new GroupCommand(controller, appPackageName, messengerPackageName, ruleId, sender, commandMessage, .execute(new GroupCommand(controller, this, appPackageName, messengerPackageName, ruleId, sender, commandMessage,
groupParticipant), arguments); groupParticipant), arguments);
} else if (command instanceof ResponderChatCommand) { } else if (command instanceof ResponderChatCommand) {
((ResponderChatCommand) command) ((ResponderChatCommand) command)
.execute(new ChatCommand(controller, appPackageName, messengerPackageName, ruleId, sender, commandMessage), arguments); .execute(new ChatCommand(controller, this, appPackageName, messengerPackageName, ruleId, sender, commandMessage), arguments);
} }
} }
} }