mirror of
https://github.com/SimplexDevelopment/SimplexCore.git
synced 2024-12-22 08:37:37 +00:00
BLEEDING EDGE 1.3_11
- Changed CommandLoader to initialize the instance of reflections with ReflectionTools#reflect(Class<?>); - Added JavaDocs for SimplexTask
This commit is contained in:
parent
77400bd81a
commit
71789fa39f
@ -40,6 +40,7 @@ public final class CommandLoader {
|
|||||||
* If the class provided does not extend {@link SimplexCommand}, the loader will throw a new
|
* If the class provided does not extend {@link SimplexCommand}, the loader will throw a new
|
||||||
* {@link RuntimeException} and your commands will not be loaded.
|
* {@link RuntimeException} and your commands will not be loaded.
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
* @param clazz The command class to load from
|
* @param clazz The command class to load from
|
||||||
* @return An instance of this where the classpath has been prepared for loading the commands.
|
* @return An instance of this where the classpath has been prepared for loading the commands.
|
||||||
*/
|
*/
|
||||||
@ -56,7 +57,7 @@ public final class CommandLoader {
|
|||||||
throw new RuntimeException("Your command must extend SimplexCommand.class for it to be used as the reference point for loading commands.");
|
throw new RuntimeException("Your command must extend SimplexCommand.class for it to be used as the reference point for loading commands.");
|
||||||
}
|
}
|
||||||
|
|
||||||
reflections = new Reflections(clazz);
|
reflections = ReflectionTools.reflect(clazz);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@ -92,6 +93,7 @@ public final class CommandLoader {
|
|||||||
* Gets the command class as a child of {@link CommandExecutor} from the {@link CommandInfo#name()} annotation.
|
* 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 is for registering the CommandExecutor of the provided command with Bukkit.
|
||||||
* This should only be used by the CommandLoader.
|
* This should only be used by the CommandLoader.
|
||||||
|
*
|
||||||
* @param name The name of the command.
|
* @param name The name of the command.
|
||||||
* @return An instance of the command class as a CommandExecutor.
|
* @return An instance of the command class as a CommandExecutor.
|
||||||
*/
|
*/
|
||||||
@ -120,6 +122,7 @@ public final class CommandLoader {
|
|||||||
* Gets the command class as a child of {@link TabCompleter} from the {@link CommandInfo#name()} annotation.
|
* 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 is for registering the TabCompleter of the provided command with Bukkit.
|
||||||
* This should only be used by the CommandLoader.
|
* This should only be used by the CommandLoader.
|
||||||
|
*
|
||||||
* @param name The name of the command
|
* @param name The name of the command
|
||||||
* @return The command as an instance of TabCompleter
|
* @return The command as an instance of TabCompleter
|
||||||
*/
|
*/
|
||||||
|
@ -17,22 +17,50 @@ public abstract class SimplexTask implements Consumer<BukkitTask> {
|
|||||||
protected final long INTERVAL;
|
protected final long INTERVAL;
|
||||||
protected Date lastRan = new Date();
|
protected Date lastRan = new Date();
|
||||||
protected Timer timer = new Timer();
|
protected Timer timer = new Timer();
|
||||||
|
protected int taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new instance of this class, with a custom defined DELAY and INTERVAL.
|
||||||
|
*
|
||||||
|
* @param initialDelay How long before the first time the task executes.
|
||||||
|
* @param interval How long before the task repeats itself.
|
||||||
|
*/
|
||||||
protected SimplexTask(long initialDelay, long interval) {
|
protected SimplexTask(long initialDelay, long interval) {
|
||||||
DELAY = initialDelay;
|
DELAY = initialDelay;
|
||||||
INTERVAL = interval;
|
INTERVAL = interval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor which automatically registers the DELAY as 0 seconds (NO DELAY)
|
||||||
|
* and assigns a custom INTERVAL at which it executes.
|
||||||
|
*
|
||||||
|
* @param interval How often the task should repeat. Every 20L is 1 second.
|
||||||
|
* You should use {@link TickedTime} for determining the related server timings.
|
||||||
|
*/
|
||||||
protected SimplexTask(long interval) {
|
protected SimplexTask(long interval) {
|
||||||
DELAY = 0L;
|
DELAY = 0L;
|
||||||
INTERVAL = interval;
|
INTERVAL = interval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor which automatically registers the DELAY as 30 seconds
|
||||||
|
* and the INTERVAL at which it executes as 5 minutes.
|
||||||
|
*/
|
||||||
protected SimplexTask() {
|
protected SimplexTask() {
|
||||||
DELAY = TickedTime.SECOND * 30; // 30 seconds until the task triggers for the first time.
|
DELAY = TickedTime.SECOND * 30; // 30 seconds until the task triggers for the first time.
|
||||||
INTERVAL = TickedTime.MINUTE * 5; // Task will run at 5 minute intervals once the first trigger has been called.
|
INTERVAL = TickedTime.MINUTE * 5; // Task will run at 5 minute intervals once the first trigger has been called.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers the parent interface {@link Consumer<BukkitTask>} with the
|
||||||
|
* {@link org.bukkit.scheduler.BukkitScheduler}.
|
||||||
|
*
|
||||||
|
* @param task The instance of a subclass of this class.
|
||||||
|
* @param plugin Your plugin instance.
|
||||||
|
* @param repeating Whether or not the task should repeat.
|
||||||
|
* @param delayed Whether or not to delay the first time the task runs.
|
||||||
|
* @param <T> A subclass of SimplexTask.
|
||||||
|
*/
|
||||||
public <T extends SimplexTask> void register(T task, SimplexAddon<?> plugin, boolean repeating, boolean delayed) {
|
public <T extends SimplexTask> void register(T task, SimplexAddon<?> plugin, boolean repeating, boolean delayed) {
|
||||||
if (delayed && repeating) {
|
if (delayed && repeating) {
|
||||||
SimplexCorePlugin.getInstance().getScheduler().runTaskTimer(plugin, task, DELAY, INTERVAL);
|
SimplexCorePlugin.getInstance().getScheduler().runTaskTimer(plugin, task, DELAY, INTERVAL);
|
||||||
@ -45,26 +73,69 @@ public abstract class SimplexTask implements Consumer<BukkitTask> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers the parent interface {@link Consumer<BukkitTask>} with the
|
||||||
|
* {@link org.bukkit.scheduler.BukkitScheduler}.
|
||||||
|
* This version of this method will not create a repeating task..
|
||||||
|
*
|
||||||
|
* @param task The instance of a subclass of this class.
|
||||||
|
* @param plugin Your plugin instance.
|
||||||
|
* @param delayed Whether or not to delay the start of the task.
|
||||||
|
* @param <T> A subclass of SimplexTask.
|
||||||
|
*/
|
||||||
public <T extends SimplexTask> void register(T task, SimplexAddon<?> plugin, boolean delayed) {
|
public <T extends SimplexTask> void register(T task, SimplexAddon<?> plugin, boolean delayed) {
|
||||||
register(task, plugin, false, delayed);
|
register(task, plugin, false, delayed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Registers the parent interface {@link Consumer<BukkitTask>} with the
|
||||||
|
* {@link org.bukkit.scheduler.BukkitScheduler}.
|
||||||
|
* This version of this method will not create a delayed or repeating task.
|
||||||
|
*
|
||||||
|
* @param task The instance of a subclass of this class.
|
||||||
|
* @param plugin Your plugin instance.
|
||||||
|
* @param <T> A subclass of SimplexTask.
|
||||||
|
*/
|
||||||
public <T extends SimplexTask> void register(T task, SimplexAddon<?> plugin) {
|
public <T extends SimplexTask> void register(T task, SimplexAddon<?> plugin) {
|
||||||
register(task, plugin, false, false);
|
register(task, plugin, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the last time the task ran.
|
||||||
|
*
|
||||||
|
* @return The last time as a {@link Date} this task last ran.
|
||||||
|
*/
|
||||||
public Date getLastRan() {
|
public Date getLastRan() {
|
||||||
return lastRan;
|
return lastRan;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the last time this task ran. This should be done in a subclass inside of the
|
||||||
|
* {@link Consumer#accept(Object)} method.
|
||||||
|
*
|
||||||
|
* @param lastRan An instance of {@link Date} returning the last time this task ran.
|
||||||
|
*/
|
||||||
public void setLastRan(Date lastRan) {
|
public void setLastRan(Date lastRan) {
|
||||||
this.lastRan = lastRan;
|
this.lastRan = lastRan;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the {@link Timer} instance associated with this class.
|
||||||
|
* This is for creating and running tasks separate from the {@link org.bukkit.scheduler.BukkitScheduler}.
|
||||||
|
*
|
||||||
|
* @return A {@link Timer} object.
|
||||||
|
*/
|
||||||
protected Timer getTimer() {
|
protected Timer getTimer() {
|
||||||
return timer;
|
return timer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new {@link TimerTask} to run with the {@link Timer}
|
||||||
|
*
|
||||||
|
* @param supplier A task to complete.
|
||||||
|
* @return A new instance of TimerTask.
|
||||||
|
*/
|
||||||
protected TimerTask newTimer(VoidSupplier supplier) {
|
protected TimerTask newTimer(VoidSupplier supplier) {
|
||||||
return new TimerTask() {
|
return new TimerTask() {
|
||||||
@Override
|
@Override
|
||||||
@ -73,4 +144,8 @@ public abstract class SimplexTask implements Consumer<BukkitTask> {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setTaskId(int taskId) {
|
||||||
|
this.taskId = taskId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,6 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.SplittableRandom;
|
import java.util.SplittableRandom;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.regex.Pattern;
|
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
public final class Utilities {
|
public final class Utilities {
|
||||||
|
Loading…
Reference in New Issue
Block a user