From 7be769ca25da8e1fe539ad22a281afb815683d5f Mon Sep 17 00:00:00 2001 From: YufiriaMazenta Date: Fri, 13 Sep 2024 11:40:49 +0800 Subject: [PATCH] =?UTF-8?q?[1.10.10]=E4=BF=AE=E5=A4=8D=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E5=AF=BC=E8=87=B4StackOverflowError=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle.kts | 2 +- .../craftorithm/cmd/sub/item/ItemCommand.java | 4 +- .../cmd/sub/item/fuel/FuelCommand.java | 10 ++++- .../cmd/sub/recipe/RecipeListCommand.java | 39 ++++++++++--------- 4 files changed, 33 insertions(+), 22 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 90a12cc5..43cc50f7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ import java.text.SimpleDateFormat -version = "1.10.9" +version = "1.10.10" plugins { `java-library` diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java index 3cbd99e2..22d239d4 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/ItemCommand.java @@ -15,13 +15,15 @@ private ItemCommand() { regSub(SaveItemCommand.INSTANCE).regSub(GiveItemCommand.INSTANCE).regSub(FuelCommand.INSTANCE); } + + @Override public boolean execute(CommandSender sender, List args) { if (args.isEmpty()) { sendNotEnoughCmdParamMsg(sender, 2); return true; } - return super.onCommand(sender, args); + return true; } } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java index c37fa325..42ddd496 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/item/fuel/FuelCommand.java @@ -1,13 +1,21 @@ package com.github.yufiriamazenta.craftorithm.cmd.sub.item.fuel; import com.github.yufiriamazenta.craftorithm.cmd.sub.AbstractSubCommand; +import crypticlib.command.SubcommandHandler; +import crypticlib.command.annotation.Subcommand; + public class FuelCommand extends AbstractSubCommand { public static final FuelCommand INSTANCE = new FuelCommand(); protected FuelCommand() { super("fuel", "craftorithm.command.item.fuel"); - regSub(AddFuelCommand.INSTANCE).regSub(RemoveFuelCommand.INSTANCE); } + @Subcommand + SubcommandHandler add = AddFuelCommand.INSTANCE; + + @Subcommand + SubcommandHandler remove = RemoveFuelCommand.INSTANCE; + } diff --git a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/recipe/RecipeListCommand.java b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/recipe/RecipeListCommand.java index de5ac4c0..ad42b3d9 100644 --- a/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/recipe/RecipeListCommand.java +++ b/src/main/java/com/github/yufiriamazenta/craftorithm/cmd/sub/recipe/RecipeListCommand.java @@ -5,6 +5,7 @@ import com.github.yufiriamazenta.craftorithm.menu.display.RecipeListMenu; import com.github.yufiriamazenta.craftorithm.recipe.RecipeManager; import crypticlib.command.SubcommandHandler; +import crypticlib.command.annotation.Subcommand; import crypticlib.perm.PermInfo; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -21,32 +22,32 @@ public final class RecipeListCommand extends AbstractSubCommand { private RecipeListCommand() { super("list", "craftorithm.command.list"); - regSub(new SubcommandHandler(SERVER) { - @Override - public boolean execute(CommandSender sender, List args) { - new RecipeListMenu((Player) sender, RecipeManager.INSTANCE.serverRecipesCache().keySet()).openMenu(); - return true; - } - }.setPermission(new PermInfo("craftorithm.command.list.server"))); - regSub( - new SubcommandHandler(CRAFTORITHM) { - @Override - public boolean execute(CommandSender sender, List args) { - new RecipeGroupListMenu((Player) sender).openMenu(); - return true; - } - }.setPermission("craftorithm.command.list")); } + @Subcommand + SubcommandHandler server = new SubcommandHandler(SERVER, new PermInfo("craftorithm.command.list.server")) { + @Override + public boolean execute(CommandSender sender, List args) { + new RecipeListMenu((Player) sender, RecipeManager.INSTANCE.serverRecipesCache().keySet()).openMenu(); + return true; + } + }; + + @Subcommand + SubcommandHandler craftorithm = new SubcommandHandler(CRAFTORITHM, new PermInfo("craftorithm.command.list")) { + @Override + public boolean execute(CommandSender sender, List args) { + new RecipeGroupListMenu((Player) sender).openMenu(); + return true; + } + }; + @Override public boolean execute(CommandSender sender, List args) { if (!checkSenderIsPlayer(sender)) { return true; } - if (args.isEmpty()) { - args = new ArrayList<>(Collections.singletonList(CRAFTORITHM)); - } - return super.onCommand(sender, args); + return craftorithm.execute(sender, args); } }