This commit is contained in:
kento2 2026-07-05 03:06:21 +02:00
parent b234cd9df7
commit 76f4ba2ec9
5 changed files with 15 additions and 52 deletions

48
.idea/workspace.xml generated
View file

@ -4,26 +4,12 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="6414223f-1761-4683-97f5-9dab59d6c44a" name="Changes" comment="currently refactoring a lot."> <list default="true" id="6414223f-1761-4683-97f5-9dab59d6c44a" name="Changes" comment=".">
<change afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/invocation/SyncCommandExecutor.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/TODO" beforeDir="false" afterPath="$PROJECT_DIR$/TODO" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle.kts" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle.kts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-bukkit/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-bukkit/build.gradle.kts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/AsyncTabCompleter.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/TabCompleteListener.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/CommandAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/CommandAPI.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/suggestionprovider/PlayerSuggestionProvider.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/suggestionprovider/PlayerSuggestionProvider.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-core/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/build.gradle.kts" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/CommandHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/CommandHandler.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/CommandHandler.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/CommandHandler.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandExecutor.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/invocation/CommandExecutor.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/parser/CommandParser.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/parser/CommandParser.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/parser/ParseResult.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/parser/ParseResult.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/suggestion/NoSuggestionProvider.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/suggestion/NoSuggestionProvider.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/suggestion/SuggestionProvider.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/suggestion/SuggestionProvider.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/internal/CommandNodeImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/internal/CommandNodeImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-velocity/src/main/java/de/kentoj/kencommandapi/CommandAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-velocity/src/main/java/de/kentoj/kencommandapi/CommandAPI.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-velocity/src/main/java/de/kentoj/kencommandapi/VelocityCommand.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-velocity/src/main/java/de/kentoj/kencommandapi/VelocityCommand.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/kencommandapi-velocity/src/main/java/de/kentoj/kencommandapi/suggestionprovider/PlayerSuggestionProvider.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-velocity/src/main/java/de/kentoj/kencommandapi/suggestionprovider/PlayerSuggestionProvider.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/BaseDependenciesConvention.kt" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/BaseDependenciesConvention.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/DatabaseConvention.kt" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/de/kentoj/scrow/DatabaseConvention.kt" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -62,26 +48,6 @@
<item name="KenCommandAPI" type="f1a62948:ProjectNode" /> <item name="KenCommandAPI" type="f1a62948:ProjectNode" />
<item name="KenCommandAPI" type="2d1252cf:ModuleNode" /> <item name="KenCommandAPI" type="2d1252cf:ModuleNode" />
</path> </path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="KenCommandAPI" type="f1a62948:ProjectNode" />
<item name="KenCommandAPI" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="KenCommandAPI" type="f1a62948:ProjectNode" />
<item name="KenCommandAPI" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="build" type="c8890929:TasksNode$1" />
</path>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="KenCommandAPI" type="f1a62948:ProjectNode" />
<item name="KenCommandAPI" type="2d1252cf:ModuleNode" />
<item name="Tasks" type="e4a08cd1:TasksNode" />
<item name="publishing" type="c8890929:TasksNode$1" />
</path>
</expand> </expand>
<select /> <select />
</tree_state> </tree_state>
@ -179,7 +145,7 @@
<command value="KenCommandAPI [publishAllPublicationsToScrowRepository]" /> <command value="KenCommandAPI [publishAllPublicationsToScrowRepository]" />
</option> </option>
</component> </component>
<component name="RunManager" selected="Gradle.KenCommandAPI [build]"> <component name="RunManager" selected="Gradle.KenCommandAPI [publishAllPublicationsToScrowRepository]">
<configuration name="KenCommandAPI [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true"> <configuration name="KenCommandAPI [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings> <ExternalSystemSettings>
<option name="executionName" /> <option name="executionName" />
@ -292,8 +258,8 @@
</configuration> </configuration>
<recent_temporary> <recent_temporary>
<list> <list>
<item itemvalue="Gradle.KenCommandAPI [build]" />
<item itemvalue="Gradle.KenCommandAPI [publishAllPublicationsToScrowRepository]" /> <item itemvalue="Gradle.KenCommandAPI [publishAllPublicationsToScrowRepository]" />
<item itemvalue="Gradle.KenCommandAPI [build]" />
<item itemvalue="Gradle.KenCommandAPI [clean]" /> <item itemvalue="Gradle.KenCommandAPI [clean]" />
<item itemvalue="Gradle.KenCommandAPI:kencommandapi-velocity [publish]" /> <item itemvalue="Gradle.KenCommandAPI:kencommandapi-velocity [publish]" />
<item itemvalue="Gradle.KenCommandAPI [publish]" /> <item itemvalue="Gradle.KenCommandAPI [publish]" />
@ -555,8 +521,8 @@
<MESSAGE value="fix aliases not being registered" /> <MESSAGE value="fix aliases not being registered" />
<MESSAGE value="add TODO" /> <MESSAGE value="add TODO" />
<MESSAGE value="make SuggestionProvider use CompletableFuture" /> <MESSAGE value="make SuggestionProvider use CompletableFuture" />
<MESSAGE value="." />
<MESSAGE value="currently refactoring a lot." /> <MESSAGE value="currently refactoring a lot." />
<option name="LAST_COMMIT_MESSAGE" value="currently refactoring a lot." /> <MESSAGE value="." />
<option name="LAST_COMMIT_MESSAGE" value="." />
</component> </component>
</project> </project>

