Make ModuloRepeatTask extend EngineAbstract. Add ARList.
This commit is contained in:
parent
7d0eba1665
commit
b2bdd68069
@ -1,13 +1,10 @@
|
|||||||
package com.massivecraft.massivecore;
|
package com.massivecraft.massivecore;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class will allow you to create non-tps-dependent repeating tasks.
|
* This class will allow you to create non-tps-dependent repeating tasks.
|
||||||
* It makes use of the Bukkit scheduler internally.
|
* It makes use of the Bukkit scheduler internally.
|
||||||
*/
|
*/
|
||||||
public abstract class ModuloRepeatTask implements Runnable
|
public abstract class ModuloRepeatTask extends EngineAbstract
|
||||||
{
|
{
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// FIELDS: RAW
|
// FIELDS: RAW
|
||||||
@ -23,7 +20,8 @@ public abstract class ModuloRepeatTask implements Runnable
|
|||||||
public long getPreviousMillis() { return this.previousMillis; }
|
public long getPreviousMillis() { return this.previousMillis; }
|
||||||
public void setPreviousMillis(long previousMillis) { this.previousMillis = previousMillis; }
|
public void setPreviousMillis(long previousMillis) { this.previousMillis = previousMillis; }
|
||||||
|
|
||||||
private Integer taskId = null;
|
// TODO: Convertion Dust
|
||||||
|
// private Integer taskId = null;
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// INVOCATION NUMBER CALCULATION
|
// INVOCATION NUMBER CALCULATION
|
||||||
@ -58,6 +56,12 @@ public abstract class ModuloRepeatTask implements Runnable
|
|||||||
// OVERRIDE
|
// OVERRIDE
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getPeriod()
|
||||||
|
{
|
||||||
|
return 1L;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run()
|
public void run()
|
||||||
{
|
{
|
||||||
@ -78,28 +82,6 @@ public abstract class ModuloRepeatTask implements Runnable
|
|||||||
this.setPreviousMillis(nowMillis);
|
this.setPreviousMillis(nowMillis);
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------- //
|
|
||||||
// EIGEN
|
|
||||||
// -------------------------------------------- //
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public int schedule(Plugin plugin)
|
|
||||||
{
|
|
||||||
this.activate(plugin);
|
|
||||||
return this.taskId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void activate(Plugin plugin)
|
|
||||||
{
|
|
||||||
this.taskId = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, this, 1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void deactivate()
|
|
||||||
{
|
|
||||||
if (this.taskId == null) return;
|
|
||||||
Bukkit.getScheduler().cancelTask(this.taskId);
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
// ABSTRACT
|
// ABSTRACT
|
||||||
// -------------------------------------------- //
|
// -------------------------------------------- //
|
||||||
|
@ -0,0 +1,67 @@
|
|||||||
|
package com.massivecraft.massivecore.cmd.arg;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
public class ARList<T> extends ArgReaderAbstract<List<T>>
|
||||||
|
{
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// FIELDS
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
protected ArgReader<T> innerArgReader;
|
||||||
|
public ArgReader<T> getInnerArgReader() { return this.innerArgReader; }
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// INSTANCE & CONSTRUCT
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
public static <T> ARList<T> get(ArgReader<T> innerArgReader)
|
||||||
|
{
|
||||||
|
return new ARList<T>(innerArgReader);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ARList(ArgReader<T> innerArgReader)
|
||||||
|
{
|
||||||
|
this.innerArgReader = innerArgReader;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------- //
|
||||||
|
// OVERRIDE
|
||||||
|
// -------------------------------------------- //
|
||||||
|
|
||||||
|
// NOTE: Must be used with argConcatFrom and setErrorOnTooManyArgs(false).
|
||||||
|
@Override
|
||||||
|
public ArgResult<List<T>> read(String arg, CommandSender sender)
|
||||||
|
{
|
||||||
|
// Split into inner args
|
||||||
|
String[] innerArgs = arg.split("\\s+");
|
||||||
|
|
||||||
|
// Create Ret
|
||||||
|
ArgResult<List<T>> ret = new ArgResult<List<T>>();
|
||||||
|
List<T> result = new ArrayList<T>();
|
||||||
|
|
||||||
|
// For Each
|
||||||
|
for (String innerArg : innerArgs)
|
||||||
|
{
|
||||||
|
ArgResult<T> innerArgResult = this.getInnerArgReader().read(innerArg, sender);
|
||||||
|
|
||||||
|
if (innerArgResult.hasErrors())
|
||||||
|
{
|
||||||
|
ret.setErrors(innerArgResult.getErrors());
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
result.add(innerArgResult.getResult());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set Result
|
||||||
|
ret.setResult(result);
|
||||||
|
|
||||||
|
// Return Ret
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user