Prevented some issues with tasks running on reload

This commit is contained in:
Rsl1122 2018-02-10 11:00:53 +02:00
parent 46e15a1196
commit 9e91ee61f8
5 changed files with 11 additions and 28 deletions

View File

@ -30,11 +30,9 @@ import com.djrapitops.plan.utilities.metrics.BStats;
import com.djrapitops.plugin.BukkitPlugin;
import com.djrapitops.plugin.StaticHolder;
import com.djrapitops.plugin.api.Benchmark;
import com.djrapitops.plugin.api.systems.TaskCenter;
import com.djrapitops.plugin.api.utility.log.DebugLog;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.settings.ColorScheme;
import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
/**
@ -101,8 +99,6 @@ public class Plan extends BukkitPlugin implements PlanPlugin {
Log.info(Locale.get(Msg.DISABLED).toString());
Benchmark.pluginDisabled(Plan.class);
DebugLog.pluginDisabled(Plan.class);
TaskCenter.cancelAllKnownTasks(Plan.class);
Bukkit.getScheduler().cancelTasks(this);
}
@Override

View File

@ -12,7 +12,6 @@ import com.djrapitops.plan.system.settings.theme.PlanColorScheme;
import com.djrapitops.plugin.BungeePlugin;
import com.djrapitops.plugin.StaticHolder;
import com.djrapitops.plugin.api.Benchmark;
import com.djrapitops.plugin.api.systems.TaskCenter;
import com.djrapitops.plugin.api.utility.log.DebugLog;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.settings.ColorScheme;
@ -54,7 +53,6 @@ public class PlanBungee extends BungeePlugin implements PlanPlugin {
Log.info(Locale.get(Msg.DISABLED).toString());
Benchmark.pluginDisabled(PlanBungee.class);
DebugLog.pluginDisabled(PlanBungee.class);
TaskCenter.cancelAllKnownTasks(PlanBungee.class);
}
@Override

View File

@ -99,6 +99,7 @@ public abstract class PlanSystem implements SubSystem {
@Override
public void disable() {
SubSystem[] systems = new SubSystem[]{
taskSystem,
hookHandler,
cacheSystem,
listenerSystem,
@ -107,7 +108,6 @@ public abstract class PlanSystem implements SubSystem {
webServerSystem,
infoSystem,
serverInfo,
taskSystem,
configSystem,
fileSystem,
versionCheckSystem

View File

@ -1,16 +1,12 @@
package com.djrapitops.plan.system.processing;
import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.system.PlanSystem;
import com.djrapitops.plan.system.SubSystem;
import com.djrapitops.plan.utilities.queue.Consumer;
import com.djrapitops.plan.utilities.queue.Queue;
import com.djrapitops.plan.utilities.queue.Setup;
import com.djrapitops.plugin.api.Benchmark;
import com.djrapitops.plugin.api.TimeAmount;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.task.AbsRunnable;
import com.djrapitops.plugin.task.RunnableFactory;
import com.djrapitops.plugin.utilities.Verify;
import java.util.List;
@ -45,22 +41,9 @@ public class ProcessingQueue extends Queue<Processor> implements SubSystem {
@Override
public void disable() {
List<Processor> processors = stopAndReturnLeftovers();
if (PlanPlugin.getInstance().isReloading()) {
RunnableFactory.createNew("Re-Add processors", new AbsRunnable() {
@Override
public void run() {
ProcessingQueue que = ProcessingQueue.getInstance();
for (Processor processor : processors) {
que.queue(processor);
}
cancel();
}
}).runTaskLaterAsynchronously(TimeAmount.SECOND.ticks() * 5L);
} else {
Log.info("Processing unprocessed processors. (" + processors.size() + ")");
for (Processor processor : processors) {
processor.process();
}
Log.info("Processing unprocessed processors. (" + processors.size() + ")");
for (Processor processor : processors) {
processor.process();
}
}
@ -78,7 +61,6 @@ public class ProcessingQueue extends Queue<Processor> implements SubSystem {
class ProcessConsumer extends Consumer<Processor> {
ProcessConsumer(BlockingQueue<Processor> q) {
super(q, "ProcessQueueConsumer");
}

View File

@ -15,6 +15,7 @@ import com.djrapitops.plugin.api.TimeAmount;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.task.ITask;
import com.djrapitops.plugin.task.RunnableFactory;
import org.bukkit.Bukkit;
/**
* TaskSystem responsible for registering tasks for Bukkit.
@ -42,6 +43,12 @@ public class BukkitTaskSystem extends TaskSystem {
registerTasks();
}
@Override
public void disable() {
super.disable();
Bukkit.getScheduler().cancelTasks(plugin);
}
private void registerTasks() {
Benchmark.start("Task Registration");