8
TODO
View file

@ -1,5 +1,3 @@
- error messages - fix missing ArgumentExpected error at first arg or smth (maybe all args are shifted ???)
- permission support - make sure permissions of literals work
- suggestions/tab completion - fix suggestions/tab completion
- description support, possibly shown with /help <command>
- dynamic default values: functional interface with context

View file

@ -1,5 +1,5 @@
group = "de.kentoj.scrow" group = "de.kentoj.scrow"
version = "0.28" version = "0.30"
subprojects { subprojects {
group = rootProject.group group = rootProject.group

View file

@ -12,7 +12,6 @@ import org.jetbrains.annotations.Nullable;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.CompletableFuture;
@RequiredArgsConstructor @RequiredArgsConstructor
public class CommandHandler<T> { public class CommandHandler<T> {
@ -34,7 +33,7 @@ public class CommandHandler<T> {
if (ex != null) if (ex != null)
sendMessageMethod.send(sender, rootNode.getMessageStyle().exception(ex)); sendMessageMethod.send(sender, rootNode.getMessageStyle().exception(ex));
result.ifFailure(failure -> result.ifFailure(failure ->
sendMessageMethod.send(sender, rootNode.getMessageStyle().err(failure))); sendMessageMethod.send(sender, rootNode.getMessageStyle().err(failure)));
}); });
} }

View file

@ -27,7 +27,7 @@ public class CommandParser<T> {
while (argStrIter.hasNext()) { while (argStrIter.hasNext()) {
for (var nodeArg : cur.getArguments()) { for (var nodeArg : cur.getArguments()) {
var parsed = parseArgument(rootNode, nodeArg, argStrIter, sender, !parseArgs); var parsed = parseArgument(rootNode, nodeArg, argStrIter, sender, parseArgs);
if (parsed.hasFailure()) if (parsed.hasFailure())
return parsed.getFailure().orElseThrow(); return parsed.getFailure().orElseThrow();
if (parseArgs) if (parseArgs)
@ -60,13 +60,13 @@ public class CommandParser<T> {
CommandArgument<T, ?> nodeArg, CommandArgument<T, ?> nodeArg,
Iterator<String> args, Iterator<String> args,
T sender, T sender,
boolean fakeParse boolean parseArgs
) { ) {
Object value; Object value;
if (args.hasNext()) { if (args.hasNext()) {
var argStr = getRawArgument(args, nodeArg); var argStr = getRawArgument(args, nodeArg);
if (fakeParse) { if (!parseArgs) {
value = null; value = null;
} else { } else {
try { try {