mirror of
https://github.com/SimplexDevelopment/SimplexCore.git
synced 2024-12-22 08:37:37 +00:00
JavaDocs!
Simple Docs
This commit is contained in:
parent
29cd81edbc
commit
2b1e9b7362
@ -5,18 +5,41 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* This annotation must be used to annotate every command class.
|
||||
* Please also ensure that your commands are in their own package (ie .commands)
|
||||
* This helps the {@link io.github.simplexdev.simplexcore.command.CommandLoader} to correctly load your commands.
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.TYPE)
|
||||
public @interface CommandInfo {
|
||||
/**
|
||||
* @return The name of the command.
|
||||
*/
|
||||
String name();
|
||||
|
||||
/**
|
||||
* @return The description of the command.
|
||||
*/
|
||||
String description();
|
||||
|
||||
/**
|
||||
* @return How the command should be used.
|
||||
*/
|
||||
String usage();
|
||||
|
||||
/**
|
||||
* @return A list of aliases of the command separated by commas in a single String.
|
||||
*/
|
||||
String aliases() default "";
|
||||
|
||||
/**
|
||||
* @return The permission for the command
|
||||
*/
|
||||
String permission() default "simplex.core";
|
||||
|
||||
/**
|
||||
* @return The message to send if someone does not have permission to use the command.
|
||||
*/
|
||||
String permissionMessage() default "You do not have permission to use this command.";
|
||||
}
|
||||
|
@ -25,8 +25,10 @@ public final class SimplexCorePlugin extends SimplexAddon<SimplexCorePlugin> {
|
||||
private TimeValues time;
|
||||
private Yaml internals;
|
||||
|
||||
// should this just be 'new SimplexCorePlugin()' ?
|
||||
protected static final SimplexCorePlugin instance = getPlugin(SimplexCorePlugin.class);
|
||||
protected static SimplexCorePlugin instance; // = getPlugin(SimplexCorePlugin.class);
|
||||
public static SimplexCorePlugin getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public SimplexCorePlugin getPlugin() {
|
||||
@ -35,6 +37,7 @@ public final class SimplexCorePlugin extends SimplexAddon<SimplexCorePlugin> {
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
instance = this;
|
||||
this.dpm = new DependencyManagement();
|
||||
this.config = new YamlFactory(this).setDefaultPathways();
|
||||
this.time = new TimeValues();
|
||||
@ -77,10 +80,6 @@ public final class SimplexCorePlugin extends SimplexAddon<SimplexCorePlugin> {
|
||||
return suspended;
|
||||
}
|
||||
|
||||
public static SimplexCorePlugin getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
public Logger getLogger() {
|
||||
return this.getServer().getLogger();
|
||||
}
|
||||
|
@ -22,7 +22,10 @@ public final class CommandLoader {
|
||||
private Reflections reflections;
|
||||
private static final CommandLoader instance = new CommandLoader();
|
||||
|
||||
public static CommandLoader getInstance() {
|
||||
/**
|
||||
* @return A Singleton Pattern instance of this class.
|
||||
*/
|
||||
public static synchronized CommandLoader getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
@ -80,6 +83,13 @@ public final class CommandLoader {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the command class as a child of {@link CommandExecutor} from the {@link CommandInfo#name()} annotation.
|
||||
* This is for registering the CommandExecutor of the provided command with Bukkit.
|
||||
* This should only be used by the CommandLoader.
|
||||
* @param name The name of the command.
|
||||
* @return An instance of the command class as a CommandExecutor.
|
||||
*/
|
||||
public synchronized CommandExecutor getExecutorFromName(String name) {
|
||||
for (Class<? extends CommandExecutor> obj : reflections.getSubTypesOf(CommandExecutor.class)) {
|
||||
if (!obj.isAnnotationPresent(CommandInfo.class)) {
|
||||
@ -101,6 +111,13 @@ public final class CommandLoader {
|
||||
throw new RuntimeException("Unable to get a command executor! Terminating!");
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the command class as a child of {@link TabCompleter} from the {@link CommandInfo#name()} annotation.
|
||||
* This is for registering the TabCompleter of the provided command with Bukkit.
|
||||
* This should only be used by the CommandLoader.
|
||||
* @param name The name of the command
|
||||
* @return The command as an instance of TabCompleter
|
||||
*/
|
||||
@Nullable
|
||||
public synchronized TabCompleter getTabFromName(String name) {
|
||||
for (Class<? extends TabCompleter> obj : reflections.getSubTypesOf(TabCompleter.class)) {
|
||||
|
@ -20,27 +20,55 @@ public abstract class SimplexCommand implements CommandExecutor, TabCompleter {
|
||||
return sender instanceof Player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an online player from their username
|
||||
* @param name The player's username
|
||||
* @return An instance of {@link Player} which represents the online player in question.
|
||||
*/
|
||||
@Nullable
|
||||
public Player getPlayer(String name) {
|
||||
return SimplexCorePlugin.getInstance().getServer().getPlayer(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an online player from their {@link UUID}.
|
||||
* @param uuid The player's UUID
|
||||
* @return An instance of {@link Player} which represents the online player in question.
|
||||
*/
|
||||
@Nullable
|
||||
public Player getPlayer(UUID uuid) {
|
||||
return SimplexCorePlugin.getInstance().getServer().getPlayer(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an instance of {@link Player} based off an instance of {@link CommandSender}.
|
||||
* This will be null if the condition {CommandSender instanceof Player} is false.
|
||||
* @param sender The CommandSender to cast
|
||||
* @return An instance of Player relating to CommandSender.
|
||||
*/
|
||||
@Nullable
|
||||
public Player getPlayer(CommandSender sender) {
|
||||
return isPlayer(sender) ? (Player) sender : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a message or a group of messages to a {@link Player}.
|
||||
* If you want the messages to send on new lines, put \n at the end of each message to send.
|
||||
* @param player The Player to send a message to
|
||||
* @param messages The messages to send.
|
||||
*/
|
||||
public void playerMsg(Player player, String... messages) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Utilities.forEach(messages, builder::append);
|
||||
player.sendMessage(builder.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a message or a group of messages to a {@link CommandSender}
|
||||
* If you want the messages to send on new lines, put \n at the end of each message to send.
|
||||
* @param sender The CommandSender to send a message to.
|
||||
* @param messages The messages to send.
|
||||
*/
|
||||
public void msg(CommandSender sender, String... messages) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
Utilities.forEach(messages, builder::append);
|
||||
|
@ -14,7 +14,7 @@ public final class AddonRegistry {
|
||||
protected AddonRegistry() {
|
||||
}
|
||||
|
||||
public static AddonRegistry getInstance() {
|
||||
public static synchronized AddonRegistry getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user