Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import org.bukkit.command.*;
- public final class DelegatingCommand implements CommandExecutor {
- private final Map<String, ? extends CommandExecutor> children;
- private final CommandExecutor defaultCase;
- public DelegatingCommand(Map<String, ? extends CommandExecutor> children) {
- this(($1, $2, $3, $4) -> false, children);
- }
- public DelegatingCommand(CommandExecutor defaultCase, Map<String, ? extends CommandExecutor> children) {
- this.children = new HashMap<>(children);
- this.defaultCase = defaultCase;
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (args.length > 0) {
- String childLabel = args[0];
- if (children.containsKey(childLabel)) {
- return children.get(childLabel).onCommand(sender, command, childLabel, Arrays.copyOfRange(args, 1, args.length));
- }
- }
- return defaultCase.onCommand(sender, command, label, args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement