From b0c8091cb7b8b32c8f7c7af300608349f31b62a5 Mon Sep 17 00:00:00 2001 From: Carm Date: Thu, 25 Aug 2022 02:34:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(command):=20=E5=85=81=E8=AE=B8=E5=AD=90?= =?UTF-8?q?=E6=8C=87=E4=BB=A4=E4=B8=8D=E5=A4=84=E7=90=86=E6=8A=A5=E9=94=99?= =?UTF-8?q?=EF=BC=8C=E7=BB=9F=E4=B8=80=E4=BA=A4=E7=94=B1=E7=88=B6CommandHa?= =?UTF-8?q?ndler=E5=A4=84=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cc/carm/lib/easyplugin/command/CommandHandler.java | 10 +++++++++- .../cc/carm/lib/easyplugin/command/SubCommand.java | 4 ++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/base/command/src/main/java/cc/carm/lib/easyplugin/command/CommandHandler.java b/base/command/src/main/java/cc/carm/lib/easyplugin/command/CommandHandler.java index b4a606a..52cdf68 100644 --- a/base/command/src/main/java/cc/carm/lib/easyplugin/command/CommandHandler.java +++ b/base/command/src/main/java/cc/carm/lib/easyplugin/command/CommandHandler.java @@ -1,5 +1,6 @@ package cc.carm.lib.easyplugin.command; +import jdk.internal.foreign.CABI; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -45,6 +46,11 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor { public abstract Void noPermission(CommandSender sender); + public Void onException(CommandSender sender, SubCommand cmd, Exception ex) { + sender.sendMessage("Error occurred when executing " + cmd.getName() + ": " + ex.getLocalizedMessage()); + return null; + } + @Override public @NotNull List getAliases() { return aliases; @@ -91,8 +97,10 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor { } else { try { sub.execute(this.plugin, sender, this.shortenArgs(args)); - } catch (ArrayIndexOutOfBoundsException var9) { + } catch (ArrayIndexOutOfBoundsException ex) { this.unknownCommand(sender, args); + } catch (Exception ex) { + this.onException(sender, sub, ex); } } diff --git a/base/command/src/main/java/cc/carm/lib/easyplugin/command/SubCommand.java b/base/command/src/main/java/cc/carm/lib/easyplugin/command/SubCommand.java index 5080435..a8cfc42 100644 --- a/base/command/src/main/java/cc/carm/lib/easyplugin/command/SubCommand.java +++ b/base/command/src/main/java/cc/carm/lib/easyplugin/command/SubCommand.java @@ -38,10 +38,10 @@ public abstract class SubCommand implements NamedExecu return this.aliases; } - public abstract Void execute(JavaPlugin plugin, CommandSender sender, String[] args); + public abstract Void execute(JavaPlugin plugin, CommandSender sender, String[] args) throws Exception; public List tabComplete(JavaPlugin plugin, CommandSender sender, String[] args) { return Collections.emptyList(); } - + }