First commit, converted to a truely maven project and switching over to my own repository for better management.
This commit is contained in:
75
src/main/java/com/graywolf336/jail/command/CommandInfo.java
Normal file
75
src/main/java/com/graywolf336/jail/command/CommandInfo.java
Normal file
@ -0,0 +1,75 @@
|
||||
package com.graywolf336.jail.command;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* Contains a definition of all the annotations {@link Command commands} should have, if a {@link Command command} doesn't have any then it isn't registered.
|
||||
*
|
||||
* <p>
|
||||
*
|
||||
* This helps make loading and registering and verifying commands a lot
|
||||
* easier, makes sure that before we really process a command that it
|
||||
* is structured correctly and all the right information is passed. If
|
||||
* the command takes a variety of options, then that command obviously
|
||||
* has to handle it. We just max sure that the minimum amount of
|
||||
* arguments is met and same with the maximum amount, if there is a max.
|
||||
* We also check if the commands needs a player or not, if so and the
|
||||
* sender is something other than a player we send a message stating that
|
||||
* a player context is required. The pattern is just used to match up
|
||||
* the command used to it's registered value, in regex form. We check
|
||||
* the permission stated and determine if the sender has it or not, if
|
||||
* they don't then we send a message stating they don't have permission
|
||||
* for that command. Finally we have the usage string, which is sent
|
||||
* when the sender of the command sends an incorrectly formatted
|
||||
* command. The order of checking is as defined in {@link CommandHandler#handleCommand(com.graywolf336.jail.JailManager, org.bukkit.command.CommandSender, String, String[]) CommandHandler.handleCommand}.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.0.0
|
||||
*
|
||||
*/
|
||||
@Retention (RetentionPolicy.RUNTIME)
|
||||
public @interface CommandInfo {
|
||||
/**
|
||||
* Gets the maximum amount of arguments required, -1 if no maximum (ex: Jailing someone with a reason or editing a reason).
|
||||
*
|
||||
* @return The maximum number of arguments required, -1 if no maximum.
|
||||
*/
|
||||
public int maxArgs();
|
||||
|
||||
/**
|
||||
* Gets the minimum amount of arguments required.
|
||||
*
|
||||
* @return The minimum number of arguments required.
|
||||
*/
|
||||
public int minimumArgs();
|
||||
|
||||
/**
|
||||
* Whether the command needs a player context or not.
|
||||
*
|
||||
* @return True if requires a player, false if not.
|
||||
*/
|
||||
public boolean needsPlayer();
|
||||
|
||||
/**
|
||||
* A regex pattern that allows for alternatives to the command (ex: /jail or /j, /jailstatus or /js).
|
||||
*
|
||||
* @return The regex pattern to match.
|
||||
*/
|
||||
public String pattern();
|
||||
|
||||
/**
|
||||
* Gets the permission required to execute this command.
|
||||
*
|
||||
* @return The permission required.
|
||||
*/
|
||||
public String permission();
|
||||
|
||||
/**
|
||||
* Gets the usage message for this command.
|
||||
*
|
||||
* @return The usage message.
|
||||
*/
|
||||
public String usage();
|
||||
}
|
Reference in New Issue
Block a user