-
Notifications
You must be signed in to change notification settings - Fork 0
Bukkit schedulers
kiinse edited this page Mar 24, 2023
·
2 revisions
MineCore provides a convenient Bukkit Scheduler control. Each scheduler must have its own class inherited from Scheduler.
import kiinse.me.plugins.minecore.api.MineCorePlugin;
import kiinse.me.plugins.minecore.api.schedulers.Scheduler;
import kiinse.me.plugins.minecore.api.schedulers.SchedulerData;
@SchedulerData(
name = "TestSchedule", // The default value here is a set of random characters
delay = 0L, // Default value
period = 20L // Default value
)
public class TestScheduler extends Scheduler {
public TestScheduler(MineCorePlugin plugin) {
super(plugin);
}
@Override
public boolean canStart() {
// Here you can add a condition under which the bukkit scheduler will be launched when it is registered. This method is optional. It returns true by default.
return true;
}
@Override
public void run() {
// Code that runs every second
}
}
Then we register it in the SchedulersManager
import kiinse.me.plugins.minecore.api.MineCorePlugin;
import kiinse.me.plugins.minecore.api.schedulers.Scheduler;
import kiinse.me.plugins.minecore.api.schedulers.SchedulersManager;
public class TestPlugin extends MineCorePlugin {
private SchedulersManager schedulersManager;
private Scheduler testScheduler;
@Override
public void onStart() throws Exception {
schedulersManager = getMineCore().getSchedulersManager();
// Getting SchedulersManager from DarkWaterAPI
testScheduler = new TestScheduler(this);
// Initializing Scheduler
schedulersManager.register(testScheduler);
// Registering Scheduler and turn it on
}
@Override
public void onStop() throws Exception {
schedulersManager.unregister(testScheduler);
// Unregistering Scheduler and turn it off
}
public void manuallyStart() {
// It is also possible to run this Scheduler yourself.
testScheduler
.setName("Name")
.setPeriod(20L)
.setDelay(0L)
.start();
}
}
MineCore version in documentation: 1.0.1