From a2fc58a53e78289b343cfcd59325beb6462f4574 Mon Sep 17 00:00:00 2001 From: CitralFlo Date: Sun, 19 Oct 2025 23:43:45 +0200 Subject: [PATCH 1/2] Add error message for incorrect stack number and update validation logic --- .../java/com/eternalcode/core/feature/item/ItemCommand.java | 4 +--- .../core/litecommand/argument/StackAmountArgument.java | 6 +++--- .../litecommand/argument/messages/ArgumentMessages.java | 1 + .../litecommand/argument/messages/ENArgumentMessages.java | 1 + .../litecommand/argument/messages/PLArgumentMessages.java | 1 + 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/feature/item/ItemCommand.java b/eternalcore-core/src/main/java/com/eternalcode/core/feature/item/ItemCommand.java index af8855346..92699d83e 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/feature/item/ItemCommand.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/feature/item/ItemCommand.java @@ -1,7 +1,6 @@ package com.eternalcode.core.feature.item; import com.eternalcode.annotations.scan.command.DescriptionDocs; -import com.eternalcode.core.configuration.implementation.PluginConfiguration; import com.eternalcode.core.litecommand.argument.StackAmountArgument; import com.eternalcode.core.feature.give.GiveService; import com.eternalcode.core.injector.annotations.Inject; @@ -11,7 +10,6 @@ import dev.rollczi.litecommands.annotations.command.Command; import dev.rollczi.litecommands.annotations.context.Context; import dev.rollczi.litecommands.annotations.execute.Execute; -import dev.rollczi.litecommands.annotations.optional.OptionalArg; import dev.rollczi.litecommands.annotations.permission.Permission; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -39,7 +37,7 @@ void execute(@Context Player player, @Arg Material material) { @Execute @DescriptionDocs(description = "Gives an item with a custom amount", arguments = " [amount]") - void execute(@Context Player player, @Arg Material material, @OptionalArg(StackAmountArgument.KEY) int amount) { + void execute(@Context Player player, @Arg Material material, @Arg(StackAmountArgument.KEY) int amount) { boolean isSuccess = this.giveService.giveItem(player, player, material, amount); if (isSuccess) { diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/StackAmountArgument.java b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/StackAmountArgument.java index 6505d7d08..d92670b4c 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/StackAmountArgument.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/StackAmountArgument.java @@ -29,14 +29,14 @@ public ParseResult parse(Invocation invocation, String a try { int value = Integer.parseInt(argument); - if (value < 0) { - return ParseResult.failure(translation.argument().numberBiggerThanOrEqualZero()); + if (value <= 0) { + return ParseResult.failure(translation.argument().numberBiggerThanZero()); } return ParseResult.success(value); } catch (NumberFormatException exception) { - return ParseResult.failure(translation.argument().numberBiggerThanOrEqualZero()); + return ParseResult.failure(translation.argument().stackNumberIncorrect()); } } diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ArgumentMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ArgumentMessages.java index 173f21d23..1459feedd 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ArgumentMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ArgumentMessages.java @@ -12,6 +12,7 @@ public interface ArgumentMessages { Notice onlyPlayer(); Notice numberBiggerThanZero(); Notice numberBiggerThanOrEqualZero(); + Notice stackNumberIncorrect(); Notice noItem(); Notice noArgument(); Notice worldDoesntExist(); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java index 7ad497e5f..368d3f5d5 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java @@ -23,6 +23,7 @@ public class ENArgumentMessages extends OkaeriConfig implements ArgumentMessages public Notice onlyPlayer = Notice.chat("Command is only for players!"); public Notice numberBiggerThanZero = Notice.chat("The number must be greater than 0!"); public Notice numberBiggerThanOrEqualZero = Notice.chat("The number must be greater than or equal to 0!"); + Notice stackNumberIncorrect = Notice.chat("Incorrect number!"); public Notice noItem = Notice.chat("You need item to use this command!"); public Notice noMaterial = Notice.chat("This item doesn't exist"); public Notice noArgument = Notice.chat("This argument doesn't exist"); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java index 2f8c655e1..a193e2e73 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java @@ -24,6 +24,7 @@ public class PLArgumentMessages extends OkaeriConfig implements ArgumentMessages public Notice onlyPlayer = Notice.chat("Ta komenda jest dostępna tylko dla graczy!"); public Notice numberBiggerThanZero = Notice.chat("Liczba musi być większa od 0!"); public Notice numberBiggerThanOrEqualZero = Notice.chat("Liczba musi być równa lub większa od 0!"); + Notice stackNumberIncorrect = Notice.chat("Niepoprawna liczba!"); public Notice noItem = Notice.chat("Musisz trzymać przedmiot w dłoni!"); public Notice noMaterial = Notice.chat("Taki materiał nie istnieje!"); public Notice noArgument = Notice.chat("Taki argument nie istnieje!"); From 90d6df9a28ba2b84fd90b054c624a586fff1f6a4 Mon Sep 17 00:00:00 2001 From: Martin Sulikowski Date: Mon, 20 Oct 2025 19:51:01 +0200 Subject: [PATCH 2/2] Remove `` to use follow other messages' layout. --- .../core/litecommand/argument/messages/ENArgumentMessages.java | 2 +- .../core/litecommand/argument/messages/PLArgumentMessages.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java index 8d64c59e3..a0c06af70 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/ENArgumentMessages.java @@ -23,7 +23,7 @@ public class ENArgumentMessages extends OkaeriConfig implements ArgumentMessages Notice onlyPlayer = Notice.chat("Command is only for players!"); Notice numberBiggerThanZero = Notice.chat("The number must be greater than 0!"); Notice numberBiggerThanOrEqualZero = Notice.chat("The number must be greater than or equal to 0!"); - Notice stackNumberIncorrect = Notice.chat("Incorrect number!"); + Notice stackNumberIncorrect = Notice.chat("Incorrect number!"); Notice noItem = Notice.chat("You need item to use this command!"); Notice noMaterial = Notice.chat("This item doesn't exist"); Notice noArgument = Notice.chat("This argument doesn't exist"); diff --git a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java index 8cee81350..d360cc204 100644 --- a/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java +++ b/eternalcore-core/src/main/java/com/eternalcode/core/litecommand/argument/messages/PLArgumentMessages.java @@ -24,7 +24,7 @@ public class PLArgumentMessages extends OkaeriConfig implements ArgumentMessages Notice onlyPlayer = Notice.chat("Ta komenda jest dostępna tylko dla graczy!"); Notice numberBiggerThanZero = Notice.chat("Liczba musi być większa od 0!"); Notice numberBiggerThanOrEqualZero = Notice.chat("Liczba musi być równa lub większa od 0!"); - Notice stackNumberIncorrect = Notice.chat("Niepoprawna liczba!"); + Notice stackNumberIncorrect = Notice.chat("Musisz trzymać przedmiot w dłoni!"); Notice noMaterial = Notice.chat("Taki materiał nie istnieje!"); Notice noArgument = Notice.chat("Taki argument nie istnieje!");