diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 14746e7..c3f6e66 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 5cd9a10..4b8a436 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts deleted file mode 100644 index 8c0eb4a..0000000 --- a/build.gradle.kts +++ /dev/null @@ -1,24 +0,0 @@ -plugins { - id("java") - id("io.freefair.lombok") version "9.2.0" -} - -group = "de.kentoj" -version = "1.0-SNAPSHOT" - -repositories { - mavenCentral() -} - -dependencies { - testImplementation(platform("org.junit:junit-bom:5.10.0")) - testImplementation("org.junit.jupiter:junit-jupiter") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - - // https://mvnrepository.com/artifact/org.jetbrains/annotations - implementation("org.jetbrains:annotations:26.0.2-1") -} - -tasks.test { - useJUnitPlatform() -} \ No newline at end of file diff --git a/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/BukkitKenCommandApi.java b/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/BukkitKenCommandApi.java new file mode 100644 index 0000000..e6ae442 --- /dev/null +++ b/kencommandapi-bukkit/src/main/java/de/kentoj/kencommandapi/BukkitKenCommandApi.java @@ -0,0 +1,8 @@ +package de.kentoj.kencommandapi; + +import de.kentoj.kencommandapi.api.KenCommandApi; + +public class BukkitKenCommandApi extends KenCommandApiImpl<> { + + private final KenCommandApi<> +} diff --git a/kencommandapi-core/build.gradle.kts b/kencommandapi-core/build.gradle.kts new file mode 100644 index 0000000..3653f41 --- /dev/null +++ b/kencommandapi-core/build.gradle.kts @@ -0,0 +1,47 @@ +val scrowToken = providers.gradleProperty("scrowMavenToken") + .orElse(providers.environmentVariable("SCROW_MAVEN_TOKEN")).get() + +plugins { + id("java") + id("maven-publish") + id("io.freefair.lombok") version "9.2.0" +} + +group = "de.kentoj" +version = "1.0-SNAPSHOT" + +repositories { + mavenCentral() +} + +dependencies { + // https://mvnrepository.com/artifact/org.jetbrains/annotations + implementation("org.jetbrains:annotations:26.0.2-1") +} + +publishing { + publications { + create("KenCommandAPI") { + groupId = project.group.toString() + artifactId = project.name + version = project.version.toString() + from(components["java"]) + } + } + repositories { + maven { + name = "scrow" + url = uri("http://forge.kentoj.de/api/packages/scrow/maven") + isAllowInsecureProtocol = true + + credentials(HttpHeaderCredentials::class) { + name = "Authorization" + value = "token $scrowToken" + } + + authentication { + create("header") + } + } + } +} \ No newline at end of file diff --git a/src/main/java/de/kencommand/Main.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/Main.java similarity index 66% rename from src/main/java/de/kencommand/Main.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/Main.java index 98252b8..cfbf2c6 100644 --- a/src/main/java/de/kencommand/Main.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/Main.java @@ -1,8 +1,8 @@ -package de.kencommand; +package de.kentoj.kencommandapi; -import de.kencommand.api.KenCommandApi; -import de.kencommand.api.structure.argument.types.IntegerArgumentType; -import de.kencommand.impl.KenCommandApiImpl; +import de.kentoj.kencommandapi.api.KenCommandApi; +import de.kentoj.kencommandapi.api.structure.argument.types.IntegerArgumentType; +import de.kentoj.kencommandapi.impl.KenCommandApiImpl; import java.io.PrintStream; @@ -22,6 +22,6 @@ public class Main { addNode.addArgument(api.createArgument("amount", IntegerArgumentType.create())); root.addLiteral(addNode); - api.invoke(root, System.out, new String[] { "add", "100" }); + api.invoke(root, System.out, new String[]{"add", "100"}); } } diff --git a/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/KenCommandApi.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/KenCommandApi.java new file mode 100644 index 0000000..42a1a36 --- /dev/null +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/KenCommandApi.java @@ -0,0 +1,14 @@ +package de.kentoj.kencommandapi.api; + +import de.kentoj.kencommandapi.api.structure.argument.ArgumentType; +import de.kentoj.kencommandapi.api.structure.argument.CommandArgument; +import de.kentoj.kencommandapi.api.structure.node.CommandNode; + +public interface KenCommandApi { + + CommandNode createNode(String... name); + + CommandArgument createArgument(String id, ArgumentType type); + + void invoke(CommandNode node, T sender, String[] args); +} diff --git a/src/main/java/de/kencommand/api/processing/CommandContext.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/CommandContext.java similarity index 89% rename from src/main/java/de/kencommand/api/processing/CommandContext.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/CommandContext.java index 761e346..932c558 100644 --- a/src/main/java/de/kencommand/api/processing/CommandContext.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/CommandContext.java @@ -1,4 +1,4 @@ -package de.kencommand.api.processing; +package de.kentoj.kencommandapi.api.processing; public interface CommandContext { diff --git a/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/CommandExecutor.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/CommandExecutor.java new file mode 100644 index 0000000..b6c30b3 --- /dev/null +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/CommandExecutor.java @@ -0,0 +1,6 @@ +package de.kentoj.kencommandapi.api.processing; + +public interface CommandExecutor { + + void execute(CommandContext ctx); +} diff --git a/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/ParsedArgument.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/ParsedArgument.java new file mode 100644 index 0000000..8b2899f --- /dev/null +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/processing/ParsedArgument.java @@ -0,0 +1,10 @@ +package de.kentoj.kencommandapi.api.processing; + +import de.kentoj.kencommandapi.api.structure.argument.CommandArgument; + +public interface ParsedArgument { + + V getValue(); + + CommandArgument getArgument(); +} diff --git a/src/main/java/de/kencommand/api/structure/argument/ArgumentType.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/ArgumentType.java similarity index 69% rename from src/main/java/de/kencommand/api/structure/argument/ArgumentType.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/ArgumentType.java index c73d036..53ab833 100644 --- a/src/main/java/de/kencommand/api/structure/argument/ArgumentType.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/ArgumentType.java @@ -1,4 +1,4 @@ -package de.kencommand.api.structure.argument; +package de.kentoj.kencommandapi.api.structure.argument; public interface ArgumentType { diff --git a/src/main/java/de/kencommand/api/structure/argument/CommandArgument.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/CommandArgument.java similarity index 90% rename from src/main/java/de/kencommand/api/structure/argument/CommandArgument.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/CommandArgument.java index ba4bcf2..f3355dd 100644 --- a/src/main/java/de/kencommand/api/structure/argument/CommandArgument.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/CommandArgument.java @@ -1,4 +1,4 @@ -package de.kencommand.api.structure.argument; +package de.kentoj.kencommandapi.api.structure.argument; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/de/kencommand/api/structure/argument/SuggestionProvider.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/SuggestionProvider.java similarity index 50% rename from src/main/java/de/kencommand/api/structure/argument/SuggestionProvider.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/SuggestionProvider.java index 9f579dc..5b11e11 100644 --- a/src/main/java/de/kencommand/api/structure/argument/SuggestionProvider.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/SuggestionProvider.java @@ -1,6 +1,6 @@ -package de.kencommand.api.structure.argument; +package de.kentoj.kencommandapi.api.structure.argument; -import de.kencommand.api.processing.CommandContext; +import de.kentoj.kencommandapi.api.processing.CommandContext; import java.util.Set; diff --git a/src/main/java/de/kencommand/api/structure/argument/suggestion/NoSuggestionProvider.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/suggestion/NoSuggestionProvider.java similarity index 74% rename from src/main/java/de/kencommand/api/structure/argument/suggestion/NoSuggestionProvider.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/suggestion/NoSuggestionProvider.java index 18e4a6e..63e8759 100644 --- a/src/main/java/de/kencommand/api/structure/argument/suggestion/NoSuggestionProvider.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/suggestion/NoSuggestionProvider.java @@ -1,7 +1,7 @@ -package de.kencommand.api.structure.argument.suggestion; +package de.kentoj.kencommandapi.api.structure.argument.suggestion; -import de.kencommand.api.processing.CommandContext; -import de.kencommand.api.structure.argument.SuggestionProvider; +import de.kentoj.kencommandapi.api.processing.CommandContext; +import de.kentoj.kencommandapi.api.structure.argument.SuggestionProvider; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; diff --git a/src/main/java/de/kencommand/api/structure/argument/types/IntegerArgumentType.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/types/IntegerArgumentType.java similarity index 64% rename from src/main/java/de/kencommand/api/structure/argument/types/IntegerArgumentType.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/types/IntegerArgumentType.java index 8e91e8c..33830b5 100644 --- a/src/main/java/de/kencommand/api/structure/argument/types/IntegerArgumentType.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/argument/types/IntegerArgumentType.java @@ -1,8 +1,8 @@ -package de.kencommand.api.structure.argument.types; +package de.kentoj.kencommandapi.api.structure.argument.types; -import de.kencommand.api.structure.argument.ArgumentType; -import de.kencommand.api.structure.argument.SuggestionProvider; -import de.kencommand.api.structure.argument.suggestion.NoSuggestionProvider; +import de.kentoj.kencommandapi.api.structure.argument.ArgumentType; +import de.kentoj.kencommandapi.api.structure.argument.SuggestionProvider; +import de.kentoj.kencommandapi.api.structure.argument.suggestion.NoSuggestionProvider; import lombok.AccessLevel; import lombok.NoArgsConstructor; diff --git a/src/main/java/de/kencommand/api/structure/node/ArgumentNode.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/ArgumentNode.java similarity index 57% rename from src/main/java/de/kencommand/api/structure/node/ArgumentNode.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/ArgumentNode.java index 94a3a2b..bc70189 100644 --- a/src/main/java/de/kencommand/api/structure/node/ArgumentNode.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/ArgumentNode.java @@ -1,6 +1,6 @@ -package de.kencommand.api.structure.node; +package de.kentoj.kencommandapi.api.structure.node; -import de.kencommand.api.structure.argument.CommandArgument; +import de.kentoj.kencommandapi.api.structure.argument.CommandArgument; import java.util.Set; diff --git a/src/main/java/de/kencommand/api/structure/node/CommandNode.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/CommandNode.java similarity index 79% rename from src/main/java/de/kencommand/api/structure/node/CommandNode.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/CommandNode.java index e9b280d..a7210db 100644 --- a/src/main/java/de/kencommand/api/structure/node/CommandNode.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/CommandNode.java @@ -1,6 +1,6 @@ -package de.kencommand.api.structure.node; +package de.kentoj.kencommandapi.api.structure.node; -import de.kencommand.api.processing.CommandExecutor; +import de.kentoj.kencommandapi.api.processing.CommandExecutor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/de/kencommand/api/structure/node/LiteralNode.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/LiteralNode.java similarity index 85% rename from src/main/java/de/kencommand/api/structure/node/LiteralNode.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/LiteralNode.java index 4239456..d0d201e 100644 --- a/src/main/java/de/kencommand/api/structure/node/LiteralNode.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/api/structure/node/LiteralNode.java @@ -1,4 +1,4 @@ -package de.kencommand.api.structure.node; +package de.kentoj.kencommandapi.api.structure.node; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/de/kencommand/impl/KenCommandApiImpl.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/KenCommandApiImpl.java similarity index 79% rename from src/main/java/de/kencommand/impl/KenCommandApiImpl.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/KenCommandApiImpl.java index 5fab43d..a324c0e 100644 --- a/src/main/java/de/kencommand/impl/KenCommandApiImpl.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/KenCommandApiImpl.java @@ -1,14 +1,14 @@ -package de.kencommand.impl; +package de.kentoj.kencommandapi.impl; -import de.kencommand.api.KenCommandApi; -import de.kencommand.api.processing.ParsedArgument; -import de.kencommand.api.structure.argument.ArgumentType; -import de.kencommand.api.structure.argument.CommandArgument; -import de.kencommand.api.structure.node.CommandNode; -import de.kencommand.impl.processing.CommandContextImpl; -import de.kencommand.impl.processing.ParsedArgumentImpl; -import de.kencommand.impl.structure.argument.CommandArgumentImpl; -import de.kencommand.impl.structure.node.CommandNodeImpl; +import de.kentoj.kencommandapi.api.KenCommandApi; +import de.kentoj.kencommandapi.api.processing.ParsedArgument; +import de.kentoj.kencommandapi.api.structure.argument.ArgumentType; +import de.kentoj.kencommandapi.api.structure.argument.CommandArgument; +import de.kentoj.kencommandapi.api.structure.node.CommandNode; +import de.kentoj.kencommandapi.impl.processing.CommandContextImpl; +import de.kentoj.kencommandapi.impl.processing.ParsedArgumentImpl; +import de.kentoj.kencommandapi.impl.structure.argument.CommandArgumentImpl; +import de.kentoj.kencommandapi.impl.structure.node.CommandNodeImpl; import lombok.RequiredArgsConstructor; import java.util.Arrays; diff --git a/src/main/java/de/kencommand/impl/processing/CommandContextImpl.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/processing/CommandContextImpl.java similarity index 78% rename from src/main/java/de/kencommand/impl/processing/CommandContextImpl.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/processing/CommandContextImpl.java index 9e8348d..2903814 100644 --- a/src/main/java/de/kencommand/impl/processing/CommandContextImpl.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/processing/CommandContextImpl.java @@ -1,7 +1,7 @@ -package de.kencommand.impl.processing; +package de.kentoj.kencommandapi.impl.processing; -import de.kencommand.api.processing.CommandContext; -import de.kencommand.api.processing.ParsedArgument; +import de.kentoj.kencommandapi.api.processing.CommandContext; +import de.kentoj.kencommandapi.api.processing.ParsedArgument; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/processing/ParsedArgumentImpl.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/processing/ParsedArgumentImpl.java new file mode 100644 index 0000000..b2a4723 --- /dev/null +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/processing/ParsedArgumentImpl.java @@ -0,0 +1,11 @@ +package de.kentoj.kencommandapi.impl.processing; + +import de.kentoj.kencommandapi.api.processing.ParsedArgument; +import de.kentoj.kencommandapi.api.structure.argument.CommandArgument; +import lombok.Data; + +@Data +public class ParsedArgumentImpl implements ParsedArgument { + final V value; + final CommandArgument argument; +} diff --git a/src/main/java/de/kencommand/impl/structure/argument/CommandArgumentImpl.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/structure/argument/CommandArgumentImpl.java similarity index 63% rename from src/main/java/de/kencommand/impl/structure/argument/CommandArgumentImpl.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/structure/argument/CommandArgumentImpl.java index d17f3f8..4ada473 100644 --- a/src/main/java/de/kencommand/impl/structure/argument/CommandArgumentImpl.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/structure/argument/CommandArgumentImpl.java @@ -1,8 +1,8 @@ -package de.kencommand.impl.structure.argument; +package de.kentoj.kencommandapi.impl.structure.argument; -import de.kencommand.api.structure.argument.ArgumentType; -import de.kencommand.api.structure.argument.CommandArgument; -import de.kencommand.api.structure.argument.SuggestionProvider; +import de.kentoj.kencommandapi.api.structure.argument.ArgumentType; +import de.kentoj.kencommandapi.api.structure.argument.CommandArgument; +import de.kentoj.kencommandapi.api.structure.argument.SuggestionProvider; import lombok.Getter; import lombok.RequiredArgsConstructor; import lombok.Setter; diff --git a/src/main/java/de/kencommand/impl/structure/node/CommandNodeImpl.java b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/structure/node/CommandNodeImpl.java similarity index 86% rename from src/main/java/de/kencommand/impl/structure/node/CommandNodeImpl.java rename to kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/structure/node/CommandNodeImpl.java index d816334..2dff79b 100644 --- a/src/main/java/de/kencommand/impl/structure/node/CommandNodeImpl.java +++ b/kencommandapi-core/src/main/java/de/kentoj/kencommandapi/impl/structure/node/CommandNodeImpl.java @@ -1,9 +1,8 @@ -package de.kencommand.impl.structure.node; +package de.kentoj.kencommandapi.impl.structure.node; -import de.kencommand.api.processing.CommandExecutor; -import de.kencommand.api.structure.argument.CommandArgument; -import de.kencommand.api.structure.node.CommandNode; -import de.kencommand.api.structure.node.LiteralNode; +import de.kentoj.kencommandapi.api.processing.CommandExecutor; +import de.kentoj.kencommandapi.api.structure.argument.CommandArgument; +import de.kentoj.kencommandapi.api.structure.node.CommandNode; import lombok.Getter; import lombok.Setter; import org.jetbrains.annotations.NotNull; diff --git a/settings.gradle.kts b/settings.gradle.kts index 07f64e0..e29613a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,4 @@ -rootProject.name = "KenCommandAPI" \ No newline at end of file +rootProject.name = "KenCommandAPI" + +include("kencommandapi-core") +include("kencommandapi-bukkit") \ No newline at end of file diff --git a/src/main/java/de/kencommand/api/KenCommandApi.java b/src/main/java/de/kencommand/api/KenCommandApi.java deleted file mode 100644 index bcc8dd2..0000000 --- a/src/main/java/de/kencommand/api/KenCommandApi.java +++ /dev/null @@ -1,14 +0,0 @@ -package de.kencommand.api; - -import de.kencommand.api.structure.argument.ArgumentType; -import de.kencommand.api.structure.argument.CommandArgument; -import de.kencommand.api.structure.node.CommandNode; - -public interface KenCommandApi { - - CommandNode createNode(String... name); - - CommandArgument createArgument(String id, ArgumentType type); - - void invoke(CommandNode node, T sender, String[] args); -} diff --git a/src/main/java/de/kencommand/api/processing/CommandExecutor.java b/src/main/java/de/kencommand/api/processing/CommandExecutor.java deleted file mode 100644 index 65e57c6..0000000 --- a/src/main/java/de/kencommand/api/processing/CommandExecutor.java +++ /dev/null @@ -1,6 +0,0 @@ -package de.kencommand.api.processing; - -public interface CommandExecutor { - - void execute(CommandContext ctx); -} diff --git a/src/main/java/de/kencommand/api/processing/ParsedArgument.java b/src/main/java/de/kencommand/api/processing/ParsedArgument.java deleted file mode 100644 index 13c4e06..0000000 --- a/src/main/java/de/kencommand/api/processing/ParsedArgument.java +++ /dev/null @@ -1,10 +0,0 @@ -package de.kencommand.api.processing; - -import de.kencommand.api.structure.argument.CommandArgument; - -public interface ParsedArgument { - - V getValue(); - - CommandArgument getArgument(); -} diff --git a/src/main/java/de/kencommand/impl/processing/ParsedArgumentImpl.java b/src/main/java/de/kencommand/impl/processing/ParsedArgumentImpl.java deleted file mode 100644 index 0412ed1..0000000 --- a/src/main/java/de/kencommand/impl/processing/ParsedArgumentImpl.java +++ /dev/null @@ -1,11 +0,0 @@ -package de.kencommand.impl.processing; - -import de.kencommand.api.processing.ParsedArgument; -import de.kencommand.api.structure.argument.CommandArgument; -import lombok.Data; - -@Data -public class ParsedArgumentImpl implements ParsedArgument { - final V value; - final CommandArgument argument; -}