diff --git a/build.gradle.kts b/build.gradle.kts
index 272e924e7..6c13f9c12 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -36,7 +36,7 @@ plugins {
id("io.sentry.jvm.gradle") version "5.7.0"
}
-version = "3.6.10-1.20.1-1.21.5"
+version = "3.6.11-1.20.1-1.21.5"
// ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED
// ======================== WINDOWS =============================
@@ -60,6 +60,7 @@ val serverMinHeap = "2G"
val serverMaxHeap = "8G"
//Valid values are: none, truecolor, indexed256, indexed16, indexed8
val color = "truecolor"
+val errorReporting = false
val nmsBindings = mapOf(
"v1_21_R4" to "1.21.5-R0.1-SNAPSHOT",
@@ -104,6 +105,7 @@ nmsBindings.forEach { key, value ->
systemProperty("disable.watchdog", "")
systemProperty("net.kyori.ansi.colorLevel", color)
systemProperty("com.mojang.eula.agree", true)
+ systemProperty("iris.errorReporting", errorReporting)
jvmArgs("-javaagent:${tasks.jar.flatMap { it.archiveFile }.get().asFile.absolutePath}")
}
}
diff --git a/core/src/main/java/com/volmit/iris/Iris.java b/core/src/main/java/com/volmit/iris/Iris.java
index cc04f96c8..e472df55a 100644
--- a/core/src/main/java/com/volmit/iris/Iris.java
+++ b/core/src/main/java/com/volmit/iris/Iris.java
@@ -1,982 +1,993 @@
-/*
- * Iris is a World Generator for Minecraft Bukkit Servers
- * Copyright (c) 2022 Arcane Arts (Volmit Software)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.volmit.iris;
-
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonParser;
-import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.ServerConfigurator;
-import com.volmit.iris.core.link.IrisPapiExpansion;
-import com.volmit.iris.core.link.MultiverseCoreLink;
-import com.volmit.iris.core.link.MythicMobsLink;
-import com.volmit.iris.core.loader.IrisData;
-import com.volmit.iris.core.nms.INMS;
-import com.volmit.iris.core.nms.v1X.NMSBinding1X;
-import com.volmit.iris.core.pregenerator.LazyPregenerator;
-import com.volmit.iris.core.service.StudioSVC;
-import com.volmit.iris.core.tools.IrisToolbelt;
-import com.volmit.iris.engine.EnginePanic;
-import com.volmit.iris.engine.object.IrisCompat;
-import com.volmit.iris.engine.object.IrisDimension;
-import com.volmit.iris.engine.object.IrisWorld;
-import com.volmit.iris.engine.platform.BukkitChunkGenerator;
-import com.volmit.iris.engine.platform.DummyChunkGenerator;
-import com.volmit.iris.core.safeguard.IrisSafeguard;
-import com.volmit.iris.core.safeguard.UtilsSFG;
-import com.volmit.iris.engine.platform.PlatformChunkGenerator;
-import com.volmit.iris.util.collection.KList;
-import com.volmit.iris.util.collection.KMap;
-import com.volmit.iris.util.context.IrisContext;
-import com.volmit.iris.util.exceptions.IrisException;
-import com.volmit.iris.util.format.C;
-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;
-import com.volmit.iris.util.misc.getHardware;
-import com.volmit.iris.util.parallel.MultiBurst;
-import com.volmit.iris.util.plugin.IrisService;
-import com.volmit.iris.util.plugin.VolmitPlugin;
-import com.volmit.iris.util.plugin.VolmitSender;
-import com.volmit.iris.util.reflect.ShadeFix;
-import com.volmit.iris.util.scheduling.J;
-import com.volmit.iris.util.scheduling.Queue;
-import com.volmit.iris.util.scheduling.ShurikenQueue;
-import com.volmit.iris.util.sentry.Attachments;
-import com.volmit.iris.util.sentry.IrisLogger;
-import io.papermc.lib.PaperLib;
-import io.sentry.Sentry;
-import lombok.NonNull;
-import net.kyori.adventure.platform.bukkit.BukkitAudiences;
-import net.kyori.adventure.text.serializer.ComponentSerializer;
-import org.bstats.bukkit.Metrics;
-import org.bstats.charts.DrilldownPie;
-import org.bstats.charts.SimplePie;
-import org.bstats.charts.SingleLineChart;
-import org.bukkit.*;
-import org.bukkit.block.data.BlockData;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.configuration.ConfigurationSection;
-import org.bukkit.configuration.file.FileConfiguration;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import org.bukkit.event.*;
-import org.bukkit.generator.BiomeProvider;
-import org.bukkit.generator.ChunkGenerator;
-import org.bukkit.plugin.IllegalPluginAccessException;
-import org.bukkit.plugin.Plugin;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-import oshi.SystemInfo;
-
-import java.io.*;
-import java.lang.annotation.Annotation;
-import java.math.RoundingMode;
-import java.net.URL;
-import java.text.NumberFormat;
-import java.util.*;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-import static com.volmit.iris.core.safeguard.IrisSafeguard.*;
-import static com.volmit.iris.core.safeguard.ServerBootSFG.passedserversoftware;
-
-@SuppressWarnings("CanBeFinal")
-public class Iris extends VolmitPlugin implements Listener {
- private static final Queue syncJobs = new ShurikenQueue<>();
-
- public static Iris instance;
- public static BukkitAudiences audiences;
- public static MultiverseCoreLink linkMultiverseCore;
- public static MythicMobsLink linkMythicMobs;
- public static IrisCompat compat;
- public static FileWatcher configWatcher;
- private static VolmitSender sender;
-
- static {
- try {
- fixShading();
- InstanceState.updateInstanceId();
- } catch (Throwable ignored) {
-
- }
- }
-
- private final KList postShutdown = new KList<>();
- private KMap, IrisService> services;
-
- public static VolmitSender getSender() {
- if (sender == null) {
- sender = new VolmitSender(Bukkit.getConsoleSender());
- sender.setTag(instance.getTag());
- }
- return sender;
- }
-
- @SuppressWarnings("unchecked")
- public static T service(Class c) {
- return (T) instance.services.get(c);
- }
-
- public static void callEvent(Event e) {
- if (!e.isAsynchronous()) {
- J.s(() -> Bukkit.getPluginManager().callEvent(e));
- } else {
- Bukkit.getPluginManager().callEvent(e);
- }
- }
-
- public static KList