9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-25 10:09:14 +00:00

Fix closing issues

This commit is contained in:
Daniel Mills
2021-08-09 02:12:30 -04:00
parent c95ea19da1
commit 79b3d7359a
6 changed files with 113 additions and 25 deletions

View File

@@ -43,6 +43,7 @@ import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.function.NastyRunnable;
import com.volmit.iris.util.io.FileWatcher;
import com.volmit.iris.util.io.IO;
import com.volmit.iris.util.io.InstanceState;
import com.volmit.iris.util.io.JarScanner;
import com.volmit.iris.util.math.M;
import com.volmit.iris.util.math.RNG;
@@ -74,6 +75,7 @@ import java.io.*;
import java.lang.annotation.Annotation;
import java.net.URL;
import java.util.Date;
import java.util.UUID;
@SuppressWarnings("CanBeFinal")
public class Iris extends VolmitPlugin implements Listener {
@@ -137,6 +139,36 @@ public class Iris extends VolmitPlugin implements Listener {
splash();
}
public void onDisable() {
if (IrisSettings.get().isStudio()) {
Iris.debug("Studio Mode Active: Closing Projects");
proj.close();
for (World i : Bukkit.getWorlds()) {
if (IrisToolbelt.isIrisWorld(i)) {
Iris.debug("Closing Platform Generator " + i.getName());
IrisToolbelt.access(i).close();
}
}
for (GroupedExecutor i : executors) {
Iris.debug("Closing Executor " + i.toString());
i.closeNow();
}
}
executors.clear();
board.disable();
Iris.debug("Cancelled all tasks");
Bukkit.getScheduler().cancelTasks(this);
Iris.debug("Unregistered all events");
HandlerList.unregisterAll((Plugin) this);
Iris.debug("Multiburst Shutting down");
MultiBurst.burst.shutdown();
Iris.debug("Iris Shutdown");
super.onDisable();
}
public static void callEvent(Event e) {
J.s(() -> Bukkit.getPluginManager().callEvent(e));
}
@@ -262,29 +294,6 @@ public class Iris extends VolmitPlugin implements Listener {
}
}
public void onDisable() {
if (IrisSettings.get().isStudio()) {
proj.close();
for (World i : Bukkit.getWorlds()) {
if (IrisToolbelt.isIrisWorld(i)) {
IrisToolbelt.access(i).close();
}
}
for (GroupedExecutor i : executors) {
i.close();
}
}
executors.clear();
board.disable();
Bukkit.getScheduler().cancelTasks(this);
HandlerList.unregisterAll((Plugin) this);
MultiBurst.burst.shutdown();
super.onDisable();
}
public static void sq(Runnable r) {
synchronized (syncJobs) {
syncJobs.queue(r);
@@ -695,4 +704,16 @@ public class Iris extends VolmitPlugin implements Listener {
Iris.debug("Exception Logged: " + e.getClass().getSimpleName() + ": " + C.RESET + "" + C.LIGHT_PURPLE + e.getMessage());
}
}
static {
try
{
InstanceState.updateInstanceId();
}
catch(Throwable e)
{
}
}
}