add IdentifierProvider and wrapper implementations
All checks were successful
github-mirror / push-github (push) Successful in 4s
Build / Gradle-Build (push) Successful in 33s
Test / Gradle-Test (push) Successful in 48s

This commit is contained in:
2025-03-05 21:44:12 +01:00
parent f940f48566
commit 432cf78a2e
14 changed files with 305 additions and 136 deletions

View File

@@ -16,17 +16,19 @@ import net.tomatentum.marinara.interaction.commands.SlashCommandDefinition;
import net.tomatentum.marinara.interaction.ident.RootCommandIdentifier;
import net.tomatentum.marinara.interaction.ident.SlashCommandIdentifier;
import net.tomatentum.marinara.util.LoggerUtil;
import net.tomatentum.marinara.wrapper.LibraryWrapper;
import net.tomatentum.marinara.wrapper.IdentifierProvider;
import net.tomatentum.marinara.interaction.methods.InteractionMethod;
public class InteractionRegistry {
private Logger logger = LoggerUtil.getLogger(getClass());
private Set<InteractionEntry> interactions;
private Marinara marinara;
private IdentifierProvider identifierProvider;
public InteractionRegistry(Marinara marinara) {
this.interactions = new HashSet<>();
this.marinara = marinara;
this.identifierProvider = marinara.getWrapper().createIdentifierProvider();
marinara.getWrapper().subscribeInteractions(this::handle);
}
@@ -74,9 +76,8 @@ public class InteractionRegistry {
public void handle(Object context) {
logger.debug("Received {} interaction ", context);
LibraryWrapper wrapper = marinara.getWrapper();
interactions.forEach((e) -> {
if (wrapper.getInteractionIdentifier(context).equals(e.identifier())) {
if (this.identifierProvider.provide(context).equals(e.identifier())) {
logger.info("Running {} interaction using {}\ncontext: {}", e.type(), e.toString(), context.toString());
e.runAll(context);
}