diff --git a/README.md b/README.md
index f9e56b941..7ba54a085 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
+
-
-
LiteCommands & Hacktoberfest 2024
-
-
-
+[](https://repo.panda-lang.org/#/releases/dev/rollczi/litecommands)
+
+

+
[](https://discord.gg/6cUhkj6uZJ)
[](https://github.com/sponsors/Rollczi)
@@ -27,7 +27,10 @@ Annotation based command framework for Velocity, Bukkit, Paper, BungeeCord, Mine
- Simple Arguments [@Arg](https://docs.rollczi.dev/documentation/litecommands/arguments/arg.html#arg) & Optional arguments [@OptionalArg](https://docs.rollczi.dev/documentation/litecommands/arguments/arg-optional.html#arg-optional)
- Flags - [@Flag](https://docs.rollczi.dev/documentation/litecommands/arguments/flag.html#flag)
- Joiner - _[@Join](https://docs.rollczi.dev/documentation/litecommands/arguments/join.html#join) remaining arguments into a string_
+- Literal arguments - @Literal
+- [@Quoted](https://docs.rollczi.dev/documentation/litecommands/arguments/quoted.html) arguments for `"quoted input!"`
- Asynchronous commands, argument parsing and completion. [@Async](https://docs.rollczi.dev/documentation/litecommands/features/asynchronous/async-annotation.html#async)
+- Context providers - e.g. `@Sender Player`, `@Context World` and [more](https://docs.rollczi.dev/documentation/litecommands/getting-started/context.html)
- Command shortcuts [@Shortcut](https://docs.rollczi.dev/documentation/litecommands/features/shortcut.html#shortcut)
- Support for basic types: `int`, `double`, `Duration`, `LocalDateTime`, `Location` and [more](https://docs.rollczi.dev/documentation/litecommands/arguments/arg/java-types.html#java-types)!
- Support for collection types: `List`, `Set`, `TreeSet`, `Queue`, java array `T[]` and many others!
@@ -42,7 +45,7 @@ Annotation based command framework for Velocity, Bukkit, Paper, BungeeCord, Mine
## 📦 Platforms
- Velocity
- Bukkit, Spigot, Paper
-- BungeeCord, Waterfall
+- BungeeCord, Waterfall _(by [rchomczyk](https://github.com/rchomczyk))_
- Minestom _(by [Codestech1](https://github.com/Codestech1))_
- Sponge _(by [BlackBaroness](https://github.com/BlackBaroness))_
- Fabric _(by [huanmeng_qwq](https://github.com/huanmeng-qwq))_
@@ -57,7 +60,7 @@ This is an example of `/hello
` command:
public class HelloCommand {
@Execute
- void command(@Context CommandSender sender, @Arg String name, @Arg int amount) {
+ void command(@Sender CommandSender sender, @Arg String name, @Arg int amount) {
for (int i = 0; i < amount; i++) {
sender.sendMessage("Hello " + name);
}
@@ -86,13 +89,13 @@ maven("https://repo.panda-lang.org/releases")
#### ➕ Add LiteCommands to dependencies
```kts
-implementation("dev.rollczi:{artifact}:3.8.0")
+implementation("dev.rollczi:{artifact}:3.9.0")
```
```xml
dev.rollczi
{artifact}
- 3.8.0
+ 3.9.0
```
> ⚠️ Replace `{artifact}` with [platform artifact](https://docs.rollczi.dev/documentation/litecommands/platforms.html#supported-platforms)
@@ -104,7 +107,7 @@ implementation("dev.rollczi:{artifact}:3.8.0")
@@ Special thanks to all sponsors for supporting me and my projects! ❤️ @@
```
-
+
## 🔮 Official IntelliJ Plugin
diff --git a/buildSrc/src/main/kotlin/litecommands-publish.gradle.kts b/buildSrc/src/main/kotlin/litecommands-publish.gradle.kts
index e3549a3db..dc32729fe 100644
--- a/buildSrc/src/main/kotlin/litecommands-publish.gradle.kts
+++ b/buildSrc/src/main/kotlin/litecommands-publish.gradle.kts
@@ -4,7 +4,7 @@ plugins {
}
group = "dev.rollczi"
-version = "3.8.1-SNAPSHOT"
+version = "3.9.0"
publishing {
java {
diff --git a/examples/bukkit-adventure-platform/build.gradle.kts b/examples/bukkit-adventure-platform/build.gradle.kts
index 87718dc5e..7a6157e46 100644
--- a/examples/bukkit-adventure-platform/build.gradle.kts
+++ b/examples/bukkit-adventure-platform/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
id("xyz.jpenilla.run-paper") version "2.3.0"
}
-version = "3.8.0"
+version = "3.9.0"
repositories {
mavenCentral()
@@ -16,8 +16,8 @@ repositories {
dependencies {
compileOnly("org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT")
- // implementation("dev.rollczi:litecommands-bukkit:3.8.0") // <-- uncomment in your project
- // implementation("dev.rollczi:litecommands-adventure-platform:3.8.0") // <-- uncomment in your project
+ // implementation("dev.rollczi:litecommands-bukkit:3.9.0") // <-- uncomment in your project
+ // implementation("dev.rollczi:litecommands-adventure-platform:3.9.0") // <-- uncomment in your project
implementation("net.kyori:adventure-platform-bukkit:4.3.0")
implementation("net.kyori:adventure-text-minimessage:4.14.0")
diff --git a/examples/bukkit-chatgpt/build.gradle.kts b/examples/bukkit-chatgpt/build.gradle.kts
index ed0c0a30e..44058e769 100644
--- a/examples/bukkit-chatgpt/build.gradle.kts
+++ b/examples/bukkit-chatgpt/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
id("xyz.jpenilla.run-paper") version "2.3.0"
}
-version = "3.8.0-SNAPSHOT"
+version = "3.9.0"
repositories {
mavenCentral()
@@ -16,8 +16,8 @@ repositories {
dependencies {
compileOnly("org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT")
- // implementation("dev.rollczi:litecommands-bukkit:3.8.0") // <-- uncomment in your project
- // implementation("dev.rollczi:litecommands-chatgpt:3.8.0") // <-- uncomment in your project
+ // implementation("dev.rollczi:litecommands-bukkit:3.9.0") // <-- uncomment in your project
+ // implementation("dev.rollczi:litecommands-chatgpt:3.9.0") // <-- uncomment in your project
implementation(project(":litecommands-bukkit")) // don't use this line in your build.gradle
implementation(project(":litecommands-chatgpt")) // don't use this line in your build.gradle
}
diff --git a/examples/bukkit/build.gradle.kts b/examples/bukkit/build.gradle.kts
index 4816bbcf3..f92dfdb3e 100644
--- a/examples/bukkit/build.gradle.kts
+++ b/examples/bukkit/build.gradle.kts
@@ -5,7 +5,7 @@ plugins {
id("xyz.jpenilla.run-paper") version "2.3.1"
}
-version = "3.8.0"
+version = "3.9.0"
repositories {
mavenCentral()
@@ -16,7 +16,7 @@ repositories {
dependencies {
compileOnly("org.spigotmc:spigot-api:1.20.2-R0.1-SNAPSHOT")
- // implementation("dev.rollczi:litecommands-bukkit:3.8.0") // <-- uncomment in your project
+ // implementation("dev.rollczi:litecommands-bukkit:3.9.0") // <-- uncomment in your project
implementation(project(":litecommands-bukkit")) // don't use this line in your build.gradle
}
diff --git a/examples/fabric/build.gradle.kts b/examples/fabric/build.gradle.kts
index 510947cf8..e221fa489 100644
--- a/examples/fabric/build.gradle.kts
+++ b/examples/fabric/build.gradle.kts
@@ -21,7 +21,7 @@ dependencies {
modImplementation("net.fabricmc:fabric-loader:0.16.7")
modImplementation("net.fabricmc.fabric-api:fabric-api:0.106.0+1.21.1")
-// modImplementation("dev.rollczi:litecommands-fabric:3.8.0") // <-- uncomment in your project
+// modImplementation("dev.rollczi:litecommands-fabric:3.9.0") // <-- uncomment in your project
implementation(project(path = ":litecommands-fabric", configuration = "namedElements"))
}
diff --git a/examples/fabric/src/main/resources/fabric.mod.json b/examples/fabric/src/main/resources/fabric.mod.json
index d829e52ed..bfbf23c76 100644
--- a/examples/fabric/src/main/resources/fabric.mod.json
+++ b/examples/fabric/src/main/resources/fabric.mod.json
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"id": "litecommands_example",
- "version": "3.8.0",
+ "version": "3.9.0",
"name": "LiteCommands Fabric Example",
"description": "Annotation based command framework for Fabric.",
"authors": [
diff --git a/examples/minestom/build.gradle.kts b/examples/minestom/build.gradle.kts
index 78775491c..70923c117 100644
--- a/examples/minestom/build.gradle.kts
+++ b/examples/minestom/build.gradle.kts
@@ -18,7 +18,7 @@ dependencies {
implementation("net.minestom:minestom-snapshots:4305006e6b")
implementation("net.kyori:adventure-text-minimessage:4.17.0")
- // implementation("dev.rollczi:litecommands-minestom:3.8.0") // <-- uncomment in your project
+ // implementation("dev.rollczi:litecommands-minestom:3.9.0") // <-- uncomment in your project
implementation(project(":litecommands-minestom")) // don't use this line in your build.gradle
}
diff --git a/examples/velocity/build.gradle.kts b/examples/velocity/build.gradle.kts
index fd9b48a85..1eee973e6 100644
--- a/examples/velocity/build.gradle.kts
+++ b/examples/velocity/build.gradle.kts
@@ -19,7 +19,7 @@ dependencies {
compileOnly("com.velocitypowered:velocity-api:3.2.0-SNAPSHOT")
annotationProcessor("com.velocitypowered:velocity-api:3.2.0-SNAPSHOT")
- // implementation("dev.rollczi:litecommands-velocity:3.8.0") // <-- uncomment in your project
+ // implementation("dev.rollczi:litecommands-velocity:3.9.0") // <-- uncomment in your project
implementation(project(":litecommands-velocity")) // don't use this line in your build.gradle
}
diff --git a/examples/velocity/src/main/java/dev/rollczi/example/velocity/ExamplePlugin.java b/examples/velocity/src/main/java/dev/rollczi/example/velocity/ExamplePlugin.java
index b3caa9643..acfcc51db 100644
--- a/examples/velocity/src/main/java/dev/rollczi/example/velocity/ExamplePlugin.java
+++ b/examples/velocity/src/main/java/dev/rollczi/example/velocity/ExamplePlugin.java
@@ -17,13 +17,12 @@
import dev.rollczi.example.velocity.handler.PermissionMessage;
import dev.rollczi.litecommands.LiteCommands;
import dev.rollczi.litecommands.argument.profile.ProfileNamespaces;
-import dev.rollczi.litecommands.join.JoinProfile;
import dev.rollczi.litecommands.suggestion.SuggestionResult;
import dev.rollczi.litecommands.schematic.SchematicFormat;
import dev.rollczi.litecommands.velocity.LiteVelocityFactory;
import dev.rollczi.litecommands.velocity.tools.VelocityOnlyPlayerContextual;
-@Plugin(id = "example-plugin", name = "ExamplePlugin", version = "3.8.0", authors = "Rollczi")
+@Plugin(id = "example-plugin", name = "ExamplePlugin", version = "3.9.0", authors = "Rollczi")
public class ExamplePlugin {
private final ProxyServer proxyServer;
diff --git a/litecommands-core/src/dev/rollczi/litecommands/suggestion/Suggestion.java b/litecommands-core/src/dev/rollczi/litecommands/suggestion/Suggestion.java
index 16af7d30d..3ed5b93be 100644
--- a/litecommands-core/src/dev/rollczi/litecommands/suggestion/Suggestion.java
+++ b/litecommands-core/src/dev/rollczi/litecommands/suggestion/Suggestion.java
@@ -52,6 +52,9 @@ public int lengthMultilevel() {
return this.multiSuggestion.size();
}
+ /**
+ * @since 3.9.0
+ */
@ApiStatus.Experimental
public String tooltip() {
return this.tooltip;
@@ -115,17 +118,28 @@ public Suggestion appendLevel(String levelPart) {
return Suggestion.from(newSuggestion, this.tooltip);
}
+ /**
+ * Creates a new suggestion with the given tooltip. The List of suggestions will be joined by space.
+ * @since 3.9.0
+ */
@ApiStatus.Experimental
@ApiStatus.Internal
public static Suggestion from(List suggestion, String tooltip) {
return new Suggestion(String.join(" ", suggestion), tooltip, new ArrayList<>(suggestion));
}
+ /**
+ * Creates a new suggestion from the given list of suggestions that will be joined by space.
+ */
@ApiStatus.Internal
public static Suggestion from(List suggestion) {
return new Suggestion(String.join(" ", suggestion), DEFAULT_TOOLTIP, new ArrayList<>(suggestion));
}
+ /**
+ * Creates a new suggestion with the given tooltip.
+ * @since 3.9.0
+ */
@ApiStatus.Experimental
public static Suggestion of(String suggestion, String tooltip) {
return new Suggestion(suggestion, tooltip, StringUtil.splitBySpace(suggestion));
diff --git a/litecommands-fabric/src/main/resources/fabric.mod.json b/litecommands-fabric/src/main/resources/fabric.mod.json
index cab8c515d..9fdf64ef0 100644
--- a/litecommands-fabric/src/main/resources/fabric.mod.json
+++ b/litecommands-fabric/src/main/resources/fabric.mod.json
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"id": "litecommands",
- "version": "3.8.0",
+ "version": "3.9.0",
"name": "LiteCommands",
"description": "Annotation based command framework for Fabric.",
"authors": [