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;
|
package cc.carm.lib.easyplugin.command;
|
||||||
|
|
||||||
|
import jdk.internal.foreign.CABI;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.TabExecutor;
|
import org.bukkit.command.TabExecutor;
|
||||||
@ -45,6 +46,11 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor {
|
|||||||
|
|
||||||
public abstract Void noPermission(CommandSender sender);
|
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
|
@Override
|
||||||
public @NotNull List<String> getAliases() {
|
public @NotNull List<String> getAliases() {
|
||||||
return aliases;
|
return aliases;
|
||||||
@ -91,8 +97,10 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor {
|
|||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
sub.execute(this.plugin, sender, this.shortenArgs(args));
|
sub.execute(this.plugin, sender, this.shortenArgs(args));
|
||||||
} catch (ArrayIndexOutOfBoundsException var9) {
|
} catch (ArrayIndexOutOfBoundsException ex) {
|
||||||
this.unknownCommand(sender, args);
|
this.unknownCommand(sender, args);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
this.onException(sender, sub, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,10 +38,10 @@ public abstract class SubCommand<C extends CommandHandler> implements NamedExecu
|
|||||||
return this.aliases;
|
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) {
|
public List<String> tabComplete(JavaPlugin plugin, CommandSender sender, String[] args) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user