Class Command

    • Constructor Detail

      • Command

        public Command​(@NotNull
                       String name,
                       @NotNull
                       String... aliases)
        Instance a Command Class with special name and aliases.
        Parameters:
        name - the name of the command
        aliases - the aliases of the command
        Throws:
        CommandLoadException - if there is any exception thrown in the initializing process
      • Command

        protected Command()
        Provide a constructor to help PluginType design. Never instance it! It will be instanced when this class is loaded automatically.
    • Method Detail

      • setExecutorPermission

        public void setExecutorPermission​(@NotNull
                                          java.util.function.Predicate<CommandSender> executorPermission)
      • unregister

        public static void unregister​(Plugin plugin)
        Unregister all commands in the plugin
        Parameters:
        plugin - the plugin that the commands that need to be unregistered belongs to
      • unregisterAll

        public static boolean unregisterAll()
        Unregister all commands
        Returns:
        true if there are some commands not belonging to MainPlugin not been unregistered, false otherwise
      • getCommands

        public static List<Command> getCommands()
        Get all commands
        Returns:
        All commands as a List
      • register

        public static void register​(@NotNull
                                    Plugin plugin,
                                    @NotNull
                                    Command command)
        Register the command
        Parameters:
        plugin - the plugin the command belongs to
        command - the command that need to be registered
        Throws:
        CommandDuplicateException - if the command name already exists in the registered commands
      • isRegistered

        public boolean isRegistered()
      • getPlugin

        @NotNull
        public Plugin getPlugin()
      • unregister

        public void unregister()
        Unregister this command
      • getName

        @NotNull
        public String getName()
      • getAliases

        @NotNull
        public List<String> getAliases()
      • getExecutorPermission

        public java.util.function.Predicate<CommandSender> getExecutorPermission()
      • addExecutor

        @NotNull
        public final Command.Executor addExecutor​(@NotNull
                                                  CommandExecutor executor,
                                                  @NotNull
                                                  CommandArgument<?>... commandArguments)
        Add default executor to define how to execute this command. for example : this.addExecutor(1, ... ,"example"); which means that it runs when you execute the command with "example" "xxx". this.addExecutor(0, ...); which means that it runs when you just execute the command without anything.
        Parameters:
        executor - the executor to define this command
        commandArguments - the defined arguments for this executor
        Returns:
        the Executor to define other proprieties
      • execute

        public final boolean execute​(@NotNull
                                     CommandSender sender,
                                     @NotNull
                                     String[] args,
                                     @NotNull
                                     IOHandler ioHandler)
        Execute the command with special arguments
        Parameters:
        sender - the executor
        args - the arguments that command spilt by spaces
        ioHandler - the receiver
        Returns:
        an Executor that help to define the executor of this command
        See Also:
        CommandLine.exec(CommandSender, String, IOHandler)
      • init

        public abstract void init()
        Used to initialize the command (the primary goal is to define the default executors)
      • usage

        @NotNull
        public abstract List<String> usage​(CommandSender sender)
        Used to get help information when execute this command with wrong arguments or the executor returns CommandResult.ARGS
        Parameters:
        sender - the executor which need to get help information
        Returns:
        the help information
      • isInitialize

        public boolean isInitialize()
      • setPermission

        public void setPermission​(CommandPermission permission)
        Set the default permission
        Parameters:
        permission - the target permission the command need