diff --git a/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandContext.java b/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandContext.java index 471b14a..d88de78 100644 --- a/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandContext.java +++ b/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandContext.java @@ -2,6 +2,7 @@ package de.kentoj.kencommandapi.api.invocation; import de.kentoj.kencommandapi.api.argument.CommandArgument; import de.kentoj.kencommandapi.api.argument.CommandArgumentSpec; +import de.kentoj.kencommandapi.api.platform.MessageStyle; import java.util.Map; @@ -9,6 +10,8 @@ public interface CommandContext { T sender(); + S style(); + CommandArgument getParsedArgument(String id); /** diff --git a/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandExecutor.java b/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandExecutor.java index 4d45d9e..9224272 100644 --- a/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandExecutor.java +++ b/core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandExecutor.java @@ -1,10 +1,8 @@ package de.kentoj.kencommandapi.api.invocation; -import de.kentoj.kencommandapi.api.platform.MessageStyle; - import java.util.concurrent.CompletableFuture; public interface CommandExecutor { - CompletableFuture execute(MessageStyle style, CommandContext ctx); + CompletableFuture execute(CommandContext ctx); } diff --git a/core/src/main/java/de/kentoj/kencommandapi/api/invocation/SyncCommandExecutor.java b/core/src/main/java/de/kentoj/kencommandapi/api/invocation/SyncCommandExecutor.java index 1c4ee3f..7921ecc 100644 --- a/core/src/main/java/de/kentoj/kencommandapi/api/invocation/SyncCommandExecutor.java +++ b/core/src/main/java/de/kentoj/kencommandapi/api/invocation/SyncCommandExecutor.java @@ -1,15 +1,13 @@ package de.kentoj.kencommandapi.api.invocation; -import de.kentoj.kencommandapi.api.platform.MessageStyle; - import java.util.concurrent.CompletableFuture; public interface SyncCommandExecutor extends CommandExecutor { - void executeSync(MessageStyle style, CommandContext ctx); + void executeSync(CommandContext ctx); - default CompletableFuture execute(MessageStyle style, CommandContext ctx) { - this.executeSync(style, ctx); + default CompletableFuture execute(CommandContext ctx) { + this.executeSync(ctx); return CompletableFuture.completedFuture(null); } } diff --git a/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextBuilder.java b/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextBuilder.java index 3c4bca9..e573588 100644 --- a/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextBuilder.java +++ b/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextBuilder.java @@ -4,15 +4,18 @@ import de.kentoj.kencommandapi.api.argument.CommandArgument; import de.kentoj.kencommandapi.api.argument.CommandArgumentImpl; import de.kentoj.kencommandapi.api.argument.CommandArgumentSpec; import de.kentoj.kencommandapi.api.invocation.CommandContext; +import de.kentoj.kencommandapi.api.platform.MessageStyle; import java.util.Map; public class CommandContextBuilder { private final T sender; + private final MessageStyle style; private final Map> parsedArgument; - public CommandContextBuilder(T sender, Map> parsedArgument) { + public CommandContextBuilder(T sender, MessageStyle style, Map> parsedArgument) { this.sender = sender; + this.style = style; this.parsedArgument = parsedArgument; } @@ -21,6 +24,6 @@ public class CommandContextBuilder { } public CommandContext build() { - return new CommandContextImpl<>(sender, parsedArgument); + return new CommandContextImpl<>(sender, style, parsedArgument); } } diff --git a/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextImpl.java b/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextImpl.java index 98513ce..333dcd2 100644 --- a/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextImpl.java +++ b/core/src/main/java/de/kentoj/kencommandapi/internal/CommandContextImpl.java @@ -2,13 +2,27 @@ package de.kentoj.kencommandapi.internal; import de.kentoj.kencommandapi.api.argument.CommandArgument; import de.kentoj.kencommandapi.api.invocation.CommandContext; +import de.kentoj.kencommandapi.api.platform.MessageStyle; import java.util.Map; -record CommandContextImpl( - T sender, - Map> parsedArguments -) implements CommandContext { +class CommandContextImpl implements CommandContext { + private final T sender; + private final MessageStyle style; + private final Map> parsedArguments; + + CommandContextImpl(T sender, MessageStyle style, Map> parsedArguments) { + this.sender = sender; + this.style = style; + this.parsedArguments = parsedArguments; + } + + @SuppressWarnings("unchecked") + @Override + public S style() { + return (S) style; + } + @Override public CommandArgument getParsedArgument(String id) { try { @@ -18,4 +32,14 @@ record CommandContextImpl( throw new RuntimeException("requested argument with wrong type", e); } } + + @Override + public Map> parsedArguments() { + return Map.of(); + } + + @Override + public T sender() { + return sender; + } } diff --git a/core/src/main/java/de/kentoj/kencommandapi/internal/NodeTreeWalker.java b/core/src/main/java/de/kentoj/kencommandapi/internal/NodeTreeWalker.java index 34a1c5a..91435f1 100644 --- a/core/src/main/java/de/kentoj/kencommandapi/internal/NodeTreeWalker.java +++ b/core/src/main/java/de/kentoj/kencommandapi/internal/NodeTreeWalker.java @@ -25,7 +25,7 @@ public class NodeTreeWalker { Iterator iter ) { var cursor = new Cursor(iter); - var ctxBuilder = new CommandContextBuilder<>(sender, new HashMap<>()); + var ctxBuilder = new CommandContextBuilder<>(sender, rootLiteral.style(), new HashMap<>()); Literal literal = rootLiteral; String token; diff --git a/defs.bzl b/defs.bzl index 4b7fb89..30b6a97 100644 --- a/defs.bzl +++ b/defs.bzl @@ -1,2 +1,2 @@ GROUP = "de.kentoj.scrow" -VERSION = "0.41-SNAPSHOT" \ No newline at end of file +VERSION = "0.42-SNAPSHOT" \ No newline at end of file