mirror of
https://github.com/CarmJos/EasyPlugin.git
synced 2026-06-04 08:38:17 +08:00
feat(papi): 提供便捷的PlaceholderAPI变量实现类。
This commit is contained in:
@@ -46,7 +46,8 @@ 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());
|
||||
sender.sendMessage("Error occurred when executing " + cmd.getIdentifier() + ": " + ex.getLocalizedMessage());
|
||||
ex.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -56,18 +57,18 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
public @NotNull String getIdentifier() {
|
||||
return this.cmd;
|
||||
}
|
||||
|
||||
public void registerSubCommand(SubCommand<?> command) {
|
||||
String name = command.getName().toLowerCase();
|
||||
String name = command.getIdentifier().toLowerCase();
|
||||
this.registeredCommands.put(name, command);
|
||||
command.getAliases().forEach(alias -> this.aliasesMap.put(alias.toLowerCase(), name));
|
||||
}
|
||||
|
||||
public void registerHandler(CommandHandler handler) {
|
||||
String name = handler.getName().toLowerCase();
|
||||
String name = handler.getIdentifier().toLowerCase();
|
||||
this.registeredHandlers.put(name, handler);
|
||||
handler.getAliases().forEach(alias -> this.aliasesMap.put(alias.toLowerCase(), name));
|
||||
}
|
||||
@@ -106,7 +107,6 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor {
|
||||
sub.execute(this.plugin, sender, this.shortenArgs(args));
|
||||
} catch (Exception ex) {
|
||||
this.onException(sender, sub, ex);
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor {
|
||||
if (args.length == 1) {
|
||||
return getExecutors().stream()
|
||||
.filter(e -> e.hasPermission(sender))
|
||||
.map(NamedExecutor::getName)
|
||||
.map(NamedExecutor::getIdentifier)
|
||||
.filter(s -> StringUtil.startsWithIgnoreCase(s, input))
|
||||
.collect(Collectors.toList());
|
||||
} else {
|
||||
@@ -145,7 +145,7 @@ public abstract class CommandHandler implements TabExecutor, NamedExecutor {
|
||||
executors.addAll(this.registeredHandlers.values());
|
||||
executors.addAll(this.registeredCommands.values());
|
||||
List<NamedExecutor> sortedExecutors = new ArrayList<>(executors);
|
||||
sortedExecutors.sort(Comparator.comparing(NamedExecutor::getName));
|
||||
sortedExecutors.sort(Comparator.comparing(NamedExecutor::getIdentifier));
|
||||
return sortedExecutors;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,16 +11,16 @@ import java.util.function.Function;
|
||||
|
||||
public interface NamedExecutor {
|
||||
|
||||
String getName();
|
||||
@NotNull String getIdentifier();
|
||||
|
||||
List<String> getAliases();
|
||||
@NotNull List<String> getAliases();
|
||||
|
||||
default boolean hasPermission(CommandSender sender) {
|
||||
default boolean hasPermission(@NotNull CommandSender sender) {
|
||||
return true;
|
||||
}
|
||||
|
||||
default Void sendMessage(@NotNull CommandSender sender, @NotNull String... messages) {
|
||||
return sendMessage(sender, (Function<String, String>) null, messages);
|
||||
return sendMessage(sender, Function.identity(), messages);
|
||||
}
|
||||
|
||||
default Void sendMessage(@NotNull CommandSender sender,
|
||||
|
||||
@@ -14,12 +14,12 @@ public abstract class SubCommand<C extends CommandHandler> implements NamedExecu
|
||||
|
||||
private final @NotNull C parent;
|
||||
|
||||
private final String name;
|
||||
private final String identifier;
|
||||
private final List<String> aliases;
|
||||
|
||||
public SubCommand(@NotNull C parent, String name, String... aliases) {
|
||||
public SubCommand(@NotNull C parent, String identifier, String... aliases) {
|
||||
this.parent = parent;
|
||||
this.name = name;
|
||||
this.identifier = identifier;
|
||||
this.aliases = Arrays.asList(aliases);
|
||||
}
|
||||
|
||||
@@ -28,13 +28,13 @@ public abstract class SubCommand<C extends CommandHandler> implements NamedExecu
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return this.name;
|
||||
public @NotNull String getIdentifier() {
|
||||
return this.identifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Unmodifiable
|
||||
public List<String> getAliases() {
|
||||
public @NotNull List<String> getAliases() {
|
||||
return this.aliases;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user