perf(bukkit): 优化代码

This commit is contained in:
2023-02-16 06:36:31 +08:00
parent 8339b2f465
commit 6eef5a0f46

View File

@@ -140,24 +140,18 @@ public abstract class ParentCommand extends ChildCommand {
if (!childCommand.getName().equalsIgnoreCase(args[0])) { if (!childCommand.getName().equalsIgnoreCase(args[0])) {
continue; continue;
} }
if (childCommand instanceof ParentCommand || childCommand.hasPermission(sender)) { if (!childCommand.hasPermission(sender)) {
return childCommand.onCommand(sender, command, label, Arrays.copyOfRange(args, 1, args.length));
}
CoreMessage.COMMAND_NOT_HAS_PERMISSION.show(sender); CoreMessage.COMMAND_NOT_HAS_PERMISSION.show(sender);
return true; return true;
} }
return childCommand.onCommand(sender, command, label, Arrays.copyOfRange(args, 1, args.length));
}
CoreMessage.COMMAND_NOT_FOUND.show(sender); CoreMessage.COMMAND_NOT_FOUND.show(sender);
return true; return true;
} }
@Override @Override
public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) { public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
if (args.length == 0) {
return childCommands.stream()
.filter(o -> o.hasPermission(sender))
.map(ChildCommand::getName)
.collect(Collectors.toList());
}
for (ChildCommand child : childCommands) { for (ChildCommand child : childCommands) {
if (args[0].equalsIgnoreCase(child.getName())) { if (args[0].equalsIgnoreCase(child.getName())) {
return child.onTabComplete(sender, command, alias, Arrays.copyOfRange(args, 1, args.length)); return child.onTabComplete(sender, command, alias, Arrays.copyOfRange(args, 1, args.length));