mirror of
https://github.com/CarmJos/EasyPlugin.git
synced 2024-09-19 19:25:45 +00:00
feat(command): 允许子指令不处理报错,统一交由父CommandHandler处理。
This commit is contained in:
parent
8f03c2a1b3
commit
b0c8091cb7
@ -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<String> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ public abstract class SubCommand<C extends CommandHandler> 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<String> tabComplete(JavaPlugin plugin, CommandSender sender, String[] args) {
|
||||
return Collections.emptyList();
|
||||
|
Loading…
Reference in New Issue
Block a user