.
This commit is contained in:
parent
76f4ba2ec9
commit
ac804b6c5b
13 changed files with 140 additions and 95 deletions
137
.idea/workspace.xml
generated
137
.idea/workspace.xml
generated
|
|
@ -5,11 +5,23 @@
|
|||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="6414223f-1761-4683-97f5-9dab59d6c44a" name="Changes" comment=".">
|
||||
<change afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/scrow/ScrowPublishConvention.kt" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/scrow/configureScrowRepo.kt" 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$/kencommandapi-bukkit/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-bukkit/build.gradle.kts" 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/argument/CommandArgument.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/argument/CommandArgument.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/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/CommandArgumentImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/internal/CommandArgumentImpl.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/kencommandapi-velocity/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/kencommandapi-velocity/build.gradle.kts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/settings.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/settings.gradle.kts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../build-logic/convention/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/build.gradle.kts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/scrow/ScrowRepositoryConvention.kt" beforeDir="false" afterPath="$PROJECT_DIR$/../build-logic/convention/src/main/kotlin/scrow/ScrowRepositoryConvention.kt" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
@ -48,6 +60,19 @@
|
|||
<item name="KenCommandAPI" type="f1a62948:ProjectNode" />
|
||||
<item name="KenCommandAPI" type="2d1252cf:ModuleNode" />
|
||||
</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="publishing" type="c8890929:TasksNode$1" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</tree_state>
|
||||
|
|
@ -84,37 +109,38 @@
|
|||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"Gradle./home/a/src/kento2/KenCommandAPI/kencommandapi-core [:kencommandapi-core:de.kentoj.kencommandapi.Main.main()].executor": "Run",
|
||||
"Gradle./home/a/src/kento2/KenCommandAPI/kencommandapi-core [build].executor": "Run",
|
||||
"Gradle./home/a/src/kento2/KenCommandAPI/kencommandapi-core [publish].executor": "Run",
|
||||
"Gradle.Download Sources.executor": "Run",
|
||||
"Gradle.KenCommandAPI [:de.kencommand.Main.main()].executor": "Run",
|
||||
"Gradle.KenCommandAPI [assemble].executor": "Run",
|
||||
"Gradle.KenCommandAPI [build].executor": "Run",
|
||||
"Gradle.KenCommandAPI [clean].executor": "Run",
|
||||
"Gradle.KenCommandAPI [publishAllPublicationsToScrowRepository].executor": "Run",
|
||||
"Gradle.KenCommandAPI [publish].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [build].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [generatePomFileForKenCommandAPIBukkitPublication].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [publishAllPublicationsToScrowRepository].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [publish].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-velocity [publish].executor": "Run",
|
||||
"Gradle.kencommandapi-core [build].executor": "Run",
|
||||
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"git-widget-placeholder": "master",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"last_opened_file_path": "/home/a/src/scrow/KenCommandAPI/kencommandapi-core",
|
||||
"project.structure.last.edited": "Modules",
|
||||
"project.structure.proportion": "0.15",
|
||||
"project.structure.side.proportion": "0.6268199",
|
||||
"settings.editor.selected.configurable": "preferences.pluginManager"
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"Gradle./home/a/src/kento2/KenCommandAPI/kencommandapi-core [:kencommandapi-core:de.kentoj.kencommandapi.Main.main()].executor": "Run",
|
||||
"Gradle./home/a/src/kento2/KenCommandAPI/kencommandapi-core [build].executor": "Run",
|
||||
"Gradle./home/a/src/kento2/KenCommandAPI/kencommandapi-core [publish].executor": "Run",
|
||||
"Gradle.Download Sources.executor": "Run",
|
||||
"Gradle.KenCommandAPI [:de.kencommand.Main.main()].executor": "Run",
|
||||
"Gradle.KenCommandAPI [assemble].executor": "Run",
|
||||
"Gradle.KenCommandAPI [buildEnvironment].executor": "Run",
|
||||
"Gradle.KenCommandAPI [build].executor": "Run",
|
||||
"Gradle.KenCommandAPI [clean].executor": "Run",
|
||||
"Gradle.KenCommandAPI [publishAllPublicationsToScrowRepository].executor": "Run",
|
||||
"Gradle.KenCommandAPI [publish].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [build].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [generatePomFileForKenCommandAPIBukkitPublication].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [publishAllPublicationsToScrowRepository].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-bukkit [publish].executor": "Run",
|
||||
"Gradle.KenCommandAPI:kencommandapi-velocity [publish].executor": "Run",
|
||||
"Gradle.kencommandapi-core [build].executor": "Run",
|
||||
"ModuleVcsDetector.initialDetectionPerformed": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"git-widget-placeholder": "master",
|
||||
"kotlin-language-version-configured": "true",
|
||||
"last_opened_file_path": "/home/a/src/scrow/KenCommandAPI/kencommandapi-core",
|
||||
"project.structure.last.edited": "Modules",
|
||||
"project.structure.proportion": "0.15",
|
||||
"project.structure.side.proportion": "0.6268199",
|
||||
"settings.editor.selected.configurable": "preferences.pluginManager"
|
||||
}
|
||||
}</component>
|
||||
}]]></component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CreateClassDialog.RecentsKey">
|
||||
<recent name="de.kentoj.kencommandapi.api" />
|
||||
|
|
@ -143,9 +169,32 @@
|
|||
<option name="myCommands">
|
||||
<command value="publishAll" />
|
||||
<command value="KenCommandAPI [publishAllPublicationsToScrowRepository]" />
|
||||
<command value="gradlew buildEnvironment" />
|
||||
</option>
|
||||
</component>
|
||||
<component name="RunManager" selected="Gradle.KenCommandAPI [publishAllPublicationsToScrowRepository]">
|
||||
<component name="RunManager" selected="Gradle.KenCommandAPI [publish]">
|
||||
<configuration name="KenCommandAPI [buildEnvironment]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
||||
<ExternalSystemSettings>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="buildEnvironment" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="KenCommandAPI [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
||||
<ExternalSystemSettings>
|
||||
<option name="executionName" />
|
||||
|
|
@ -234,35 +283,13 @@
|
|||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="KenCommandAPI:kencommandapi-velocity [publish]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
|
||||
<ExternalSystemSettings>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$/kencommandapi-velocity" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" />
|
||||
<option name="taskDescriptions">
|
||||
<list />
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value="publish" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Gradle.KenCommandAPI [publish]" />
|
||||
<item itemvalue="Gradle.KenCommandAPI [publishAllPublicationsToScrowRepository]" />
|
||||
<item itemvalue="Gradle.KenCommandAPI [build]" />
|
||||
<item itemvalue="Gradle.KenCommandAPI [buildEnvironment]" />
|
||||
<item itemvalue="Gradle.KenCommandAPI [clean]" />
|
||||
<item itemvalue="Gradle.KenCommandAPI:kencommandapi-velocity [publish]" />
|
||||
<item itemvalue="Gradle.KenCommandAPI [publish]" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
|
|
|
|||
1
TODO
1
TODO
|
|
@ -1,3 +1,4 @@
|
|||
- use version catalog
|
||||
- fix missing ArgumentExpected error at first arg or smth (maybe all args are shifted ???)
|
||||
- make sure permissions of literals work
|
||||
- fix suggestions/tab completion
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
group = "de.kentoj.scrow"
|
||||
version = "0.30"
|
||||
version = "0.31"
|
||||
|
||||
subprojects {
|
||||
group = rootProject.group
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
plugins {
|
||||
id("java")
|
||||
id("maven-publish")
|
||||
id("de.kentoj.scrow.scrow-repository")
|
||||
id("de.kentoj.scrow.base-dependencies")
|
||||
id("de.kentoj.scrow.java-library")
|
||||
id("scrow.scrow-publish")
|
||||
id("scrow.base-dependencies")
|
||||
id("scrow.java-library")
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
plugins {
|
||||
id("java")
|
||||
id("maven-publish")
|
||||
id("de.kentoj.scrow.scrow-repository")
|
||||
id("de.kentoj.scrow.base-dependencies")
|
||||
id("de.kentoj.scrow.java-library")
|
||||
id("scrow.scrow-publish")
|
||||
id("scrow.base-dependencies")
|
||||
id("scrow.java-library")
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
|
|
|||
|
|
@ -47,9 +47,9 @@ public class CommandHandler<T> {
|
|||
|
||||
String filter = null;
|
||||
if (parseResult instanceof ParseResult.UnknownLiteral<T>)
|
||||
filter = ((ParseResult.UnknownLiteral<T>) parseResult).getName();
|
||||
filter = ((ParseResult.UnknownLiteral<T>) parseResult).getInput();
|
||||
else if (parseResult instanceof ParseResult.NoPermission<T>)
|
||||
filter = ((ParseResult.NoPermission<T>) parseResult).getName();
|
||||
filter = ((ParseResult.NoPermission<T>) parseResult).getInput();
|
||||
return getSuggestions(sender, parseResult.getLiteral(), filter);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public interface CommandArgument<T, V> {
|
|||
|
||||
ArgumentType<T, V> getType();
|
||||
|
||||
void setDefaultValueProvider(@Nullable Function<T, V> getDefaultValueProvider);
|
||||
void setDefaultValueProvider(@Nullable Function<T, V> defaultValueProvider);
|
||||
|
||||
@Nullable Function<T, V> getDefaultValueProvider();
|
||||
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@ import com.leakyabstractions.result.api.Result;
|
|||
import com.leakyabstractions.result.core.Results;
|
||||
import de.kentoj.kencommandapi.api.argument.CommandArgument;
|
||||
import de.kentoj.kencommandapi.api.invocation.ParsedArgument;
|
||||
import de.kentoj.kencommandapi.api.platform.HasPermissionMethod;
|
||||
import de.kentoj.kencommandapi.api.node.CommandNode;
|
||||
import de.kentoj.kencommandapi.api.node.RootCommandNode;
|
||||
import de.kentoj.kencommandapi.api.platform.HasPermissionMethod;
|
||||
import de.kentoj.kencommandapi.internal.ParsedArgumentImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
|
|
@ -62,36 +62,41 @@ public class CommandParser<T> {
|
|||
T sender,
|
||||
boolean parseArgs
|
||||
) {
|
||||
Object value;
|
||||
if (!args.hasNext()) {
|
||||
if (nodeArg.getDefaultValueProvider() == null)
|
||||
return Results.failure(new ParseResult.ArgumentExpected<>(node, nodeArg));
|
||||
var value = nodeArg.getDefaultValueProvider().apply(sender);
|
||||
return Results.success(toParsed(value, nodeArg));
|
||||
}
|
||||
|
||||
if (args.hasNext()) {
|
||||
Object value = null;
|
||||
var argStr = getRawArgument(args, nodeArg);
|
||||
if (!parseArgs) {
|
||||
value = null;
|
||||
} else {
|
||||
if (parseArgs) {
|
||||
try {
|
||||
value = nodeArg.getType().parseInput(argStr);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
return Results.failure(new ParseResult.IllegalArgument<>(node, nodeArg, ex.getMessage(), argStr));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (nodeArg.getDefaultValueProvider() == null)
|
||||
return Results.failure(new ParseResult.ArgumentExpected<>(node, nodeArg));
|
||||
value = nodeArg.getDefaultValueProvider().apply(sender);
|
||||
}
|
||||
|
||||
var parsedArg = new ParsedArgumentImpl<>(value, (CommandArgument<T, Object>) nodeArg);
|
||||
return Results.success(parsedArg);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private ParsedArgument<T, Object> toParsed(Object value, CommandArgument<T, ?> arg) {
|
||||
return new ParsedArgumentImpl<>(value, (CommandArgument<T, Object>) arg);
|
||||
}
|
||||
|
||||
private String getRawArgument(Iterator<String> args, CommandArgument<T, ?> arg) {
|
||||
StringBuilder rawArgument = new StringBuilder();
|
||||
|
||||
if (arg.getType().isGreedy()) {
|
||||
while (args.hasNext()) {
|
||||
rawArgument.append(" ");
|
||||
rawArgument.append(args.next());
|
||||
}
|
||||
rawArgument.deleteCharAt(0);
|
||||
} else {
|
||||
rawArgument = new StringBuilder(args.next());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@ public abstract sealed class ParseResult<T> permits ParseResult.IllegalArgument,
|
|||
public static final class UnknownLiteral<T> extends ParseResult<T> {
|
||||
private final CommandNode<T> previousLiteral;
|
||||
@Getter
|
||||
private final String name;
|
||||
private final String input;
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "Unknown subcommand: " + name;
|
||||
return "Unknown subcommand: " + input;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -77,11 +77,11 @@ public abstract sealed class ParseResult<T> permits ParseResult.IllegalArgument,
|
|||
@Getter
|
||||
private final CommandNode<T> literal;
|
||||
@Getter
|
||||
private final String name;
|
||||
private final String input;
|
||||
|
||||
@Override
|
||||
public String getMessage() {
|
||||
return "Unknown subcommand: " + name;
|
||||
return "Unknown subcommand: " + input;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import java.util.concurrent.CompletableFuture;
|
|||
public interface SuggestionProvider<T> {
|
||||
|
||||
/**
|
||||
* @return an unfiltered(no permission checks or filtering by input) list of strings that may be used for the argument
|
||||
* @return an unfiltered(no permission checks or filtering by input) list of strings that may be used for the argument/literal
|
||||
*/
|
||||
List<String> suggest(T sender);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,8 +21,7 @@ public class CommandArgumentImpl<T, V> implements CommandArgument<T, V> {
|
|||
|
||||
@Getter
|
||||
@Setter
|
||||
private @Nullable Function<T, V> defaultValueProvider;
|
||||
|
||||
private @Nullable Function<T, V> defaultValueProvider = null;
|
||||
@Setter
|
||||
private @Nullable SuggestionProvider<T> suggestionProvider;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
plugins {
|
||||
id("java")
|
||||
id("maven-publish")
|
||||
id("de.kentoj.scrow.scrow-repository")
|
||||
id("de.kentoj.scrow.base-dependencies")
|
||||
id("de.kentoj.scrow.java-library")
|
||||
id("scrow.scrow-publish")
|
||||
id("scrow.base-dependencies")
|
||||
id("scrow.java-library")
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,22 @@
|
|||
pluginManagement {
|
||||
includeBuild("../build-logic")
|
||||
}
|
||||
|
||||
plugins {
|
||||
id("scrow.scrow-repository")
|
||||
}
|
||||
|
||||
dependencyResolutionManagement {
|
||||
repositories {
|
||||
maven {
|
||||
name = "papermc"
|
||||
url = uri("https://repo.papermc.io/repository/maven-public/")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "KenCommandAPI"
|
||||
|
||||
includeBuild("../build-logic")
|
||||
include("kencommandapi-core")
|
||||
include("kencommandapi-bukkit")
|
||||
include("kencommandapi-velocity")
|
||||
Loading…
Add table
Add a link
Reference in a new issue