diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java index aaebcdf35..f0f866693 100644 --- a/src/main/java/com/volmit/iris/Iris.java +++ b/src/main/java/com/volmit/iris/Iris.java @@ -43,11 +43,9 @@ import org.bukkit.generator.ChunkGenerator; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; +import java.io.*; import java.net.URL; +import java.util.Date; @SuppressWarnings("CanBeFinal") public class Iris extends VolmitPlugin implements Listener { @@ -102,6 +100,7 @@ public class Iris extends VolmitPlugin implements Listener { } } } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } } @@ -154,8 +153,8 @@ public class Iris extends VolmitPlugin implements Listener { int v = Integer.parseInt(Bukkit.getBukkitVersion().split("\\Q-\\E")[0].split("\\Q.\\E")[1]); return v >= 15; - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } return false; @@ -166,8 +165,8 @@ public class Iris extends VolmitPlugin implements Listener { int v = Integer.parseInt(Bukkit.getBukkitVersion().split("\\Q-\\E")[0].split("\\Q.\\E")[1]); return v >= 14; - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } return false; @@ -178,8 +177,8 @@ public class Iris extends VolmitPlugin implements Listener { int v = Integer.parseInt(Bukkit.getBukkitVersion().split("\\Q-\\E")[0].split("\\Q.\\E")[1]); return v >= 15; - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } return false; @@ -205,7 +204,7 @@ public class Iris extends VolmitPlugin implements Listener { try { compat = IrisCompat.configured(getDataFile("compat.json")); } catch (IOException e) { - // Do nothing. Everything continues properly but the exception is still there. + Iris.reportError(e); } proj = new ProjectManager(); convert = new ConversionManager(); @@ -278,6 +277,7 @@ public class Iris extends VolmitPlugin implements Listener { Iris.syncJobs.next().run(); } catch (Throwable e) { e.printStackTrace(); + Iris.reportError(e); } } } @@ -332,6 +332,7 @@ public class Iris extends VolmitPlugin implements Listener { Bukkit.getConsoleSender().sendMessage(msg); } catch (Throwable e) { System.out.println("[Iris]: " + string); + Iris.reportError(e); } } @@ -347,8 +348,8 @@ public class Iris extends VolmitPlugin implements Listener { fileOutputStream.write(dataBuffer, 0, bytesRead); Iris.verbose("Aquiring " + name); } - } catch (IOException ignored) { - + } catch (IOException e) { + Iris.reportError(e); } } @@ -365,14 +366,14 @@ public class Iris extends VolmitPlugin implements Listener { while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) { fileOutputStream.write(dataBuffer, 0, bytesRead); } - } catch (IOException ignored) { - + } catch (IOException e) { + Iris.reportError(e); } try { return IO.readAll(f); - } catch (IOException ignored) { - + } catch (IOException e) { + Iris.reportError(e); } return ""; @@ -390,6 +391,7 @@ public class Iris extends VolmitPlugin implements Listener { } } catch (IOException e) { e.printStackTrace(); + Iris.reportError(e); } return f; @@ -403,6 +405,15 @@ public class Iris extends VolmitPlugin implements Listener { msg(C.RED + string); } + public static void debug(String string) { + if(!IrisSettings.get().getGeneral().isDebug()) + { + return; + } + + msg( C.LIGHT_PURPLE+ "" + C.BOLD+ string); + } + public static void verbose(String string) { try { if (IrisSettings.get().getGeneral().isVerbose()) { @@ -410,6 +421,7 @@ public class Iris extends VolmitPlugin implements Listener { } } catch (Throwable e) { msg(C.GRAY + string); + Iris.reportError(e); } } @@ -473,6 +485,7 @@ public class Iris extends VolmitPlugin implements Listener { object.run(); } catch (Throwable e) { e.printStackTrace(); + Iris.reportError(e); } }, RNG.r.i(100, 1200)); } @@ -503,4 +516,32 @@ public class Iris extends VolmitPlugin implements Listener { public boolean isMCA() { return IrisSettings.get().getGenerator().isMcaPregenerator(); } + + public static synchronized void reportError(Throwable e) + { + if(IrisSettings.get().getGeneral().isDebug()) + { + String n = e.getClass().getCanonicalName() + "-" + e.getStackTrace()[0].getClassName() + "-" + e.getStackTrace()[0].getLineNumber(); + + if(e.getCause() != null) + { + n += "-" + e.getCause().getStackTrace()[0].getClassName() + "-" + e.getCause().getStackTrace()[0].getLineNumber(); + } + + File f = instance.getDataFile("debug", "caught-exceptions", n + ".txt"); + + if(!f.exists()) + { + J.attempt(() -> { + PrintWriter pw = new PrintWriter(f); + pw.println("Thread: " + Thread.currentThread().getName()); + pw.println("First: " + new Date(M.ms())); + e.printStackTrace(pw); + pw.close(); + }); + } + + Iris.debug("Exception Logged: " + e.getClass().getSimpleName() + ": " + C.RESET + "" + C.LIGHT_PURPLE + e.getMessage()); + } + } } diff --git a/src/main/java/com/volmit/iris/IrisSettings.java b/src/main/java/com/volmit/iris/IrisSettings.java index 020c0ef3e..b8cbfa48d 100644 --- a/src/main/java/com/volmit/iris/IrisSettings.java +++ b/src/main/java/com/volmit/iris/IrisSettings.java @@ -36,8 +36,6 @@ public class IrisSettings { private IrisSettingsGUI gui = new IrisSettingsGUI(); private IrisSettingsGenerator generator = new IrisSettingsGenerator(); private IrisSettingsStudio studio = new IrisSettingsStudio(); - - public int configurationVersion = 3; public boolean isStudio() { @@ -55,44 +53,28 @@ public class IrisSettings { @Data public static class IrisSettingsCache { - public int streamingCacheSize = 8192; } @Data public static class IrisSettingsConcurrency { - public int threadCount = -1; } @Data public static class IrisSettingsParallax { - public int parallaxRegionEvictionMS = 15000; - - public int parallaxChunkEvictionMS = 5000; } @Data public static class IrisSettingsGeneral { - - public boolean commandSounds = true; - - + public boolean debug = false; public boolean verbose = false; - - public boolean ignoreWorldEdit = false; - - public boolean disableNMS = false; - - public boolean pluginMetrics = true; - - public boolean splashLogoStartup = true; } @@ -100,11 +82,7 @@ public class IrisSettings { public static class IrisSettingsGUI { public boolean useServerLaunchedGuis = true; - - public boolean maximumPregenGuiFPS = false; - - public boolean localPregenGui = true; } @@ -112,34 +90,18 @@ public class IrisSettings { public static class IrisSettingsGenerator { public String defaultWorldType = "overworld"; - - public boolean mcaPregenerator = false; - - public boolean systemEffects = true; - - public boolean systemEntitySpawnOverrides = true; - - public boolean systemEntityInitialSpawns = true; - - public int maxBiomeChildDepth = 5; } @Data public static class IrisSettingsStudio { - - public boolean studio = true; - - public boolean openVSCode = true; - - public boolean disableTimeAndWeather = true; } @@ -160,6 +122,7 @@ public class IrisSettings { IO.writeAll(s, new JSONObject(new Gson().toJson(settings)).toString(4)); } catch (JSONException | IOException e) { e.printStackTrace(); + Iris.reportError(e); } } else { try { @@ -193,9 +156,11 @@ public class IrisSettings { Iris.info("Updated Configuration Files"); } catch (Throwable e) { e.printStackTrace(); + Iris.reportError(e); } } } catch (Throwable ee) { + Iris.reportError(ee); Iris.error("Configuration Error in settings.json! " + ee.getClass().getSimpleName() + ": " + ee.getMessage()); Iris.warn("Attempting to fix configuration while retaining valid in-memory settings..."); @@ -203,12 +168,14 @@ public class IrisSettings { IO.writeAll(s, new JSONObject(new Gson().toJson(settings)).toString(4)); Iris.info("Configuration Fixed!"); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); Iris.error("ERROR! CONFIGURATION IMPOSSIBLE TO READ! Using an unmodifiable configuration from memory. Please delete the settings.json at some point to try to restore configurability!"); } } }); } catch (Throwable ee) { + Iris.reportError(ee); Iris.error("Configuration Error in settings.json! " + ee.getClass().getSimpleName() + ": " + ee.getMessage()); Iris.warn("Attempting to fix configuration while retaining valid in-memory settings..."); @@ -216,6 +183,7 @@ public class IrisSettings { IO.writeAll(s, new JSONObject(new Gson().toJson(settings)).toString(4)); Iris.info("Configuration Fixed!"); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); Iris.error("ERROR! CONFIGURATION IMPOSSIBLE TO READ! Using an unmodifiable configuration from memory. Please delete the settings.json at some point to try to restore configurability!"); } @@ -226,6 +194,7 @@ public class IrisSettings { try { IO.writeAll(s, new JSONObject(new Gson().toJson(settings)).toString(4)); } catch (JSONException | IOException e) { + Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/generator/IrisComplex.java b/src/main/java/com/volmit/iris/generator/IrisComplex.java index 488c485c9..689c1615d 100644 --- a/src/main/java/com/volmit/iris/generator/IrisComplex.java +++ b/src/main/java/com/volmit/iris/generator/IrisComplex.java @@ -333,6 +333,7 @@ public class IrisComplex implements DataProvider { return bx.getGenLinkMax(gen.getLoadKey()); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); Iris.warn("Failed to sample hi biome at " + xx + " " + zz + " using the generator " + gen.getLoadKey()); } @@ -347,6 +348,7 @@ public class IrisComplex implements DataProvider { return bx.getGenLinkMin(gen.getLoadKey()); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); Iris.warn("Failed to sample lo biome at " + xx + " " + zz + " using the generator " + gen.getLoadKey()); } diff --git a/src/main/java/com/volmit/iris/generator/IrisEngine.java b/src/main/java/com/volmit/iris/generator/IrisEngine.java index e04b4773d..f35f63cb1 100644 --- a/src/main/java/com/volmit/iris/generator/IrisEngine.java +++ b/src/main/java/com/volmit/iris/generator/IrisEngine.java @@ -130,6 +130,7 @@ public class IrisEngine extends BlockPopulator implements Engine { getFramework().getDepositModifier().modify(x, z, blocks); getMetrics().getTotal().put(p.getMilliseconds()); } catch (Throwable e) { + Iris.reportError(e); fail("Failed to generate " + x + ", " + z, e); } } diff --git a/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java b/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java index 57f7fad68..2704c2b76 100644 --- a/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java +++ b/src/main/java/com/volmit/iris/generator/IrisEngineFramework.java @@ -102,6 +102,7 @@ public class IrisEngineFramework implements EngineFramework { getEngine().getParallax().cleanup(); getData().getObjectLoader().clean(); } catch (Throwable e) { + Iris.reportError(e); Iris.error("Cleanup failed!"); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/generator/IrisWorldManager.java b/src/main/java/com/volmit/iris/generator/IrisWorldManager.java index 0e4e2107c..6272db6f5 100644 --- a/src/main/java/com/volmit/iris/generator/IrisWorldManager.java +++ b/src/main/java/com/volmit/iris/generator/IrisWorldManager.java @@ -18,6 +18,7 @@ package com.volmit.iris.generator; +import com.volmit.iris.Iris; import com.volmit.iris.IrisSettings; import com.volmit.iris.object.*; import com.volmit.iris.scaffold.cache.Cache; @@ -127,8 +128,8 @@ public class IrisWorldManager extends EngineAssignedWorldManager { }); } }); - } catch (Throwable ignored) { - + } catch (Throwable ee) { + Iris.reportError(ee); } } diff --git a/src/main/java/com/volmit/iris/generator/actuator/IrisBiomeActuator.java b/src/main/java/com/volmit/iris/generator/actuator/IrisBiomeActuator.java index 7818e1579..d99433ce5 100644 --- a/src/main/java/com/volmit/iris/generator/actuator/IrisBiomeActuator.java +++ b/src/main/java/com/volmit/iris/generator/actuator/IrisBiomeActuator.java @@ -18,6 +18,7 @@ package com.volmit.iris.generator.actuator; +import com.volmit.iris.Iris; import com.volmit.iris.nms.INMS; import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisBiomeCustom; @@ -54,6 +55,7 @@ public class IrisBiomeActuator extends EngineAssignedActuator { } } catch (Throwable e) { e.printStackTrace(); + Iris.reportError(e); } return false; @@ -82,6 +84,7 @@ public class IrisBiomeActuator extends EngineAssignedActuator { injectBiome(h, xf, i, zf, biomeBase); } } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); Biome v = ib.getSkyBiome(rng, x, 0, z); for (int i = 0; i < h.getHeight(); i++) { diff --git a/src/main/java/com/volmit/iris/generator/decorator/IrisEngineDecorator.java b/src/main/java/com/volmit/iris/generator/decorator/IrisEngineDecorator.java index 2f37fa5ad..6ffdc0304 100644 --- a/src/main/java/com/volmit/iris/generator/decorator/IrisEngineDecorator.java +++ b/src/main/java/com/volmit/iris/generator/decorator/IrisEngineDecorator.java @@ -54,6 +54,7 @@ public abstract class IrisEngineDecorator extends EngineAssignedComponent implem v.add(i); } } catch (Throwable e) { + Iris.reportError(e); Iris.error("PART OF: " + biome.getLoadFile().getAbsolutePath() + " HAS AN INVALID DECORATOR near 'partOf'!!!"); } } diff --git a/src/main/java/com/volmit/iris/generator/decorator/IrisSurfaceDecorator.java b/src/main/java/com/volmit/iris/generator/decorator/IrisSurfaceDecorator.java index f6ec108d4..e5be3cd79 100644 --- a/src/main/java/com/volmit/iris/generator/decorator/IrisSurfaceDecorator.java +++ b/src/main/java/com/volmit/iris/generator/decorator/IrisSurfaceDecorator.java @@ -18,6 +18,7 @@ package com.volmit.iris.generator.decorator; +import com.volmit.iris.Iris; import com.volmit.iris.object.DecorationPart; import com.volmit.iris.object.InferredType; import com.volmit.iris.object.IrisBiome; @@ -59,8 +60,8 @@ public class IrisSurfaceDecorator extends IrisEngineDecorator { ((Bisected) bd).setHalf(Bisected.Half.TOP); try { data.set(x, height + 2, z, bd); - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } bd = bd.clone(); ((Bisected) bd).setHalf(Bisected.Half.BOTTOM); diff --git a/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java b/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java index a54d7db89..b54c29aa3 100644 --- a/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java +++ b/src/main/java/com/volmit/iris/generator/modifier/IrisPostModifier.java @@ -18,6 +18,7 @@ package com.volmit.iris.generator.modifier; +import com.volmit.iris.Iris; import com.volmit.iris.object.IrisBiome; import com.volmit.iris.scaffold.engine.Engine; import com.volmit.iris.scaffold.engine.EngineAssignedModifier; @@ -345,7 +346,8 @@ public class IrisPostModifier extends EngineAssignedModifier { Slab slab = (Slab) d.clone(); slab.setType(Slab.Type.TOP); setPostBlock(x, c, z, slab, currentPostX, currentPostZ, currentData); - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); try { Slab slab = (Slab) d.clone(); @@ -353,8 +355,8 @@ public class IrisPostModifier extends EngineAssignedModifier { slab.setType(Slab.Type.TOP); setPostBlock(x, c, z, slab, currentPostX, currentPostZ, currentData); } - } catch (Throwable ignored2) { - + } catch (Throwable ee) { + Iris.reportError(ee); } } } diff --git a/src/main/java/com/volmit/iris/generator/noise/CNG.java b/src/main/java/com/volmit/iris/generator/noise/CNG.java index 521b46700..20ff723cd 100644 --- a/src/main/java/com/volmit/iris/generator/noise/CNG.java +++ b/src/main/java/com/volmit/iris/generator/noise/CNG.java @@ -18,6 +18,7 @@ package com.volmit.iris.generator.noise; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.stream.ProceduralStream; import com.volmit.iris.scaffold.stream.arithmetic.FittedStream; import com.volmit.iris.scaffold.stream.sources.CNGStream; @@ -304,8 +305,8 @@ public class CNG { try { return v.get(fit(0, v.size() - 1, dim)); - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } return v.get(0); diff --git a/src/main/java/com/volmit/iris/manager/ConversionManager.java b/src/main/java/com/volmit/iris/manager/ConversionManager.java index f08c02d19..2db59b34f 100644 --- a/src/main/java/com/volmit/iris/manager/ConversionManager.java +++ b/src/main/java/com/volmit/iris/manager/ConversionManager.java @@ -196,6 +196,7 @@ public class ConversionManager { } } catch (Throwable e) { e.printStackTrace(); + Iris.reportError(e); } }); @@ -204,6 +205,7 @@ public class ConversionManager { IO.writeAll(new File(destPools, i + ".json"), new JSONObject(new Gson().toJson(pools.get(i))).toString(4)); } catch (IOException e) { e.printStackTrace(); + Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/manager/EditManager.java b/src/main/java/com/volmit/iris/manager/EditManager.java index 1bbb37321..e55815174 100644 --- a/src/main/java/com/volmit/iris/manager/EditManager.java +++ b/src/main/java/com/volmit/iris/manager/EditManager.java @@ -99,6 +99,7 @@ public class EditManager implements Listener { try { e = new WEBlockEditor(world); } catch (Throwable ex) { + Iris.reportError(ex); e = new BukkitBlockEditor(world); } } else { diff --git a/src/main/java/com/volmit/iris/manager/IrisDataManager.java b/src/main/java/com/volmit/iris/manager/IrisDataManager.java index ba4cdfc3f..169556bd8 100644 --- a/src/main/java/com/volmit/iris/manager/IrisDataManager.java +++ b/src/main/java/com/volmit/iris/manager/IrisDataManager.java @@ -193,6 +193,7 @@ public class IrisDataManager { } } } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/manager/IrisProject.java b/src/main/java/com/volmit/iris/manager/IrisProject.java index 62b543c6b..920373e22 100644 --- a/src/main/java/com/volmit/iris/manager/IrisProject.java +++ b/src/main/java/com/volmit/iris/manager/IrisProject.java @@ -217,6 +217,7 @@ public class IrisProject { try { IO.writeAll(ff, createCodeWorkspaceConfig()); } catch (IOException e1) { + Iris.reportError(e1); e1.printStackTrace(); } sender.sendMessage("Updating Workspace..."); @@ -224,6 +225,7 @@ public class IrisProject { sender.sendMessage("Workspace Updated"); } } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } }); @@ -337,11 +339,13 @@ public class IrisProject { Iris.info("Building Workspace: " + ws.getPath() + " took " + Form.duration(p.getMilliseconds(), 2)); return true; } catch (Throwable e) { + Iris.reportError(e); Iris.warn("Project invalid: " + ws.getAbsolutePath() + " Re-creating. You may loose some vs-code workspace settings! But not your actual project!"); ws.delete(); try { IO.writeAll(ws, createCodeWorkspaceConfig()); } catch (IOException e1) { + Iris.reportError(e1); e1.printStackTrace(); } } @@ -503,8 +507,8 @@ public class IrisProject { ggg.set(0); sender.sendMessage("Wrote another " + g + " Objects"); } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } }))); @@ -521,8 +525,8 @@ public class IrisProject { ggg.set(0); sender.sendMessage("Wrote another " + g + " Objects"); } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } }))); @@ -591,6 +595,7 @@ public class IrisProject { sender.sendMessage("Package Compiled!"); return p; } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } sender.sendMessage("Failed!"); diff --git a/src/main/java/com/volmit/iris/manager/ProjectManager.java b/src/main/java/com/volmit/iris/manager/ProjectManager.java index 6aedd4700..0297c6464 100644 --- a/src/main/java/com/volmit/iris/manager/ProjectManager.java +++ b/src/main/java/com/volmit/iris/manager/ProjectManager.java @@ -52,8 +52,8 @@ public class ProjectManager { if (m != null) { try { IO.copyFile(m, ignore); - } catch (IOException ignored) { - + } catch (IOException e) { + Iris.reportError(e); } } } @@ -72,12 +72,12 @@ public class ProjectManager { if (i.isDirectory() && i.list().length > 0 && !Iris.proj.getListing(true).containsKey(i.getName())) { v++; } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } return v; @@ -104,8 +104,8 @@ public class ProjectManager { try { FileUtils.copyDirectory(f, irispack); - } catch (IOException ignored) { - + } catch (IOException e) { + Iris.reportError(e); } } @@ -121,12 +121,14 @@ public class ProjectManager { FileUtils.copyFile(i, new File(irispack, i.getName())); } catch (IOException e) { e.printStackTrace(); + Iris.reportError(e); } } else { try { FileUtils.copyDirectory(i, new File(irispack, i.getName())); } catch (IOException e) { e.printStackTrace(); + Iris.reportError(e); } } } @@ -168,6 +170,7 @@ public class ProjectManager { branch = nodes.length > 2 ? nodes[2] : branch; download(sender, repo, branch, trim, forceOverwrite); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); sender.sendMessage("Failed to download '" + key + "' from " + url + "."); } @@ -188,6 +191,7 @@ public class ProjectManager { try { ZipUtil.unpack(zip, work); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); sender.sendMessage( """ @@ -210,6 +214,7 @@ public class ProjectManager { try { dir = zipFiles.length == 1 && zipFiles[0].isDirectory() ? zipFiles[0] : null; } catch (NullPointerException e) { + Iris.reportError(e); sender.sendMessage("Error when finding home directory. Are there any non-text characters in the file name?"); return; } @@ -307,6 +312,7 @@ public class ProjectManager { } }); } catch (Exception e) { + Iris.reportError(e); sender.sendMessage("Error when creating studio world:"); e.printStackTrace(); } @@ -353,6 +359,7 @@ public class ProjectManager { try { FileUtils.copyDirectory(importPack, newPack, pathname -> !pathname.getAbsolutePath().contains(".git"), false); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } @@ -363,6 +370,7 @@ public class ProjectManager { try { FileUtils.copyFile(dimFile, newDimFile); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } @@ -376,6 +384,7 @@ public class ProjectManager { IO.writeAll(newDimFile, json.toString(4)); } } catch (JSONException | IOException e) { + Iris.reportError(e); e.printStackTrace(); } @@ -384,6 +393,7 @@ public class ProjectManager { JSONObject ws = p.createCodeWorkspaceConfig(); IO.writeAll(getWorkspaceFile(newName, newName + ".code-workspace"), ws.toString(0)); } catch (JSONException | IOException e) { + Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/manager/SchemaBuilder.java b/src/main/java/com/volmit/iris/manager/SchemaBuilder.java index 0c978ce74..8887994c3 100644 --- a/src/main/java/com/volmit/iris/manager/SchemaBuilder.java +++ b/src/main/java/com/volmit/iris/manager/SchemaBuilder.java @@ -383,6 +383,7 @@ public class SchemaBuilder { j.put("description", dd == null ? ("No Description for " + name) : dd.value()); a.put(j); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } } else { @@ -697,6 +698,7 @@ public class SchemaBuilder { j.put("description", dd == null ? ("No Description for " + name) : dd.value()); a.put(j); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } } else { @@ -746,8 +748,8 @@ public class SchemaBuilder { d.add("* Default Value is " + value); } } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } description.forEach((g) -> d.add(g.trim())); diff --git a/src/main/java/com/volmit/iris/manager/WandManager.java b/src/main/java/com/volmit/iris/manager/WandManager.java index aacd365be..3c82f6c0c 100644 --- a/src/main/java/com/volmit/iris/manager/WandManager.java +++ b/src/main/java/com/volmit/iris/manager/WandManager.java @@ -61,8 +61,8 @@ public class WandManager implements Listener { Location[] d = getCuboid(p.getInventory().getItemInMainHand()); draw(d, p); } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } } @@ -164,8 +164,8 @@ public class WandManager implements Listener { } } - } catch (Throwable ignored) { - + } catch (Throwable xx) { + Iris.reportError(xx); } } @@ -194,6 +194,7 @@ public class WandManager implements Listener { return s; } catch (Throwable e) { e.printStackTrace(); + Iris.reportError(e); } return null; @@ -205,6 +206,7 @@ public class WandManager implements Listener { String[] g = f[0].split("\\Q,\\E"); return new Location(Bukkit.getWorld(f[1]), Integer.parseInt(g[0]), Integer.parseInt(g[1]), Integer.parseInt(g[2])); } catch (Throwable e) { + Iris.reportError(e); return null; } } diff --git a/src/main/java/com/volmit/iris/manager/command/CommandIrisMetrics.java b/src/main/java/com/volmit/iris/manager/command/CommandIrisMetrics.java index 0b0eaff37..dead98f7a 100644 --- a/src/main/java/com/volmit/iris/manager/command/CommandIrisMetrics.java +++ b/src/main/java/com/volmit/iris/manager/command/CommandIrisMetrics.java @@ -56,6 +56,7 @@ public class CommandIrisMetrics extends MortarCommand { try { g.printMetrics(sender); } catch (Throwable e) { + Iris.reportError(e); sender.sendMessage("You must be in an iris world."); } diff --git a/src/main/java/com/volmit/iris/manager/command/object/CommandIrisObjectSave.java b/src/main/java/com/volmit/iris/manager/command/object/CommandIrisObjectSave.java index 69ec7b5ed..e31de69d4 100644 --- a/src/main/java/com/volmit/iris/manager/command/object/CommandIrisObjectSave.java +++ b/src/main/java/com/volmit/iris/manager/command/object/CommandIrisObjectSave.java @@ -89,6 +89,7 @@ public class CommandIrisObjectSave extends MortarCommand { sender.sendMessage("Saved " + args[1]); p.getWorld().playSound(p.getLocation(), Sound.BLOCK_ENCHANTMENT_TABLE_USE, 1f, 1.5f); } catch (Throwable e) { + Iris.reportError(e); sender.sendMessage("Failed to save " + args[1] + ". Are you holding your wand?"); e.printStackTrace(); diff --git a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioBeautify.java b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioBeautify.java index dbe4a0788..c3a719d96 100644 --- a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioBeautify.java +++ b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioBeautify.java @@ -77,6 +77,7 @@ public class CommandIrisStudioBeautify extends MortarCommand { try { IO.writeAll(clean, new JSONObject(IO.readAll(clean)).toString(4)); } catch (Throwable e) { + Iris.reportError(e); Iris.error("Failed to beautify " + clean.getAbsolutePath() + " You may have errors in your json!"); } diff --git a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioEditBiome.java b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioEditBiome.java index 28401d667..6cf5d8ffd 100644 --- a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioEditBiome.java +++ b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioEditBiome.java @@ -60,6 +60,7 @@ public class CommandIrisStudioEditBiome extends MortarCommand { File f = Iris.proj.getActiveProject().getActiveProvider().getBiome(p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ()).getLoadFile(); Desktop.getDesktop().open(f); } catch (Throwable e) { + Iris.reportError(e); sender.sendMessage("Cant find the file. Are you in an Iris Studio world?"); } diff --git a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioGoto.java b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioGoto.java index d4b69d43f..f6edbc2ab 100644 --- a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioGoto.java +++ b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioGoto.java @@ -133,6 +133,7 @@ public class CommandIrisStudioGoto extends MortarCommand { sender.sendMessage("Players only."); } } catch (Throwable e) { + Iris.reportError(e); Iris.error("Failed goto!"); e.printStackTrace(); sender.sendMessage("We cant seem to aquire a lock on the biome cache. Please report the error in the console to our github. Thanks!"); diff --git a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioLoot.java b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioLoot.java index a45d6ac8b..8fce44204 100644 --- a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioLoot.java +++ b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioLoot.java @@ -65,6 +65,7 @@ public class CommandIrisStudioLoot extends MortarCommand { try { Iris.proj.getActiveProject().getActiveProvider().getCompound().getEngine(p.getLocation().getBlockY()).addItems(true, inv, RNG.r, tables, InventorySlotType.STORAGE, p.getLocation().getBlockX(), p.getLocation().getBlockY(), p.getLocation().getBlockZ(), 1); } catch (Throwable e) { + Iris.reportError(e); sender.sendMessage("You can only use /iris loot in a studio world of iris."); return true; } diff --git a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioMap.java b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioMap.java index cba8a1bcd..fab0912b8 100644 --- a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioMap.java +++ b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioMap.java @@ -105,6 +105,15 @@ public class CommandIrisStudioMap extends MortarCommand FakeWorld world = new FakeWorld(dim.getName(), 0, 256, seed, new File(dim.getName()), dim.getEnvironment()); FakeEngine engine = new FakeEngine(dim, world); complex = new IrisComplex(engine, true); + + try { + IrisAccess g = Iris.proj.getActiveProject().getActiveProvider(); + IrisVision.launch(g, 0); + sender.sendMessage("Opening Map!"); + } catch (Throwable e) { + Iris.reportError(e); + IrisAccess g = IrisWorlds.access(sender.player().getWorld()); + IrisVision.launch(g, 0); sender.sendMessage("Opening Map!"); } else if (Iris.proj.isProjectOpen()) { IrisAccess g = Iris.proj.getActiveProject().getActiveProvider(); diff --git a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioProfile.java b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioProfile.java index aec8f2c72..fe0964dc3 100644 --- a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioProfile.java +++ b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioProfile.java @@ -241,6 +241,7 @@ public class CommandIrisStudioProfile extends MortarCommand { try { IO.writeAll(report, v.toString("\n")); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioTPStudio.java b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioTPStudio.java index ab2396012..4e8632c57 100644 --- a/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioTPStudio.java +++ b/src/main/java/com/volmit/iris/manager/command/studio/CommandIrisStudioTPStudio.java @@ -60,6 +60,7 @@ public class CommandIrisStudioTPStudio extends MortarCommand { sender.player().teleport(Iris.proj.getActiveProject().getActiveProvider().getTarget().getWorld().getSpawnLocation()); sender.player().setGameMode(GameMode.SPECTATOR); } catch (Throwable e) { + Iris.reportError(e); sender.sendMessage("Failed to teleport to the studio world. Try re-opening the project."); } diff --git a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBiome.java b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBiome.java index 47fcd6ae0..8b15e39ce 100644 --- a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBiome.java +++ b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBiome.java @@ -58,13 +58,14 @@ public class CommandIrisWhatBiome extends MortarCommand { sender.sendMessage("IBiome: " + b.getLoadKey() + " (" + b.getDerivative().name() + ")"); } catch (Throwable e) { + Iris.reportError(e); sender.sendMessage("Non-Iris Biome: " + p.getLocation().getBlock().getBiome().name()); if (p.getLocation().getBlock().getBiome().equals(Biome.CUSTOM)) { try { sender.sendMessage("Data Pack Biome: " + INMS.get().getTrueBiomeBaseKey(p.getLocation()) + " (ID: " + INMS.get().getTrueBiomeBaseId(INMS.get().getTrueBiomeBase(p.getLocation())) + ")"); - } catch (Throwable ignored) { - + } catch (Throwable ee) { + Iris.reportError(ee); } } } diff --git a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBlock.java b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBlock.java index b67c4bf97..1ba8ed2bb 100644 --- a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBlock.java +++ b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatBlock.java @@ -46,6 +46,7 @@ public class CommandIrisWhatBlock extends MortarCommand { try { bd = p.getTargetBlockExact(128, FluidCollisionMode.NEVER).getBlockData(); } catch (NullPointerException e) { + Iris.reportError(e); sender.sendMessage("Please look at any block, not at the sky"); bd = null; } diff --git a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatHand.java b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatHand.java index 1eb0a0ac2..42b25c3e8 100644 --- a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatHand.java +++ b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatHand.java @@ -54,6 +54,7 @@ public class CommandIrisWhatHand extends MortarCommand { sender.sendMessage("Please hold a block/item"); } } catch (Throwable e) { + Iris.reportError(e); Material bd = p.getInventory().getItemInMainHand().getType(); if (!bd.equals(Material.AIR)) { sender.sendMessage("Material: " + C.GREEN + bd.name()); diff --git a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatObjects.java b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatObjects.java index 57f4b9d4d..f885ff711 100644 --- a/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatObjects.java +++ b/src/main/java/com/volmit/iris/manager/command/what/CommandIrisWhatObjects.java @@ -79,8 +79,8 @@ public class CommandIrisWhatObjects extends MortarCommand { int cz = l.getChunk().getZ(); new Spiraler(3, 3, (x, z) -> chunks.addIfMissing(world.getChunkAt(x + cx, z + cz))).drain(); } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } new Spiraler(3, 3, (x, z) -> chunks.addIfMissing(world.getChunkAt(x + bx, z + bz))).drain(); @@ -111,15 +111,15 @@ public class CommandIrisWhatObjects extends MortarCommand { size += i.length(); } } - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } try { FileTime creationTime = (FileTime) Files.getAttribute(world.getWorldFolder().toPath(), "creationTime"); age = hrf(Duration.of(M.ms() - creationTime.toMillis(), ChronoUnit.MILLIS)); - } catch (IOException ignored) { - + } catch (IOException e) { + Iris.reportError(e); } KList biomes = new KList<>(); @@ -181,6 +181,7 @@ public class CommandIrisWhatObjects extends MortarCommand { sender.sendMessage("Reported to: " + ff.getPath()); } catch (FileNotFoundException e) { e.printStackTrace(); + Iris.reportError(e); } return true; @@ -211,8 +212,8 @@ public class CommandIrisWhatObjects extends MortarCommand { BlockVector sz = IrisObject.sampleSize(ff); nn3 = i + ": size=[" + sz.getBlockX() + "," + sz.getBlockY() + "," + sz.getBlockZ() + "] location=[" + ff.getPath() + "]"; stop.add(i); - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } String n3 = nn3; diff --git a/src/main/java/com/volmit/iris/manager/command/world/CommandIrisCreate.java b/src/main/java/com/volmit/iris/manager/command/world/CommandIrisCreate.java index 7cda1755d..0517c7fa1 100644 --- a/src/main/java/com/volmit/iris/manager/command/world/CommandIrisCreate.java +++ b/src/main/java/com/volmit/iris/manager/command/world/CommandIrisCreate.java @@ -139,8 +139,8 @@ public class CommandIrisCreate extends MortarCommand { if (sender.isPlayer()) { try { sender.player().teleport(world.get().getSpawnLocation()); - } catch (Throwable ignored) { - + } catch (Throwable e) { + Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/manager/command/world/CommandIrisFix.java b/src/main/java/com/volmit/iris/manager/command/world/CommandIrisFix.java index c3170c168..bdebed4c7 100644 --- a/src/main/java/com/volmit/iris/manager/command/world/CommandIrisFix.java +++ b/src/main/java/com/volmit/iris/manager/command/world/CommandIrisFix.java @@ -61,6 +61,7 @@ public class CommandIrisFix extends MortarCommand { }); } } catch (Throwable e) { + Iris.reportError(e); sender.sendMessage("Not a valid Iris World (or bad argument)"); } diff --git a/src/main/java/com/volmit/iris/manager/command/world/CommandIrisPregen.java b/src/main/java/com/volmit/iris/manager/command/world/CommandIrisPregen.java index 6db7e0e4e..913005fd2 100644 --- a/src/main/java/com/volmit/iris/manager/command/world/CommandIrisPregen.java +++ b/src/main/java/com/volmit/iris/manager/command/world/CommandIrisPregen.java @@ -98,6 +98,7 @@ public class CommandIrisPregen extends MortarCommand { try { world = Bukkit.getWorld(args[1]); } catch (Exception e) { + Iris.reportError(e); sender.sendMessage("Could not find specified world"); sender.sendMessage("Please doublecheck your command. E.g. /ir pregen 5k world"); return true; @@ -105,13 +106,14 @@ public class CommandIrisPregen extends MortarCommand { } try { new Pregenerator(world, getVal(args[0]) * 2); - } catch (NumberFormatException e) { + } catch (NumberFormatException e) {Iris.reportError(e); sender.sendMessage("Invalid argument in command"); return true; - } catch (NullPointerException e) { + } catch (NullPointerException e) {Iris.reportError(e); e.printStackTrace(); sender.sendMessage("No radius specified (check error in console)"); } catch (HeadlessException e) { + Iris.reportError(e); sender.sendMessage("If you are seeing this and are using a hosted server, please turn off 'useServerLaunchedGUIs' in the settings"); } @@ -128,12 +130,12 @@ public class CommandIrisPregen extends MortarCommand { World world = Bukkit.getWorld(args[1]); try { new Pregenerator(world, getVal(args[0]) * 2); - } catch (NumberFormatException e) { + } catch (NumberFormatException e) {Iris.reportError(e); sender.sendMessage("Invalid argument in command"); return true; - } catch (NullPointerException e) { + } catch (NullPointerException e) {Iris.reportError(e); sender.sendMessage("Not all required parameters specified"); - } catch (HeadlessException e) { + } catch (HeadlessException e) {Iris.reportError(e); sender.sendMessage("If you are seeing this and are using a hosted server, please turn off 'useServerLaunchedGUIs' in the settings"); } diff --git a/src/main/java/com/volmit/iris/manager/edit/DustRevealer.java b/src/main/java/com/volmit/iris/manager/edit/DustRevealer.java index a7c9e5527..79f08cbff 100644 --- a/src/main/java/com/volmit/iris/manager/edit/DustRevealer.java +++ b/src/main/java/com/volmit/iris/manager/edit/DustRevealer.java @@ -18,6 +18,7 @@ package com.volmit.iris.manager.edit; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.IrisWorlds; import com.volmit.iris.scaffold.engine.IrisAccess; import com.volmit.iris.scaffold.parallax.ParallaxAccess; @@ -89,6 +90,7 @@ public class DustRevealer { is(new BlockPosition(block.getX() + 1, block.getY() - 1, block.getZ() - 1)); is(new BlockPosition(block.getX() + 1, block.getY() - 1, block.getZ() + 1)); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } }); diff --git a/src/main/java/com/volmit/iris/manager/edit/JigsawEditor.java b/src/main/java/com/volmit/iris/manager/edit/JigsawEditor.java index 63a9bc342..0e3188223 100644 --- a/src/main/java/com/volmit/iris/manager/edit/JigsawEditor.java +++ b/src/main/java/com/volmit/iris/manager/edit/JigsawEditor.java @@ -74,7 +74,7 @@ public class JigsawEditor implements Listener { if (e.getPlayer().equals(player)) { try { target = player.getTargetBlockExact(7).getLocation(); - } catch (Throwable ex) { + } catch (Throwable ex) {Iris.reportError(ex); target = player.getLocation(); return; } @@ -141,7 +141,7 @@ public class JigsawEditor implements Listener { exit(); try { IO.writeAll(targetSaveLocation, new JSONObject(new Gson().toJson(piece)).toString(4)); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/manager/gui/IrisVision.java b/src/main/java/com/volmit/iris/manager/gui/IrisVision.java index ac4e19923..10a49c57b 100644 --- a/src/main/java/com/volmit/iris/manager/gui/IrisVision.java +++ b/src/main/java/com/volmit/iris/manager/gui/IrisVision.java @@ -285,7 +285,7 @@ public class IrisVision extends JPanel implements MouseWheelListener { if (file != null) { try { frame.setIconImage(ImageIO.read(file)); - } catch (IOException ignored) { + } catch (IOException e) {Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/manager/gui/NoiseExplorer.java b/src/main/java/com/volmit/iris/manager/gui/NoiseExplorer.java index afe016593..3852de665 100644 --- a/src/main/java/com/volmit/iris/manager/gui/NoiseExplorer.java +++ b/src/main/java/com/volmit/iris/manager/gui/NoiseExplorer.java @@ -243,7 +243,7 @@ public class NoiseExplorer extends JPanel implements MouseWheelListener { if (file != null) { try { frame.setIconImage(ImageIO.read(file)); - } catch (IOException ignored) { + } catch (IOException e) {Iris.reportError(e); } } frame.setSize(1440, 820); @@ -276,7 +276,7 @@ public class NoiseExplorer extends JPanel implements MouseWheelListener { if (file != null) { try { frame.setIconImage(ImageIO.read(file)); - } catch (IOException ignored) { + } catch (IOException e) {Iris.reportError(e); } } frame.setSize(1440, 820); diff --git a/src/main/java/com/volmit/iris/manager/link/MultiverseCoreLink.java b/src/main/java/com/volmit/iris/manager/link/MultiverseCoreLink.java index 531b00cae..377c428b1 100644 --- a/src/main/java/com/volmit/iris/manager/link/MultiverseCoreLink.java +++ b/src/main/java/com/volmit/iris/manager/link/MultiverseCoreLink.java @@ -18,6 +18,7 @@ package com.volmit.iris.manager.link; +import com.volmit.iris.Iris; import com.volmit.iris.object.IrisDimension; import com.volmit.iris.util.KMap; import org.bukkit.Bukkit; @@ -51,6 +52,7 @@ public class MultiverseCoreLink { saveConfig(); return b; } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } @@ -65,7 +67,7 @@ public class MultiverseCoreLink { Field f = mvWorldManager.getClass().getDeclaredField("worldsFromTheConfig"); f.setAccessible(true); return (Map) f.get(mvWorldManager); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } @@ -95,7 +97,7 @@ public class MultiverseCoreLink { Plugin p = getMultiverse(); Object mvWorldManager = p.getClass().getDeclaredMethod("getMVWorldManager").invoke(p); mvWorldManager.getClass().getDeclaredMethod("saveWorldsConfig").invoke(mvWorldManager); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } } @@ -108,7 +110,7 @@ public class MultiverseCoreLink { try { String t = worldNameTypes.get(worldName); return t == null ? defaultType : t; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); return defaultType; } } diff --git a/src/main/java/com/volmit/iris/nms/INMS.java b/src/main/java/com/volmit/iris/nms/INMS.java index 4f9c8d8f5..fc574ac03 100644 --- a/src/main/java/com/volmit/iris/nms/INMS.java +++ b/src/main/java/com/volmit/iris/nms/INMS.java @@ -43,7 +43,7 @@ public class INMS { try { return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3]; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.error("Failed to determine server nms version!"); e.printStackTrace(); } @@ -61,7 +61,7 @@ public class INMS { Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound"); return b; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/nms/v17_1/NMSBinding17_1.java b/src/main/java/com/volmit/iris/nms/v17_1/NMSBinding17_1.java index 331e32ab2..87e95d494 100644 --- a/src/main/java/com/volmit/iris/nms/v17_1/NMSBinding17_1.java +++ b/src/main/java/com/volmit/iris/nms/v17_1/NMSBinding17_1.java @@ -46,7 +46,7 @@ public class NMSBinding17_1 implements INMSBinding { private Object getBiomeStorage(ChunkGenerator.BiomeGrid g) { try { return getFieldForBiomeStorage(g).get(g); - } catch (IllegalAccessException e) { + } catch (IllegalAccessException e) {Iris.reportError(e); e.printStackTrace(); } @@ -64,7 +64,7 @@ public class NMSBinding17_1 implements INMSBinding { f = storage.getClass().getDeclaredField("biome"); f.setAccessible(true); return f; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); Iris.error(storage.getClass().getCanonicalName()); } @@ -128,7 +128,7 @@ public class NMSBinding17_1 implements INMSBinding { f.setAccessible(true); //noinspection unchecked return (T) f.invoke(from, par); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } @@ -141,7 +141,7 @@ public class NMSBinding17_1 implements INMSBinding { f.setAccessible(true); //noinspection unchecked return (T) f.invoke(null, par); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } @@ -154,7 +154,7 @@ public class NMSBinding17_1 implements INMSBinding { f.setAccessible(true); //noinspection unchecked return (T) f.get(from); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } @@ -167,7 +167,7 @@ public class NMSBinding17_1 implements INMSBinding { f.setAccessible(true); //noinspection unchecked return (T) f.get(null); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } @@ -230,7 +230,7 @@ public class NMSBinding17_1 implements INMSBinding { try { BiomeStorage s = (BiomeStorage) getFieldForBiomeStorage(chunk).get(chunk); s.setBiome(x, y, z, (BiomeBase) somethingVeryDirty); - } catch (IllegalAccessException e) { + } catch (IllegalAccessException e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/object/IrisBiome.java b/src/main/java/com/volmit/iris/object/IrisBiome.java index c3dc00502..40d1bd26c 100644 --- a/src/main/java/com/volmit/iris/object/IrisBiome.java +++ b/src/main/java/com/volmit/iris/object/IrisBiome.java @@ -351,6 +351,7 @@ public class IrisBiome extends IrisRegistrant implements IRare { try { data.add(getLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / layers.get(i).getZoom(), j, (wz - j) / layers.get(i).getZoom(), rdata)); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } } @@ -390,7 +391,7 @@ public class IrisBiome extends IrisRegistrant implements IRare { for (int j = 0; j < d; j++) { try { data.add(getLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / layers.get(i).getZoom(), j, (wz - j) / layers.get(i).getZoom(), rdata)); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } } @@ -445,7 +446,7 @@ public class IrisBiome extends IrisRegistrant implements IRare { try { data.add(getSeaLayers().get(i).get(random.nextParallelRNG(i + j), (wx + j) / seaLayers.get(i).getZoom(), j, (wz - j) / seaLayers.get(i).getZoom(), rdata)); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/object/IrisBiomeCustom.java b/src/main/java/com/volmit/iris/object/IrisBiomeCustom.java index 28212a4b3..e7f5186ef 100644 --- a/src/main/java/com/volmit/iris/object/IrisBiomeCustom.java +++ b/src/main/java/com/volmit/iris/object/IrisBiomeCustom.java @@ -117,7 +117,7 @@ public class IrisBiomeCustom { String v = (c.startsWith("#") ? c : "#" + c).trim(); try { return Color.decode(v).getRGB(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.error("Error Parsing '''color''', (" + c + ")"); } diff --git a/src/main/java/com/volmit/iris/object/IrisBlockData.java b/src/main/java/com/volmit/iris/object/IrisBlockData.java index f4fc4a766..02f0be411 100644 --- a/src/main/java/com/volmit/iris/object/IrisBlockData.java +++ b/src/main/java/com/volmit/iris/object/IrisBlockData.java @@ -197,13 +197,13 @@ public class IrisBlockData extends IrisRegistrant { try { return Integer.valueOf(string); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } try { return Double.valueOf(string).intValue(); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/object/IrisColor.java b/src/main/java/com/volmit/iris/object/IrisColor.java index 4e87029f2..28aa788d0 100644 --- a/src/main/java/com/volmit/iris/object/IrisColor.java +++ b/src/main/java/com/volmit/iris/object/IrisColor.java @@ -18,6 +18,7 @@ package com.volmit.iris.object; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.cache.AtomicCache; import com.volmit.iris.util.Desc; import com.volmit.iris.util.MaxNumber; @@ -66,7 +67,8 @@ public class IrisColor { String v = (hex.startsWith("#") ? hex : "#" + hex).trim(); try { return Color.decode(v); - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/object/IrisCompat.java b/src/main/java/com/volmit/iris/object/IrisCompat.java index 6edf71b33..2fa9da256 100644 --- a/src/main/java/com/volmit/iris/object/IrisCompat.java +++ b/src/main/java/com/volmit/iris/object/IrisCompat.java @@ -20,6 +20,7 @@ package com.volmit.iris.object; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; +import com.volmit.iris.Iris; import com.volmit.iris.util.*; import lombok.Data; import org.bukkit.Material; @@ -167,6 +168,7 @@ public class IrisCompat { } } catch (JsonSyntaxException e) { e.printStackTrace(); + Iris.reportError(e); } return def; diff --git a/src/main/java/com/volmit/iris/object/IrisDimension.java b/src/main/java/com/volmit/iris/object/IrisDimension.java index 6bf73d4a9..5b03b5f43 100644 --- a/src/main/java/com/volmit/iris/object/IrisDimension.java +++ b/src/main/java/com/volmit/iris/object/IrisDimension.java @@ -474,7 +474,7 @@ public class IrisDimension extends IrisRegistrant { output.getParentFile().mkdirs(); try { IO.writeAll(output, j.generateJson()); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } } @@ -492,7 +492,7 @@ public class IrisDimension extends IrisRegistrant { } } """); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } Iris.verbose(" Installing Data Pack MCMeta: " + mcm.getPath()); diff --git a/src/main/java/com/volmit/iris/object/IrisEffect.java b/src/main/java/com/volmit/iris/object/IrisEffect.java index 12b5316ba..6394e9f5b 100644 --- a/src/main/java/com/volmit/iris/object/IrisEffect.java +++ b/src/main/java/com/volmit/iris/object/IrisEffect.java @@ -190,7 +190,7 @@ public class IrisEffect { return t; } } - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/object/IrisEnchantment.java b/src/main/java/com/volmit/iris/object/IrisEnchantment.java index 0687b272d..672ebf61b 100644 --- a/src/main/java/com/volmit/iris/object/IrisEnchantment.java +++ b/src/main/java/com/volmit/iris/object/IrisEnchantment.java @@ -18,6 +18,7 @@ package com.volmit.iris.object; +import com.volmit.iris.Iris; import com.volmit.iris.util.*; import lombok.AllArgsConstructor; import lombok.Data; @@ -63,7 +64,8 @@ public class IrisEnchantment { } meta.addEnchant(getEnchant(), getLevel(rng), true); } - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } } @@ -74,7 +76,7 @@ public class IrisEnchantment { try { return (Enchantment) i.get(null); } catch (IllegalArgumentException | IllegalAccessException e) { - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } } diff --git a/src/main/java/com/volmit/iris/object/IrisJigsawPiece.java b/src/main/java/com/volmit/iris/object/IrisJigsawPiece.java index 7ebb4bd00..ee50f1f75 100644 --- a/src/main/java/com/volmit/iris/object/IrisJigsawPiece.java +++ b/src/main/java/com/volmit/iris/object/IrisJigsawPiece.java @@ -18,6 +18,7 @@ package com.volmit.iris.object; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.cache.AtomicCache; import com.volmit.iris.util.*; import lombok.AllArgsConstructor; @@ -63,6 +64,7 @@ public class IrisJigsawPiece extends IrisRegistrant { BlockVector v = IrisObject.sampleSize(getLoader().getObjectLoader().findFile(getObject())); return Math.max(v.getBlockX(), v.getBlockZ()); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } @@ -75,7 +77,7 @@ public class IrisJigsawPiece extends IrisRegistrant { try { BlockVector v = IrisObject.sampleSize(getLoader().getObjectLoader().findFile(getObject())); return Math.max(Math.max(v.getBlockX(), v.getBlockZ()), v.getBlockY()); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/object/IrisLoot.java b/src/main/java/com/volmit/iris/object/IrisLoot.java index c91f547fb..73b2bd091 100644 --- a/src/main/java/com/volmit/iris/object/IrisLoot.java +++ b/src/main/java/com/volmit/iris/object/IrisLoot.java @@ -185,7 +185,7 @@ public class IrisLoot { is.setItemMeta(m); return is; - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } @@ -259,7 +259,7 @@ public class IrisLoot { m.setLore(lore); is.setItemMeta(m); return is; - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/object/IrisObject.java b/src/main/java/com/volmit/iris/object/IrisObject.java index 86ddb26c1..0bafad982 100644 --- a/src/main/java/com/volmit/iris/object/IrisObject.java +++ b/src/main/java/com/volmit/iris/object/IrisObject.java @@ -239,7 +239,7 @@ public class IrisObject extends IrisRegistrant { for (int i = 0; i < size; i++) { getStates().put(new BlockVector(din.readShort(), din.readShort(), din.readShort()), TileData.read(din)); } - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -319,7 +319,7 @@ public class IrisObject extends IrisRegistrant { try { read(fin); fin.close(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); fin.close(); fin = new FileInputStream(file); readLegacy(fin); @@ -572,7 +572,7 @@ public class IrisObject extends IrisRegistrant { try { d = getBlocks().get(g); tile = getStates().get(g); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (cme)"); d = AIR; } @@ -665,7 +665,7 @@ public class IrisObject extends IrisRegistrant { try { d = getBlocks().get(g); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.warn("Failed to read block node " + g.getBlockX() + "," + g.getBlockY() + "," + g.getBlockZ() + " in object " + getLoadKey() + " (stilt cme)"); d = AIR; } diff --git a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java index b38e602f5..c95534000 100644 --- a/src/main/java/com/volmit/iris/object/IrisObjectRotation.java +++ b/src/main/java/com/volmit/iris/object/IrisObjectRotation.java @@ -18,6 +18,7 @@ package com.volmit.iris.object; +import com.volmit.iris.Iris; import com.volmit.iris.util.Desc; import com.volmit.iris.util.KList; import lombok.AllArgsConstructor; @@ -284,7 +285,8 @@ public class IrisObjectRotation { Axis a = !g.getAxes().contains(Axis.Y) ? axisFor(t) : axisFor2D(t); ((Orientable) d).setAxis(a); } - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/object/IrisPotionEffect.java b/src/main/java/com/volmit/iris/object/IrisPotionEffect.java index 2500acaf4..45a4ce39b 100644 --- a/src/main/java/com/volmit/iris/object/IrisPotionEffect.java +++ b/src/main/java/com/volmit/iris/object/IrisPotionEffect.java @@ -83,7 +83,7 @@ public class IrisPotionEffect { return t; } } - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/object/tile/TileData.java b/src/main/java/com/volmit/iris/object/tile/TileData.java index e14dc3bff..09aef270b 100644 --- a/src/main/java/com/volmit/iris/object/tile/TileData.java +++ b/src/main/java/com/volmit/iris/object/tile/TileData.java @@ -18,6 +18,7 @@ package com.volmit.iris.object.tile; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag; import com.volmit.iris.util.KList; import org.bukkit.block.Block; @@ -67,6 +68,7 @@ public interface TileData extends Cloneable { s.fromBukkitTry(block.getState()); return s; } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } } @@ -88,7 +90,7 @@ public interface TileData extends Cloneable { //noinspection unchecked toBukkit((T) t); return true; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); } @@ -100,7 +102,7 @@ public interface TileData extends Cloneable { //noinspection unchecked fromBukkit((T) t); return true; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/pregen/DirectWorldWriter.java b/src/main/java/com/volmit/iris/pregen/DirectWorldWriter.java index 8d04b205a..9fa8c618e 100644 --- a/src/main/java/com/volmit/iris/pregen/DirectWorldWriter.java +++ b/src/main/java/com/volmit/iris/pregen/DirectWorldWriter.java @@ -70,7 +70,7 @@ public class DirectWorldWriter { MCAUtil.write(writeBuffer.get(i), f, true); writeBuffer.remove(i); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } }); @@ -158,7 +158,7 @@ public class DirectWorldWriter { } return getBlockData(tag); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } return B.get("AIR"); diff --git a/src/main/java/com/volmit/iris/pregen/Pregenerator.java b/src/main/java/com/volmit/iris/pregen/Pregenerator.java index b6459b277..3265a74fd 100644 --- a/src/main/java/com/volmit/iris/pregen/Pregenerator.java +++ b/src/main/java/com/volmit/iris/pregen/Pregenerator.java @@ -267,7 +267,7 @@ public class Pregenerator implements Listener { try { Files.move(from.toPath(), to.toPath()); return true; - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } @@ -275,7 +275,7 @@ public class Pregenerator implements Listener { IO.copyFile(from, to); from.delete(); return true; - } catch (IOException ignored) { + } catch (IOException e) {Iris.reportError(e); } @@ -348,7 +348,7 @@ public class Pregenerator implements Listener { try { q.pop().run(); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -511,7 +511,7 @@ public class Pregenerator implements Listener { while (order.isNotEmpty()) { try { order.pop().run(); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -580,7 +580,7 @@ public class Pregenerator implements Listener { if (file != null) { try { frame.setIconImage(ImageIO.read(file)); - } catch (IOException ignored) { + } catch (IOException ignored) {Iris.reportError(ignored); } } diff --git a/src/main/java/com/volmit/iris/scaffold/data/mca/Section.java b/src/main/java/com/volmit/iris/scaffold/data/mca/Section.java index c73a55a07..3be1540d7 100644 --- a/src/main/java/com/volmit/iris/scaffold/data/mca/Section.java +++ b/src/main/java/com/volmit/iris/scaffold/data/mca/Section.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.data.mca; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.data.nbt.tag.ByteArrayTag; import com.volmit.iris.scaffold.data.nbt.tag.CompoundTag; import com.volmit.iris.scaffold.data.nbt.tag.ListTag; @@ -141,6 +142,7 @@ public class Section { int paletteIndex = getPaletteIndex(index); return palette.get(paletteIndex); } catch (Throwable ignored) { + Iris.reportError(ignored); } diff --git a/src/main/java/com/volmit/iris/scaffold/data/nbt/io/SNBTParser.java b/src/main/java/com/volmit/iris/scaffold/data/nbt/io/SNBTParser.java index 1fd2d9d20..c83f51bf2 100644 --- a/src/main/java/com/volmit/iris/scaffold/data/nbt/io/SNBTParser.java +++ b/src/main/java/com/volmit/iris/scaffold/data/nbt/io/SNBTParser.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.data.nbt.io; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.data.io.MaxDepthIO; import com.volmit.iris.scaffold.data.nbt.tag.*; @@ -86,24 +87,25 @@ public final class SNBTParser implements MaxDepthIO { try { return new ByteTag(Byte.parseByte(s.substring(0, s.length() - 1))); } catch (NumberFormatException ex) { + Iris.reportError(ex); throw ptr.parseException("byte not in range: \"" + s.substring(0, s.length() - 1) + "\""); } } else if (SHORT_LITERAL_PATTERN.matcher(s).matches()) { try { return new ShortTag(Short.parseShort(s.substring(0, s.length() - 1))); - } catch (NumberFormatException ex) { + } catch (NumberFormatException ex) {Iris.reportError(ex); throw ptr.parseException("short not in range: \"" + s.substring(0, s.length() - 1) + "\""); } } else if (LONG_LITERAL_PATTERN.matcher(s).matches()) { try { return new LongTag(Long.parseLong(s.substring(0, s.length() - 1))); - } catch (NumberFormatException ex) { + } catch (NumberFormatException ex) {Iris.reportError(ex); throw ptr.parseException("long not in range: \"" + s.substring(0, s.length() - 1) + "\""); } } else if (INT_LITERAL_PATTERN.matcher(s).matches()) { try { return new IntTag(Integer.parseInt(s)); - } catch (NumberFormatException ex) { + } catch (NumberFormatException ex) {Iris.reportError(ex); throw ptr.parseException("int not in range: \"" + s.substring(0, s.length() - 1) + "\""); } } else if (DOUBLE_LITERAL_PATTERN.matcher(s).matches()) { @@ -150,7 +152,7 @@ public final class SNBTParser implements MaxDepthIO { Tag element = parseAnything(decrementMaxDepth(maxDepth)); try { list.addUnchecked(element); - } catch (IllegalArgumentException ex) { + } catch (IllegalArgumentException ex) {Iris.reportError(ex); throw ptr.parseException(ex.getMessage()); } if (!ptr.nextArrayElement()) { @@ -185,7 +187,7 @@ public final class SNBTParser implements MaxDepthIO { if (NUMBER_PATTERN.matcher(s).matches()) { try { byteList.add(Byte.parseByte(s)); - } catch (NumberFormatException ex) { + } catch (NumberFormatException ex) {Iris.reportError(ex); throw ptr.parseException("byte not in range: \"" + s + "\""); } } else { @@ -211,7 +213,7 @@ public final class SNBTParser implements MaxDepthIO { if (NUMBER_PATTERN.matcher(s).matches()) { try { intList.add(Integer.parseInt(s)); - } catch (NumberFormatException ex) { + } catch (NumberFormatException ex) {Iris.reportError(ex); throw ptr.parseException("int not in range: \"" + s + "\""); } } else { @@ -233,7 +235,7 @@ public final class SNBTParser implements MaxDepthIO { if (NUMBER_PATTERN.matcher(s).matches()) { try { longList.add(Long.parseLong(s)); - } catch (NumberFormatException ex) { + } catch (NumberFormatException ex) {Iris.reportError(ex); throw ptr.parseException("long not in range: \"" + s + "\""); } } else { diff --git a/src/main/java/com/volmit/iris/scaffold/engine/Engine.java b/src/main/java/com/volmit/iris/scaffold/engine/Engine.java index 45d200750..d09b017e1 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/Engine.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/Engine.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.engine; +import com.volmit.iris.Iris; import com.volmit.iris.manager.IrisDataManager; import com.volmit.iris.manager.gui.Renderer; import com.volmit.iris.object.*; @@ -193,6 +194,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro block.setType(Material.AIR, false); block.setBlockData(data, true); } catch (Exception e) { + Iris.reportError(e); // Issue when adding block data. Suppress massive warnings and stack-traces to console. } } @@ -217,7 +219,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro try { InventoryHolder m = (InventoryHolder) block.getState(); addItems(false, m.getInventory(), rx, tables, slot, x, y, z, 15); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -255,7 +257,7 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro try { Arrays.parallelSort(nitems, (a, b) -> rng.nextInt()); break; - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/EngineComponent.java b/src/main/java/com/volmit/iris/scaffold/engine/EngineComponent.java index 561440934..ac7e1fdfa 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/EngineComponent.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/EngineComponent.java @@ -38,7 +38,7 @@ public interface EngineComponent { if (this instanceof Listener) { Iris.instance.unregisterListener((Listener) this); } - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/EngineCompositeGenerator.java b/src/main/java/com/volmit/iris/scaffold/engine/EngineCompositeGenerator.java index 2d3d1c028..c22838a5d 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/EngineCompositeGenerator.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/EngineCompositeGenerator.java @@ -109,7 +109,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce new MortarSender(i, Iris.instance.getTag()).sendMessage("Dimension Hotloaded"); i.playSound(i.getLocation(), Sound.ITEM_BOTTLE_FILL, 1f, 1.25f); } - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } }); @@ -131,7 +131,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce J.a(() -> hotloader.check()); getComposite().clean(); } - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } @@ -306,7 +306,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce populators.clear(); populators.addAll(compound.getPopulators()); hotloader = new ReactiveFolder(data.getDataFolder(), (a, c, d) -> hotload()); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); Iris.error("FAILED TO INITIALIZE DIMENSION FROM " + world.toString()); } @@ -350,7 +350,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce try { Object o = getBP(clazz, clazzSG, clazzBP, nmsWorld, blockPosToTest, chunkGenerator); future.complete(o); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); e.printStackTrace(); future.complete(e); } @@ -371,7 +371,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce strongholds.add(ipos); } - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); e.printStackTrace(); } } @@ -386,7 +386,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce getComposite().saveEngineMetadata(); }); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); strongholds.add(new IrisPosition(1337, 32, -1337)); metadata.setStrongholdPositions(strongholds); Iris.warn("Couldn't properly find the stronghold position for this world. Is this headless mode? Are you not using 1.16 or higher?"); @@ -907,7 +907,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce public boolean isClosed() { try { return getComposite().getEngine(0).isClosed(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); return false; } } @@ -916,7 +916,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce public EngineTarget getTarget() { try { return getComposite().getEngine(0).getTarget(); - } catch (NullPointerException e) { + } catch (NullPointerException e) {Iris.reportError(e); Iris.info("Failed to get composite engine. Please re-create the world in case you notice issues"); return null; } @@ -955,7 +955,7 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce try { dim.getDimensionalComposite().forEach((m) -> IrisDataManager.loadAnyDimension(m.getDimension()).getAllAnyBiomes().forEach((i) -> v.put(i.getLoadKey(), i))); - } catch (Throwable ignored) { + } catch (Throwable ignored) {Iris.reportError(ignored); } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/EngineCompound.java b/src/main/java/com/volmit/iris/scaffold/engine/EngineCompound.java index 425c80a8f..51c125a46 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/EngineCompound.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/EngineCompound.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.engine; +import com.volmit.iris.Iris; import com.volmit.iris.generator.actuator.IrisTerrainActuator; import com.volmit.iris.manager.IrisDataManager; import com.volmit.iris.object.IrisBiome; @@ -141,6 +142,7 @@ public interface EngineCompound extends Listener, Hotloadable, DataProvider { try { dim.getDimensionalComposite().forEach((m) -> getData().getDimensionLoader().load(m.getDimension()).getAllBiomes(this).forEach((i) -> v.put(i.getLoadKey(), i))); } catch (Throwable ignored) { + Iris.reportError(ignored); } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/EngineData.java b/src/main/java/com/volmit/iris/scaffold/engine/EngineData.java index c5e240066..abaf0ffc7 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/EngineData.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/EngineData.java @@ -19,6 +19,7 @@ package com.volmit.iris.scaffold.engine; import com.google.gson.Gson; +import com.volmit.iris.Iris; import com.volmit.iris.object.IrisPosition; import com.volmit.iris.util.IO; import lombok.Data; @@ -38,6 +39,7 @@ public class EngineData { f.getParentFile().mkdirs(); IO.writeAll(f, new Gson().toJson(this)); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } } @@ -46,7 +48,7 @@ public class EngineData { try { f.getParentFile().mkdirs(); return new Gson().fromJson(IO.readAll(f), EngineData.class); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/EngineParallaxManager.java b/src/main/java/com/volmit/iris/scaffold/engine/EngineParallaxManager.java index d7bb241da..50ad09da5 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/EngineParallaxManager.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/EngineParallaxManager.java @@ -175,7 +175,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { }); getEngine().getMetrics().getParallaxInsert().put(p.getMilliseconds()); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.error("Failed to insert parallax at chunk " + (x >> 4) + " " + (z >> 4)); e.printStackTrace(); } @@ -205,7 +205,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { } } } - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); Iris.warn("Failed to read positional features in chunk " + (i + cx) + " " + (j + cz) + "(" + e.getClass().getSimpleName() + ")"); } @@ -278,7 +278,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { getParallaxAccess().setChunkGenerated(x, z); p.end(); getEngine().getMetrics().getParallax().put(p.getMilliseconds()); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.error("Failed to generate parallax in " + x + " " + z); e.printStackTrace(); } @@ -432,7 +432,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) { try { place(rng, x << 4, z << 4, i); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.error("Failed to place objects in the following biome: " + biome.getName()); Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); Iris.error("Are these objects missing?"); @@ -449,7 +449,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) { try { place(rng, x << 4, z << 4, i); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.error("Failed to place objects in the following biome: " + biome.getName()); Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); Iris.error("Are these objects missing?"); @@ -620,7 +620,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { if (getEngine().getDimension().getStronghold() != null) { try { jig = Math.max(jig, getData().getJigsawStructureLoader().load(getEngine().getDimension().getStronghold()).getMaxDimension()); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.error("THIS IS THE ONE"); e.printStackTrace(); } @@ -639,8 +639,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { try { return IrisObject.sampleSize(getData().getObjectLoader().findFile(i)); - } catch (IOException ioException) { - ioException.printStackTrace(); + } catch (IOException ex) {Iris.reportError(ex); + ex.printStackTrace(); } return null; @@ -659,7 +659,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { synchronized (zg) { zg.getAndSet(Math.max(bv.getBlockZ(), zg.get())); } - } catch (Throwable ignored) { + } catch (Throwable ed) {Iris.reportError(ed); } }); @@ -677,7 +677,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { try { return IrisObject.sampleSize(getData().getObjectLoader().findFile(j)); - } catch (IOException ioException) { + } catch (IOException ioException) {Iris.reportError(ioException); ioException.printStackTrace(); } @@ -697,7 +697,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer { synchronized (zg) { zg.getAndSet((int) Math.max(Math.ceil(bv.getBlockZ() * ms), zg.get())); } - } catch (Throwable ignored) { + } catch (Throwable ee) {Iris.reportError(ee); } }); diff --git a/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java b/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java index 571e5d36c..049514bff 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/EnginePlayer.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.engine; +import com.volmit.iris.Iris; import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisEffect; import com.volmit.iris.object.IrisRegion; @@ -52,7 +53,8 @@ public class EnginePlayer { for (IrisEffect j : region.getEffects()) { try { j.apply(player, getEngine()); - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } } @@ -62,7 +64,7 @@ public class EnginePlayer { for (IrisEffect j : biome.getEffects()) { try { j.apply(player, getEngine()); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -81,7 +83,7 @@ public class EnginePlayer { lastSample = M.ms(); sampleBiomeRegion(); } - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/Fallible.java b/src/main/java/com/volmit/iris/scaffold/engine/Fallible.java index f94827be1..634746b44 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/Fallible.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/Fallible.java @@ -18,11 +18,14 @@ package com.volmit.iris.scaffold.engine; +import com.volmit.iris.Iris; + public interface Fallible { default void fail(String error) { try { throw new RuntimeException(); } catch (Throwable e) { + Iris.reportError(e); fail(error, e); } } diff --git a/src/main/java/com/volmit/iris/scaffold/engine/IrisAccess.java b/src/main/java/com/volmit/iris/scaffold/engine/IrisAccess.java index f11318439..414faafba 100644 --- a/src/main/java/com/volmit/iris/scaffold/engine/IrisAccess.java +++ b/src/main/java/com/volmit/iris/scaffold/engine/IrisAccess.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.engine; +import com.volmit.iris.Iris; import com.volmit.iris.manager.IrisDataManager; import com.volmit.iris.object.IrisBiome; import com.volmit.iris.object.IrisRegion; @@ -129,11 +130,12 @@ public interface IrisAccess extends Hotloadable, DataProvider { tries.getAndIncrement(); } catch (Throwable ex) { + Iris.reportError(ex); ex.printStackTrace(); return; } } - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } }); @@ -193,7 +195,7 @@ public interface IrisAccess extends Hotloadable, DataProvider { } tries.getAndIncrement(); - } catch (Throwable xe) { + } catch (Throwable xe) {Iris.reportError(xe); xe.printStackTrace(); return; } diff --git a/src/main/java/com/volmit/iris/scaffold/hunk/io/BasicHunkIOAdapter.java b/src/main/java/com/volmit/iris/scaffold/hunk/io/BasicHunkIOAdapter.java index 823d13622..0718e0fce 100644 --- a/src/main/java/com/volmit/iris/scaffold/hunk/io/BasicHunkIOAdapter.java +++ b/src/main/java/com/volmit/iris/scaffold/hunk/io/BasicHunkIOAdapter.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.hunk.io; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.hunk.Hunk; import com.volmit.iris.util.Function3; @@ -42,6 +43,7 @@ public abstract class BasicHunkIOAdapter implements HunkIOAdapter { dos.writeShort(z + Short.MIN_VALUE); write(w, dos); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); failure.set(true); } diff --git a/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegion.java b/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegion.java index 421cd201e..dbabb6a6b 100644 --- a/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegion.java +++ b/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegion.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.hunk.io; +import com.volmit.iris.Iris; import com.volmit.iris.util.*; import java.io.File; @@ -50,7 +51,8 @@ public class HunkRegion { NBTInputStream in = new NBTInputStream(new FileInputStream(f)); compound = fix((CompoundTag) in.readTag()); in.close(); - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegionSlice.java b/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegionSlice.java index 382e082e0..a8f6645b8 100644 --- a/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegionSlice.java +++ b/src/main/java/com/volmit/iris/scaffold/hunk/io/HunkRegionSlice.java @@ -100,7 +100,7 @@ public class HunkRegionSlice { try { lock.withNasty(i.getX(), i.getZ(), () -> save.remove(i)); - } catch (Throwable ignored) { + } catch (Throwable eer) {Iris.reportError(eer); } } @@ -128,7 +128,7 @@ public class HunkRegionSlice { try { return adapter.read(factory, (ByteArrayTag) t); - } catch (IOException xe) { + } catch (IOException xe) {Iris.reportError(xe); e.set(xe); } @@ -166,7 +166,7 @@ public class HunkRegionSlice { public void save(Hunk region, int x, int z) { try { lock.withIO(x, z, () -> write(region, x, z)); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } } @@ -209,7 +209,7 @@ public class HunkRegionSlice { if (contains(x, z)) { try { v = read(x, z); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/scaffold/hunk/io/PaletteHunkIOAdapter.java b/src/main/java/com/volmit/iris/scaffold/hunk/io/PaletteHunkIOAdapter.java index 779d6f615..e0bf5a7d8 100644 --- a/src/main/java/com/volmit/iris/scaffold/hunk/io/PaletteHunkIOAdapter.java +++ b/src/main/java/com/volmit/iris/scaffold/hunk/io/PaletteHunkIOAdapter.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.hunk.io; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.data.DataPalette; import com.volmit.iris.scaffold.hunk.Hunk; import com.volmit.iris.util.Function3; @@ -54,6 +55,7 @@ public abstract class PaletteHunkIOAdapter implements HunkIOAdapter { dos.writeShort(z + Short.MIN_VALUE); dos.writeShort(palette.getIndex(w) + Short.MIN_VALUE); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); failure.set(true); } diff --git a/src/main/java/com/volmit/iris/scaffold/hunk/io/TileDataHunkIOAdapter.java b/src/main/java/com/volmit/iris/scaffold/hunk/io/TileDataHunkIOAdapter.java index 0bf6f6a03..e2311c111 100644 --- a/src/main/java/com/volmit/iris/scaffold/hunk/io/TileDataHunkIOAdapter.java +++ b/src/main/java/com/volmit/iris/scaffold/hunk/io/TileDataHunkIOAdapter.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.hunk.io; +import com.volmit.iris.Iris; import com.volmit.iris.object.tile.TileData; import org.bukkit.block.TileState; @@ -35,8 +36,9 @@ public class TileDataHunkIOAdapter extends PaletteHunkIOAdapter read(DataInputStream din) throws IOException { try { return TileData.read(din); - } catch (Throwable throwable) { - throwable.printStackTrace(); + } catch (Throwable e) { + Iris.reportError(e); + e.printStackTrace(); throw new IOException(); } } diff --git a/src/main/java/com/volmit/iris/scaffold/lighting/LightingChunk.java b/src/main/java/com/volmit/iris/scaffold/lighting/LightingChunk.java index 7b0996953..1cb557442 100644 --- a/src/main/java/com/volmit/iris/scaffold/lighting/LightingChunk.java +++ b/src/main/java/com/volmit/iris/scaffold/lighting/LightingChunk.java @@ -462,7 +462,7 @@ public class LightingChunk { return Boolean.TRUE; } } - } catch (Throwable t) { + } catch (Throwable t) {Iris.reportError(t); t.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/scaffold/lighting/LightingCube.java b/src/main/java/com/volmit/iris/scaffold/lighting/LightingCube.java index fea892a60..3c332e7c6 100644 --- a/src/main/java/com/volmit/iris/scaffold/lighting/LightingCube.java +++ b/src/main/java/com/volmit/iris/scaffold/lighting/LightingCube.java @@ -23,6 +23,7 @@ import com.bergerkiller.bukkit.common.utils.WorldUtil; import com.bergerkiller.bukkit.common.wrappers.BlockData; import com.bergerkiller.bukkit.common.wrappers.ChunkSection; import com.bergerkiller.generated.net.minecraft.server.NibbleArrayHandle; +import com.volmit.iris.Iris; import java.util.concurrent.CompletableFuture; @@ -305,6 +306,7 @@ public class LightingCube { } } } catch (Throwable t) { + Iris.reportError(t); CompletableFuture exceptionally = new CompletableFuture<>(); exceptionally.completeExceptionally(t); return exceptionally; diff --git a/src/main/java/com/volmit/iris/scaffold/lighting/LightingService.java b/src/main/java/com/volmit/iris/scaffold/lighting/LightingService.java index 94855868c..d0029c831 100644 --- a/src/main/java/com/volmit/iris/scaffold/lighting/LightingService.java +++ b/src/main/java/com/volmit/iris/scaffold/lighting/LightingService.java @@ -412,7 +412,7 @@ public class LightingService extends AsyncTask { while (paused) { try { Thread.sleep(1000); - } catch (InterruptedException e) { + } catch (InterruptedException e) {Iris.reportError(e); e.printStackTrace(); } synchronized (tasks) { @@ -468,7 +468,7 @@ public class LightingService extends AsyncTask { // Process the task try { currentTask.process(); - } catch (Throwable t) { + } catch (Throwable t) {Iris.reportError(t); t.printStackTrace(); Iris.error("Failed to process task: " + currentTask.getStatus()); } diff --git a/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskBatch.java b/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskBatch.java index 597cd7e42..3a03ab17e 100644 --- a/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskBatch.java +++ b/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskBatch.java @@ -239,8 +239,8 @@ public class LightingTaskBatch implements LightingTask { future.get(200, TimeUnit.MILLISECONDS); return true; } catch (InterruptedException | TimeoutException e1) { - // Ignore - } catch (ExecutionException ex) { + Iris.reportError(e1); + } catch (ExecutionException ex) {Iris.reportError(ex); ex.printStackTrace(); Iris.error("Error while processing"); return false; @@ -441,15 +441,15 @@ public class LightingTaskBatch implements LightingTask { try { future.get(200, TimeUnit.MILLISECONDS); break; - } catch (TimeoutException e) { + } catch (TimeoutException e) {Iris.reportError(e); if (this.aborted) { return; } } } - } catch (InterruptedException e) { + } catch (InterruptedException e) {Iris.reportError(e); // Ignore - } catch (ExecutionException e) { + } catch (ExecutionException e) {Iris.reportError(e); e.printStackTrace(); Iris.error("Failed to apply lighting data for " + getShortStatus()); diff --git a/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskWorld.java b/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskWorld.java index ce5133f4e..e306caaa7 100644 --- a/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskWorld.java +++ b/src/main/java/com/volmit/iris/scaffold/lighting/LightingTaskWorld.java @@ -20,6 +20,7 @@ package com.volmit.iris.scaffold.lighting; import com.bergerkiller.bukkit.common.utils.CommonUtil; import com.bergerkiller.bukkit.common.wrappers.LongHashSet; +import com.volmit.iris.Iris; import org.bukkit.World; import java.util.concurrent.CompletableFuture; @@ -90,6 +91,7 @@ public class LightingTaskWorld implements LightingTask { } regionsLoadedFuture.complete(null); } catch (Throwable ex) { + Iris.reportError(ex); regionsLoadedFuture.completeExceptionally(ex); } }); @@ -97,9 +99,9 @@ public class LightingTaskWorld implements LightingTask { // Wait until region list is loaded synchronously try { regionsLoadedFuture.get(); - } catch (InterruptedException ex) { + } catch (InterruptedException ex) {Iris.reportError(ex); // Ignore - } catch (ExecutionException ex) { + } catch (ExecutionException ex) {Iris.reportError(ex); throw new RuntimeException("Failed to load regions", ex.getCause()); } diff --git a/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxRegion.java b/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxRegion.java index 2879ad298..616052544 100644 --- a/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxRegion.java +++ b/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxRegion.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.parallax; +import com.volmit.iris.Iris; import com.volmit.iris.object.tile.TileData; import com.volmit.iris.scaffold.hunk.Hunk; import com.volmit.iris.scaffold.hunk.io.HunkIOAdapter; @@ -117,6 +118,7 @@ public class ParallaxRegion extends HunkRegion { try { meta = metaAdapter.read((x, y, z) -> Hunk.newArrayHunk(32, 1, 32), (ByteArrayTag) t); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } } @@ -143,7 +145,7 @@ public class ParallaxRegion extends HunkRegion { try { getCompound().getValue().put("meta", meta.writeByteArrayTag(metaAdapter, "meta")); dirtyMeta = false; - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxWorld.java b/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxWorld.java index 128206d35..b00d90db3 100644 --- a/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxWorld.java +++ b/src/main/java/com/volmit/iris/scaffold/parallax/ParallaxWorld.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.parallax; +import com.volmit.iris.Iris; import com.volmit.iris.IrisSettings; import com.volmit.iris.object.tile.TileData; import com.volmit.iris.scaffold.hunk.Hunk; @@ -56,7 +57,8 @@ public class ParallaxWorld implements ParallaxAccess { for (ParallaxRegion i : loadedRegions.values()) { m += i.getChunkCount(); } - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } @@ -75,7 +77,7 @@ public class ParallaxWorld implements ParallaxAccess { public void save(ParallaxRegion region) { try { region.save(); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); e.printStackTrace(); } } @@ -220,7 +222,7 @@ public class ParallaxWorld implements ParallaxAccess { cc += i.cleanup(c); } } - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } }); diff --git a/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java b/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java index 7151132f7..a93728dea 100644 --- a/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java +++ b/src/main/java/com/volmit/iris/scaffold/parallel/BurstExecutor.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.parallel; +import com.volmit.iris.Iris; import com.volmit.iris.util.KList; import java.util.concurrent.CompletableFuture; @@ -76,6 +77,7 @@ public class BurstExecutor { futures.clear(); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); + Iris.reportError(e); } } } diff --git a/src/main/java/com/volmit/iris/scaffold/parallel/GridLock.java b/src/main/java/com/volmit/iris/scaffold/parallel/GridLock.java index ce373bb93..22f6a3727 100644 --- a/src/main/java/com/volmit/iris/scaffold/parallel/GridLock.java +++ b/src/main/java/com/volmit/iris/scaffold/parallel/GridLock.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.parallel; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.hunk.Hunk; import com.volmit.iris.util.IORunnable; import com.volmit.iris.util.NastyRunnable; @@ -81,7 +82,8 @@ public class GridLock { public boolean tryLock(int x, int z, long timeout) { try { return locks.get(x, 0, z).tryLock(timeout, TimeUnit.MILLISECONDS); - } catch (InterruptedException ignored) { + } catch (InterruptedException e) { + Iris.reportError(e); } return false; diff --git a/src/main/java/com/volmit/iris/scaffold/stream/ProceduralStream.java b/src/main/java/com/volmit/iris/scaffold/stream/ProceduralStream.java index 67ed40bf8..27e3da96e 100644 --- a/src/main/java/com/volmit/iris/scaffold/stream/ProceduralStream.java +++ b/src/main/java/com/volmit/iris/scaffold/stream/ProceduralStream.java @@ -36,7 +36,7 @@ public interface ProceduralStream extends ProceduralLayer, Interpolated { try { return of(f, Interpolated.DOUBLE); } catch (IncompatibleClassChangeError e) { - Iris.warn(f.toString()); + Iris.warn(f.toString());Iris.reportError(e); e.printStackTrace(); return null; } diff --git a/src/main/java/com/volmit/iris/scaffold/stream/utility/ProfiledStream.java b/src/main/java/com/volmit/iris/scaffold/stream/utility/ProfiledStream.java index 6a235035a..79e9b1643 100644 --- a/src/main/java/com/volmit/iris/scaffold/stream/utility/ProfiledStream.java +++ b/src/main/java/com/volmit/iris/scaffold/stream/utility/ProfiledStream.java @@ -18,6 +18,7 @@ package com.volmit.iris.scaffold.stream.utility; +import com.volmit.iris.Iris; import com.volmit.iris.scaffold.stream.BasicStream; import com.volmit.iris.scaffold.stream.ProceduralStream; import com.volmit.iris.util.Form; @@ -60,7 +61,8 @@ public class ProfiledStream extends BasicStream { T t = getTypedSource().get(x, z); try { metrics.put(p.getMilliseconds()); - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } return t; @@ -72,7 +74,7 @@ public class ProfiledStream extends BasicStream { T t = getTypedSource().get(x, y, z); try { metrics.put(p.getMilliseconds()); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } return t; diff --git a/src/main/java/com/volmit/iris/util/AtomicAverage.java b/src/main/java/com/volmit/iris/util/AtomicAverage.java index 009e84c19..80a018695 100644 --- a/src/main/java/com/volmit/iris/util/AtomicAverage.java +++ b/src/main/java/com/volmit/iris/util/AtomicAverage.java @@ -19,6 +19,7 @@ package com.volmit.iris.util; import com.google.common.util.concurrent.AtomicDoubleArray; +import com.volmit.iris.Iris; /** * Provides an incredibly fast averaging object. It swaps values from a sum @@ -71,7 +72,8 @@ public class AtomicAverage { lastSum = (lastSum - current) + i; values.set(cursor, i); cursor = cursor + 1 < size() ? cursor + 1 : 0; - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/util/B.java b/src/main/java/com/volmit/iris/util/B.java index bfae2e51e..e4016cda5 100644 --- a/src/main/java/com/volmit/iris/util/B.java +++ b/src/main/java/com/volmit/iris/util/B.java @@ -73,7 +73,7 @@ public class B { Material mm = Material.valueOf(bx); materialCache.put(bx, mm); return mm; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); nullMaterialCache.add(bx); return null; } @@ -108,7 +108,7 @@ public class B { } return bdx; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); Iris.warn("Unknown Block Data '" + bdxf + "'"); } @@ -140,7 +140,7 @@ public class B { BlockData bx = Bukkit.createBlockData(ix); blockDataCache.put(ix, bx); return bx; - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } @@ -151,7 +151,7 @@ public class B { try { BlockData bd = Material.valueOf(i).createBlockData(); blockDataCache.put(ix, bd); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/util/C.java b/src/main/java/com/volmit/iris/util/C.java index 0050348a4..05529a53d 100644 --- a/src/main/java/com/volmit/iris/util/C.java +++ b/src/main/java/com/volmit/iris/util/C.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import org.apache.commons.lang.Validate; import org.bukkit.ChatColor; import org.bukkit.Color; @@ -373,6 +374,7 @@ public enum C { try { return BY_CHAR.get(code); } catch (Exception e) { + Iris.reportError(e); return C.WHITE; } } @@ -390,7 +392,7 @@ public enum C { Validate.isTrue(code.length() > 0, "Code must have at least one char"); return BY_CHAR.get(code.charAt(0)); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return C.WHITE; } } diff --git a/src/main/java/com/volmit/iris/util/FastReflection.java b/src/main/java/com/volmit/iris/util/FastReflection.java index 600f72fd1..a9b93fce4 100644 --- a/src/main/java/com/volmit/iris/util/FastReflection.java +++ b/src/main/java/com/volmit/iris/util/FastReflection.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import org.bukkit.Bukkit; import java.util.Optional; @@ -66,6 +67,7 @@ public final class FastReflection { try { return Optional.of(Class.forName(className)); } catch (ClassNotFoundException e) { + Iris.reportError(e); return Optional.empty(); } } diff --git a/src/main/java/com/volmit/iris/util/GroupedExecutor.java b/src/main/java/com/volmit/iris/util/GroupedExecutor.java index cad181d22..458d93e45 100644 --- a/src/main/java/com/volmit/iris/util/GroupedExecutor.java +++ b/src/main/java/com/volmit/iris/util/GroupedExecutor.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ForkJoinPool; @@ -87,6 +89,7 @@ public class GroupedExecutor { try { r.run(); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/util/IO.java b/src/main/java/com/volmit/iris/util/IO.java index 253b87487..302248641 100644 --- a/src/main/java/com/volmit/iris/util/IO.java +++ b/src/main/java/com/volmit/iris/util/IO.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.io.*; import java.nio.charset.StandardCharsets; import java.security.DigestInputStream; @@ -95,6 +97,7 @@ public class IO { MessageDigest d = MessageDigest.getInstance("SHA-256"); return bytesToHex(d.digest(b.getBytes(StandardCharsets.UTF_8))); } catch (NoSuchAlgorithmException e) { + Iris.reportError(e); e.printStackTrace(); } @@ -108,7 +111,7 @@ public class IO { fullTransfer(din, new VoidOutputStream(), 8192); din.close(); return bytesToHex(din.getMessageDigest().digest()); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } @@ -304,7 +307,7 @@ public class IO { v.accept(in); } } - } catch (Exception ex) { + } catch (Exception ex) {Iris.reportError(ex); x = ex.getCause(); } finally { file.close(); @@ -326,7 +329,7 @@ public class IO { FileReader fr; try { fr = new FileReader(f); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); throw e; } BufferedReader bu = new BufferedReader(fr); @@ -481,7 +484,7 @@ public class IO { if (input != null) { input.close(); } - } catch (IOException ioe) { + } catch (IOException e) {Iris.reportError(e); // ignore } } @@ -499,7 +502,7 @@ public class IO { if (output != null) { output.close(); } - } catch (IOException ioe) { + } catch (IOException e) {Iris.reportError(e); // ignore } } @@ -517,7 +520,7 @@ public class IO { if (input != null) { input.close(); } - } catch (IOException ioe) { + } catch (IOException e) {Iris.reportError(e); // ignore } } @@ -535,7 +538,7 @@ public class IO { if (output != null) { output.close(); } - } catch (IOException ioe) { + } catch (IOException e) {Iris.reportError(e); // ignore } } diff --git a/src/main/java/com/volmit/iris/util/IrisLock.java b/src/main/java/com/volmit/iris/util/IrisLock.java index d0e75330d..8ecad9389 100644 --- a/src/main/java/com/volmit/iris/util/IrisLock.java +++ b/src/main/java/com/volmit/iris/util/IrisLock.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import lombok.Data; import java.util.concurrent.locks.ReentrantLock; @@ -47,7 +48,8 @@ public class IrisLock { } try { lock.unlock(); - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } } diff --git a/src/main/java/com/volmit/iris/util/J.java b/src/main/java/com/volmit/iris/util/J.java index 36948193f..6230d5a98 100644 --- a/src/main/java/com/volmit/iris/util/J.java +++ b/src/main/java/com/volmit/iris/util/J.java @@ -58,7 +58,7 @@ public class J { g.run(); return true; } - } catch (NullPointerException e) { + } catch (NullPointerException e) {Iris.reportError(e); // TODO: Fix this because this is just a suppression for an NPE on g return false; } @@ -70,7 +70,7 @@ public class J { e.submit(() -> { try { a.run(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); System.out.println("Failed to run async task"); e.printStackTrace(); } @@ -81,7 +81,7 @@ public class J { e.submit(() -> { try { a.run(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); System.out.println("Failed to run async task"); e.printStackTrace(); } @@ -99,7 +99,7 @@ public class J { public static R attemptResult(NastyFuture r, R onError) { try { return r.run(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); } @@ -109,7 +109,7 @@ public class J { public static R attemptFunction(NastyFunction r, T param, R onError) { try { return r.run(param); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); } @@ -127,7 +127,7 @@ public class J { public static Throwable attemptCatch(NastyRunnable r) { try { r.run(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); return e; } @@ -137,7 +137,7 @@ public class J { public static T attempt(Supplier t, T i) { try { return t.get(); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); return i; } } diff --git a/src/main/java/com/volmit/iris/util/JSONArray.java b/src/main/java/com/volmit/iris/util/JSONArray.java index 5695464f1..ed14644e1 100644 --- a/src/main/java/com/volmit/iris/util/JSONArray.java +++ b/src/main/java/com/volmit/iris/util/JSONArray.java @@ -19,6 +19,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.io.IOException; import java.io.StringWriter; import java.io.Writer; @@ -222,6 +224,7 @@ public class JSONArray implements Iterable { try { return object instanceof Number ? ((Number) object).doubleValue() : Double.parseDouble((String) object); } catch (Exception e) { + Iris.reportError(e); throw new JSONException("JSONArray[" + index + "] is not a number."); } } @@ -258,7 +261,7 @@ public class JSONArray implements Iterable { Object object = this.get(index); try { return new BigDecimal(object.toString()); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONArray[" + index + "] could not convert to BigDecimal."); } } @@ -275,7 +278,7 @@ public class JSONArray implements Iterable { Object object = this.get(index); try { return new BigInteger(object.toString()); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONArray[" + index + "] could not convert to BigInteger."); } } @@ -291,7 +294,7 @@ public class JSONArray implements Iterable { Object object = this.get(index); try { return object instanceof Number ? ((Number) object).intValue() : Integer.parseInt((String) object); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONArray[" + index + "] is not a number."); } } @@ -340,7 +343,7 @@ public class JSONArray implements Iterable { Object object = this.get(index); try { return object instanceof Number ? ((Number) object).longValue() : Long.parseLong((String) object); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONArray[" + index + "] is not a number."); } } @@ -435,7 +438,7 @@ public class JSONArray implements Iterable { public boolean optBoolean(int index, boolean defaultValue) { try { return this.getBoolean(index); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -464,7 +467,7 @@ public class JSONArray implements Iterable { public double optDouble(int index, double defaultValue) { try { return this.getDouble(index); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -493,7 +496,7 @@ public class JSONArray implements Iterable { public int optInt(int index, int defaultValue) { try { return this.getInt(index); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -531,9 +534,9 @@ public class JSONArray implements Iterable { return myE; } return Enum.valueOf(clazz, val.toString()); - } catch (IllegalArgumentException e) { + } catch (IllegalArgumentException e) {Iris.reportError(e); return defaultValue; - } catch (NullPointerException e) { + } catch (NullPointerException e) {Iris.reportError(e); return defaultValue; } } @@ -550,7 +553,7 @@ public class JSONArray implements Iterable { public BigInteger optBigInteger(int index, BigInteger defaultValue) { try { return this.getBigInteger(index); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -567,7 +570,7 @@ public class JSONArray implements Iterable { public BigDecimal optBigDecimal(int index, BigDecimal defaultValue) { try { return this.getBigDecimal(index); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -621,7 +624,7 @@ public class JSONArray implements Iterable { public long optLong(int index, long defaultValue) { try { return this.getLong(index); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -934,7 +937,7 @@ public class JSONArray implements Iterable { public String toString() { try { return this.toString(0); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return null; } } diff --git a/src/main/java/com/volmit/iris/util/JSONObject.java b/src/main/java/com/volmit/iris/util/JSONObject.java index 8e7f7845a..d286fa5c0 100644 --- a/src/main/java/com/volmit/iris/util/JSONObject.java +++ b/src/main/java/com/volmit/iris/util/JSONObject.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.io.IOException; import java.io.StringWriter; import java.io.Writer; @@ -157,7 +159,8 @@ public class JSONObject { for (int i = 0; i < names.length; i += 1) { try { this.putOnce(names[i], jo.opt(names[i])); - } catch (Exception ignore) { + } catch (Exception e) { + Iris.reportError(e); } } } @@ -280,7 +283,7 @@ public class JSONObject { String name = names[i]; try { this.putOpt(name, c.getField(name).get(object)); - } catch (Exception ignore) { + } catch (Exception e) {Iris.reportError(e); } } } @@ -488,7 +491,7 @@ public class JSONObject { Object object = this.get(key); try { return new BigInteger(object.toString()); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONObject[" + quote(key) + "] could not be converted to BigInteger."); } } @@ -505,7 +508,7 @@ public class JSONObject { Object object = this.get(key); try { return new BigDecimal(object.toString()); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONObject[" + quote(key) + "] could not be converted to BigDecimal."); } } @@ -522,7 +525,7 @@ public class JSONObject { Object object = this.get(key); try { return object instanceof Number ? ((Number) object).doubleValue() : Double.parseDouble((String) object); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONObject[" + quote(key) + "] is not a number."); } } @@ -539,7 +542,7 @@ public class JSONObject { Object object = this.get(key); try { return object instanceof Number ? ((Number) object).intValue() : Integer.parseInt((String) object); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONObject[" + quote(key) + "] is not an int."); } } @@ -586,7 +589,7 @@ public class JSONObject { Object object = this.get(key); try { return object instanceof Number ? ((Number) object).longValue() : Long.parseLong((String) object); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException("JSONObject[" + quote(key) + "] is not a long."); } } @@ -815,9 +818,9 @@ public class JSONObject { return myE; } return Enum.valueOf(clazz, val.toString()); - } catch (IllegalArgumentException e) { + } catch (IllegalArgumentException e) {Iris.reportError(e); return defaultValue; - } catch (NullPointerException e) { + } catch (NullPointerException e) {Iris.reportError(e); return defaultValue; } } @@ -845,7 +848,7 @@ public class JSONObject { public boolean optBoolean(String key, boolean defaultValue) { try { return this.getBoolean(key); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -874,7 +877,7 @@ public class JSONObject { public BigInteger optBigInteger(String key, BigInteger defaultValue) { try { return this.getBigInteger(key); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -891,7 +894,7 @@ public class JSONObject { public BigDecimal optBigDecimal(String key, BigDecimal defaultValue) { try { return this.getBigDecimal(key); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -908,7 +911,7 @@ public class JSONObject { public double optDouble(String key, double defaultValue) { try { return this.getDouble(key); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -937,7 +940,7 @@ public class JSONObject { public int optInt(String key, int defaultValue) { try { return this.getInt(key); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -990,7 +993,7 @@ public class JSONObject { public long optLong(String key, long defaultValue) { try { return this.getLong(key); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return defaultValue; } } @@ -1056,7 +1059,7 @@ public class JSONObject { } } } - } catch (Exception ignore) { + } catch (Exception e) {Iris.reportError(e); } } } @@ -1217,7 +1220,7 @@ public class JSONObject { synchronized (sw.getBuffer()) { try { return quote(string, sw).toString(); - } catch (IOException ignored) { + } catch (IOException e) {Iris.reportError(e); // will never happen - we are writing to a string writer return ""; } @@ -1328,7 +1331,7 @@ public class JSONObject { } } return true; - } catch (Throwable exception) { + } catch (Throwable e) {Iris.reportError(e); return false; } } @@ -1378,7 +1381,7 @@ public class JSONObject { } } } - } catch (Exception ignore) { + } catch (Exception e) {Iris.reportError(e); } } return string; @@ -1439,7 +1442,7 @@ public class JSONObject { public String toString() { try { return this.toString(0); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); return null; } } @@ -1493,7 +1496,7 @@ public class JSONObject { Object object; try { object = ((JSONString) value).toJSONString(); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException(e); } if (object instanceof String) { @@ -1562,7 +1565,7 @@ public class JSONObject { return object.toString(); } return new JSONObject(object); - } catch (Exception exception) { + } catch (Exception e) {Iris.reportError(e); return null; } } @@ -1605,7 +1608,7 @@ public class JSONObject { Object o; try { o = ((JSONString) value).toJSONString(); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); throw new JSONException(e); } writer.write(o != null ? o.toString() : quote(value.toString())); @@ -1671,8 +1674,8 @@ public class JSONObject { } writer.write('}'); return writer; - } catch (IOException exception) { - throw new JSONException(exception); + } catch (IOException e) {Iris.reportError(e); + throw new JSONException(e); } } } diff --git a/src/main/java/com/volmit/iris/util/JSONTokener.java b/src/main/java/com/volmit/iris/util/JSONTokener.java index 210a4f4b8..6606cc55f 100644 --- a/src/main/java/com/volmit/iris/util/JSONTokener.java +++ b/src/main/java/com/volmit/iris/util/JSONTokener.java @@ -19,6 +19,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.io.*; /** @@ -140,8 +142,9 @@ public class JSONTokener { } else { try { c = this.reader.read(); - } catch (IOException exception) { - throw new JSONException(exception); + } catch (IOException e) { + Iris.reportError(e); + throw new JSONException(e); } if (c <= 0) { // End of stream @@ -395,8 +398,8 @@ public class JSONTokener { return c; } } while (c != to); - } catch (IOException exception) { - throw new JSONException(exception); + } catch (IOException e) {Iris.reportError(e); + throw new JSONException(e); } this.back(); return c; diff --git a/src/main/java/com/volmit/iris/util/JSONWriter.java b/src/main/java/com/volmit/iris/util/JSONWriter.java index bde202b2a..c81162bbe 100644 --- a/src/main/java/com/volmit/iris/util/JSONWriter.java +++ b/src/main/java/com/volmit/iris/util/JSONWriter.java @@ -19,6 +19,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.io.IOException; import java.io.Writer; @@ -114,6 +116,7 @@ public class JSONWriter { } this.writer.write(string); } catch (IOException e) { + Iris.reportError(e); throw new JSONException(e); } if (this.mode == 'o') { @@ -160,7 +163,7 @@ public class JSONWriter { this.pop(mode); try { this.writer.write(c); - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); throw new JSONException(e); } this.comma = true; @@ -213,7 +216,7 @@ public class JSONWriter { this.comma = false; this.mode = 'o'; return this; - } catch (IOException e) { + } catch (IOException e) {Iris.reportError(e); throw new JSONException(e); } } diff --git a/src/main/java/com/volmit/iris/util/JarScanner.java b/src/main/java/com/volmit/iris/util/JarScanner.java index b560bc18f..c5cf2a3a1 100644 --- a/src/main/java/com/volmit/iris/util/JarScanner.java +++ b/src/main/java/com/volmit/iris/util/JarScanner.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -63,6 +65,7 @@ public class JarScanner { Class clazz = Class.forName(c); classes.add(clazz); } catch (ClassNotFoundException e) { + Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/util/KMap.java b/src/main/java/com/volmit/iris/util/KMap.java index 624fd662b..30124c423 100644 --- a/src/main/java/com/volmit/iris/util/KMap.java +++ b/src/main/java/com/volmit/iris/util/KMap.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.util.Collections; import java.util.Comparator; import java.util.Enumeration; @@ -57,6 +59,7 @@ public class KMap extends ConcurrentHashMap { s.get(k).add(vs); } catch (Throwable e) { + Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/util/LinkedTerrainChunk.java b/src/main/java/com/volmit/iris/util/LinkedTerrainChunk.java index 77d66b6ef..5e9ea848a 100644 --- a/src/main/java/com/volmit/iris/util/LinkedTerrainChunk.java +++ b/src/main/java/com/volmit/iris/util/LinkedTerrainChunk.java @@ -58,7 +58,7 @@ public class LinkedTerrainChunk implements TerrainChunk { private ChunkData createChunkData(int maxHeight) { try { return Bukkit.createChunkData(new HeightedFakeWorld(maxHeight)); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/util/Looper.java b/src/main/java/com/volmit/iris/util/Looper.java index b1690627f..9754822af 100644 --- a/src/main/java/com/volmit/iris/util/Looper.java +++ b/src/main/java/com/volmit/iris/util/Looper.java @@ -33,9 +33,9 @@ public abstract class Looper extends Thread { //noinspection BusyWait Thread.sleep(m); - } catch (InterruptedException e) { + } catch (InterruptedException e) {Iris.reportError(e); break; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/util/Metrics.java b/src/main/java/com/volmit/iris/util/Metrics.java index 9d8779c50..7e1e97f24 100644 --- a/src/main/java/com/volmit/iris/util/Metrics.java +++ b/src/main/java/com/volmit/iris/util/Metrics.java @@ -22,6 +22,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonPrimitive; +import com.volmit.iris.Iris; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; @@ -135,7 +136,8 @@ public class Metrics { ).copyDefaults(true); try { config.save(configFile); - } catch (IOException ignored) { + } catch (IOException e) { + Iris.reportError(e); } } @@ -154,7 +156,7 @@ public class Metrics { service.getField("B_STATS_VERSION"); // Our identifier :) found = true; // We aren't the first break; - } catch (NoSuchFieldException ignored) { + } catch (NoSuchFieldException e) {Iris.reportError(e); } } // Register our service @@ -253,7 +255,7 @@ public class Metrics { playerAmount = onlinePlayersMethod.getReturnType().equals(Collection.class) ? ((Collection) onlinePlayersMethod.invoke(Bukkit.getServer())).size() : ((Player[]) onlinePlayersMethod.invoke(Bukkit.getServer())).length; - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); playerAmount = Bukkit.getOnlinePlayers().size(); // Just use the new method if the Reflection failed } int onlineMode = Bukkit.getOnlineMode() ? 1 : 0; @@ -312,17 +314,19 @@ public class Metrics { JsonObject object = new JsonParser().parse(jsonString).getAsJsonObject(); pluginData.add(object); } - } catch (ClassNotFoundException e) { + } catch (ClassNotFoundException e) {Iris.reportError(e); // minecraft version 1.14+ + if (logFailedRequests) { this.plugin.getLogger().log(Level.SEVERE, "Encountered unexpected exception", e); } } } } catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { + Iris.reportError(ignored); } } - } catch (NoSuchFieldException ignored) { + } catch (NoSuchFieldException e) {Iris.reportError(e); } } @@ -333,7 +337,7 @@ public class Metrics { try { // Send the data sendData(plugin, data); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); // Something went wrong! :( if (logFailedRequests) { plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e); @@ -440,7 +444,7 @@ public class Metrics { return null; } chart.add("data", data); - } catch (Throwable t) { + } catch (Throwable t) {Iris.reportError(t); if (logFailedRequests) { Bukkit.getLogger().log(Level.WARNING, "Failed to get data for custom chart with id " + chartId, t); } diff --git a/src/main/java/com/volmit/iris/util/MetricsLite.java b/src/main/java/com/volmit/iris/util/MetricsLite.java index e84c3ff36..98c07c3f0 100644 --- a/src/main/java/com/volmit/iris/util/MetricsLite.java +++ b/src/main/java/com/volmit/iris/util/MetricsLite.java @@ -21,6 +21,7 @@ package com.volmit.iris.util; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import com.volmit.iris.Iris; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; @@ -132,7 +133,8 @@ public class MetricsLite { Check out https://bStats.org/ to learn more :)""").copyDefaults(true); try { config.save(configFile); - } catch (IOException ignored) { + } catch (IOException e) { + Iris.reportError(e); } } @@ -150,7 +152,7 @@ public class MetricsLite { service.getField("B_STATS_VERSION"); // Our identifier :) found = true; // We aren't the first break; - } catch (NoSuchFieldException ignored) { + } catch (NoSuchFieldException e) {Iris.reportError(e); } } // Register our service @@ -230,7 +232,7 @@ public class MetricsLite { // org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection; Method onlinePlayersMethod = Class.forName("org.bukkit.Server").getMethod("getOnlinePlayers"); playerAmount = onlinePlayersMethod.getReturnType().equals(Collection.class) ? ((Collection) onlinePlayersMethod.invoke(Bukkit.getServer())).size() : ((Player[]) onlinePlayersMethod.invoke(Bukkit.getServer())).length; - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); playerAmount = Bukkit.getOnlinePlayers().size(); // Just use the new method if the Reflection failed } int onlineMode = Bukkit.getOnlineMode() ? 1 : 0; @@ -289,7 +291,7 @@ public class MetricsLite { JsonObject object = new JsonParser().parse(jsonString).getAsJsonObject(); pluginData.add(object); } - } catch (ClassNotFoundException e) { + } catch (ClassNotFoundException e) {Iris.reportError(e); // minecraft version 1.14+ if (logFailedRequests) { this.plugin.getLogger().log(Level.SEVERE, "Encountered unexpected exception ", e); @@ -297,9 +299,10 @@ public class MetricsLite { } } } catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { + Iris.reportError(ignored); } } - } catch (NoSuchFieldException ignored) { + } catch (NoSuchFieldException e) {Iris.reportError(e); } } @@ -311,7 +314,7 @@ public class MetricsLite { try { // Send the data sendData(plugin, data); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); // Something went wrong! :( if (logFailedRequests) { plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e); diff --git a/src/main/java/com/volmit/iris/util/MortarCommand.java b/src/main/java/com/volmit/iris/util/MortarCommand.java index 6c0e0b7ce..a94e50d61 100644 --- a/src/main/java/com/volmit/iris/util/MortarCommand.java +++ b/src/main/java/com/volmit/iris/util/MortarCommand.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import com.volmit.iris.IrisSettings; import org.bukkit.Sound; @@ -188,6 +189,7 @@ public abstract class MortarCommand implements ICommand { p.add(pc); } catch (IllegalArgumentException | IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException | SecurityException e) { + Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/util/MortarPermission.java b/src/main/java/com/volmit/iris/util/MortarPermission.java index cfc2ee27d..b8137efd7 100644 --- a/src/main/java/com/volmit/iris/util/MortarPermission.java +++ b/src/main/java/com/volmit/iris/util/MortarPermission.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import org.bukkit.command.CommandSender; import java.lang.reflect.Field; @@ -36,6 +37,7 @@ public abstract class MortarPermission { i.set(Modifier.isStatic(i.getModifiers()) ? null : this, px); } catch (IllegalArgumentException | IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException | SecurityException e) { e.printStackTrace(); + Iris.reportError(e); } } } @@ -50,6 +52,7 @@ public abstract class MortarPermission { p.add((MortarPermission) i.get(Modifier.isStatic(i.getModifiers()) ? null : this)); } catch (IllegalArgumentException | IllegalAccessException | SecurityException e) { e.printStackTrace(); + Iris.reportError(e); } } } diff --git a/src/main/java/com/volmit/iris/util/NMSVersion.java b/src/main/java/com/volmit/iris/util/NMSVersion.java index b1a96acfb..ef9775c16 100644 --- a/src/main/java/com/volmit/iris/util/NMSVersion.java +++ b/src/main/java/com/volmit/iris/util/NMSVersion.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.util.ArrayList; import java.util.List; @@ -129,7 +131,8 @@ public enum NMSVersion { try { Class.forName("org.bukkit.craftbukkit.v" + v + ".CraftWorld"); return true; - } catch (Throwable ignored) { + } catch (Throwable e) { + Iris.reportError(e); } diff --git a/src/main/java/com/volmit/iris/util/ObjectResourceLoader.java b/src/main/java/com/volmit/iris/util/ObjectResourceLoader.java index 65d481d27..a10aa7eea 100644 --- a/src/main/java/com/volmit/iris/util/ObjectResourceLoader.java +++ b/src/main/java/com/volmit/iris/util/ObjectResourceLoader.java @@ -116,6 +116,7 @@ public class ObjectResourceLoader extends ResourceLoader { lock.unlock(); return t; } catch (Throwable e) { + Iris.reportError(e); lock.unlock(); Iris.warn("Couldn't read " + resourceTypeName + " file: " + j.getPath() + ": " + e.getMessage()); return null; diff --git a/src/main/java/com/volmit/iris/util/ParticleSender.java b/src/main/java/com/volmit/iris/util/ParticleSender.java index 9a4e084a3..0764e12be 100644 --- a/src/main/java/com/volmit/iris/util/ParticleSender.java +++ b/src/main/java/com/volmit/iris/util/ParticleSender.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Particle; @@ -74,6 +75,7 @@ interface ParticleSender { try { return Particle.valueOf(particle.toString()); } catch (IllegalArgumentException e) { + Iris.reportError(e); return null; } } diff --git a/src/main/java/com/volmit/iris/util/ParticleSenderLegacy.java b/src/main/java/com/volmit/iris/util/ParticleSenderLegacy.java index ca08d5a9a..98175e531 100644 --- a/src/main/java/com/volmit/iris/util/ParticleSenderLegacy.java +++ b/src/main/java/com/volmit/iris/util/ParticleSenderLegacy.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import org.bukkit.Color; import org.bukkit.World; import org.bukkit.entity.Player; @@ -129,6 +130,7 @@ class ParticleSenderLegacy implements ParticleSender { SEND_PACKET.invoke(playerConnection, packet); } } catch (ReflectiveOperationException e) { + Iris.reportError(e); throw new RuntimeException(e); } } @@ -146,7 +148,7 @@ class ParticleSenderLegacy implements ParticleSender { try { return getEnumParticle(particle); - } catch (IllegalArgumentException e) { + } catch (IllegalArgumentException e) {Iris.reportError(e); return null; } } diff --git a/src/main/java/com/volmit/iris/util/ParticleType.java b/src/main/java/com/volmit/iris/util/ParticleType.java index b4ce9430a..5b0268d6b 100644 --- a/src/main/java/com/volmit/iris/util/ParticleType.java +++ b/src/main/java/com/volmit/iris/util/ParticleType.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import org.bukkit.Color; import org.bukkit.inventory.ItemStack; import org.bukkit.material.MaterialData; @@ -175,6 +176,7 @@ public enum ParticleType { try { return ParticleType.valueOf(particleName.toUpperCase()); } catch (IllegalArgumentException e) { + Iris.reportError(e); for (ParticleType particle : values()) { if (particle.getName().equalsIgnoreCase(particleName)) { return particle; diff --git a/src/main/java/com/volmit/iris/util/QueueExecutor.java b/src/main/java/com/volmit/iris/util/QueueExecutor.java index bfc2d5307..e29adc674 100644 --- a/src/main/java/com/volmit/iris/util/QueueExecutor.java +++ b/src/main/java/com/volmit/iris/util/QueueExecutor.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + public class QueueExecutor extends Looper { private final Queue queue; private boolean shutdown; @@ -37,6 +39,7 @@ public class QueueExecutor extends Looper { try { queue.next().run(); } catch (Throwable e) { + Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/util/ResourceLoader.java b/src/main/java/com/volmit/iris/util/ResourceLoader.java index ea11748c7..166a419e2 100644 --- a/src/main/java/com/volmit/iris/util/ResourceLoader.java +++ b/src/main/java/com/volmit/iris/util/ResourceLoader.java @@ -117,7 +117,7 @@ public class ResourceLoader { t.setLoader(manager); lock.unlock(); return t; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); lock.unlock(); failLoad(j, e); return null; diff --git a/src/main/java/com/volmit/iris/util/SKConversion.java b/src/main/java/com/volmit/iris/util/SKConversion.java index bfa553576..46b16a3f1 100644 --- a/src/main/java/com/volmit/iris/util/SKConversion.java +++ b/src/main/java/com/volmit/iris/util/SKConversion.java @@ -24,6 +24,7 @@ import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats; import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader; import com.sk89q.worldedit.math.BlockVector3; +import com.volmit.iris.Iris; import com.volmit.iris.object.IrisObject; import java.io.File; @@ -48,6 +49,7 @@ public class SKConversion { o.write(out); } catch (IOException e) { + Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/util/TaskExecutor.java b/src/main/java/com/volmit/iris/util/TaskExecutor.java index c6717ec61..aac1015c1 100644 --- a/src/main/java/com/volmit/iris/util/TaskExecutor.java +++ b/src/main/java/com/volmit/iris/util/TaskExecutor.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import lombok.Getter; import lombok.Setter; import lombok.ToString; @@ -191,8 +192,9 @@ public class TaskExecutor { try { task.run(); state = TaskState.COMPLETED; - } catch (Throwable ex) { + } catch (Throwable ex) {Iris.reportError(ex); ex.printStackTrace(); + Iris.reportError(ex); state = TaskState.FAILED; } }); diff --git a/src/main/java/com/volmit/iris/util/ThreadMonitor.java b/src/main/java/com/volmit/iris/util/ThreadMonitor.java index 30a98b020..b80b2a66c 100644 --- a/src/main/java/com/volmit/iris/util/ThreadMonitor.java +++ b/src/main/java/com/volmit/iris/util/ThreadMonitor.java @@ -60,7 +60,7 @@ public class ThreadMonitor extends Thread { if (cl.flip()) { Iris.info("Cycles: " + Form.f(cycles) + " (" + Form.duration(sq.getAverage(), 2) + ")"); } - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); running = false; break; } diff --git a/src/main/java/com/volmit/iris/util/Tuple2d.java b/src/main/java/com/volmit/iris/util/Tuple2d.java index e4a0ebd54..1f131715e 100644 --- a/src/main/java/com/volmit/iris/util/Tuple2d.java +++ b/src/main/java/com/volmit/iris/util/Tuple2d.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + /** * A generic 2-element tuple that is represented by double-precision * floating point x,y coordinates. @@ -294,6 +296,7 @@ public abstract class Tuple2d implements java.io.Serializable, Cloneable { try { return (this.x == t1.x && this.y == t1.y); } catch (NullPointerException e2) { + Iris.reportError(e2); return false; } @@ -312,6 +315,7 @@ public abstract class Tuple2d implements java.io.Serializable, Cloneable { Tuple2d t2 = (Tuple2d) t1; return (this.x == t2.x && this.y == t2.y); } catch (NullPointerException | ClassCastException e2) { + Iris.reportError(e2); return false; } @@ -504,7 +508,7 @@ public abstract class Tuple2d implements java.io.Serializable, Cloneable { // Since there are no arrays we can just use Object.clone() try { return super.clone(); - } catch (CloneNotSupportedException e) { + } catch (CloneNotSupportedException e) {Iris.reportError(e); // this shouldn't happen, since we are Cloneable throw new InternalError(); } diff --git a/src/main/java/com/volmit/iris/util/Tuple2f.java b/src/main/java/com/volmit/iris/util/Tuple2f.java index 91cc48409..11fe2d816 100644 --- a/src/main/java/com/volmit/iris/util/Tuple2f.java +++ b/src/main/java/com/volmit/iris/util/Tuple2f.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + /** * A generic 2-element tuple that is represented by single-precision * floating point x,y coordinates. @@ -296,6 +298,7 @@ public abstract class Tuple2f implements java.io.Serializable, Cloneable { try { return (this.x == t1.x && this.y == t1.y); } catch (NullPointerException e2) { + Iris.reportError(e2); return false; } @@ -314,6 +317,7 @@ public abstract class Tuple2f implements java.io.Serializable, Cloneable { Tuple2f t2 = (Tuple2f) t1; return (this.x == t2.x && this.y == t2.y); } catch (NullPointerException | ClassCastException e2) { + Iris.reportError(e2); return false; } @@ -508,7 +512,7 @@ public abstract class Tuple2f implements java.io.Serializable, Cloneable { // Since there are no arrays we can just use Object.clone() try { return super.clone(); - } catch (CloneNotSupportedException e) { + } catch (CloneNotSupportedException e) {Iris.reportError(e); // this shouldn't happen, since we are Cloneable throw new InternalError(); } diff --git a/src/main/java/com/volmit/iris/util/Tuple3d.java b/src/main/java/com/volmit/iris/util/Tuple3d.java index a7842a21f..8fb85c854 100644 --- a/src/main/java/com/volmit/iris/util/Tuple3d.java +++ b/src/main/java/com/volmit/iris/util/Tuple3d.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + /** * A generic 3-element tuple that is represented by double-precision * floating point x,y,z coordinates. @@ -345,6 +347,7 @@ public abstract class Tuple3d implements java.io.Serializable, Cloneable { try { return (this.x == t1.x && this.y == t1.y && this.z == t1.z); } catch (NullPointerException e2) { + Iris.reportError(e2); return false; } } @@ -362,6 +365,7 @@ public abstract class Tuple3d implements java.io.Serializable, Cloneable { Tuple3d t2 = (Tuple3d) t1; return (this.x == t2.x && this.y == t2.y && this.z == t2.z); } catch (ClassCastException | NullPointerException e1) { + Iris.reportError(e1); return false; } @@ -635,6 +639,7 @@ public abstract class Tuple3d implements java.io.Serializable, Cloneable { try { return super.clone(); } catch (CloneNotSupportedException e) { + Iris.reportError(e); // this shouldn't happen, since we are Cloneable throw new InternalError(); } diff --git a/src/main/java/com/volmit/iris/util/Tuple3f.java b/src/main/java/com/volmit/iris/util/Tuple3f.java index d038b0b3b..a517de53c 100644 --- a/src/main/java/com/volmit/iris/util/Tuple3f.java +++ b/src/main/java/com/volmit/iris/util/Tuple3f.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + /** * A generic 3-element tuple that is represented by single precision-floating * point x,y,z coordinates. @@ -330,6 +332,7 @@ public abstract class Tuple3f implements java.io.Serializable, Cloneable { try { return (this.x == t1.x && this.y == t1.y && this.z == t1.z); } catch (NullPointerException e2) { + Iris.reportError(e2); return false; } } @@ -347,6 +350,7 @@ public abstract class Tuple3f implements java.io.Serializable, Cloneable { Tuple3f t2 = (Tuple3f) t1; return (this.x == t2.x && this.y == t2.y && this.z == t2.z); } catch (NullPointerException | ClassCastException e2) { + Iris.reportError(e2); return false; } } @@ -578,7 +582,7 @@ public abstract class Tuple3f implements java.io.Serializable, Cloneable { // Since there are no arrays we can just use Object.clone() try { return super.clone(); - } catch (CloneNotSupportedException e) { + } catch (CloneNotSupportedException e) {Iris.reportError(e); // this shouldn't happen, since we are Cloneable throw new InternalError(); } diff --git a/src/main/java/com/volmit/iris/util/Tuple4d.java b/src/main/java/com/volmit/iris/util/Tuple4d.java index 64ffed5d0..56800e3c4 100644 --- a/src/main/java/com/volmit/iris/util/Tuple4d.java +++ b/src/main/java/com/volmit/iris/util/Tuple4d.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + /** * A 4 element tuple represented by double precision floating point * x,y,z,w coordinates. @@ -369,6 +371,7 @@ public abstract class Tuple4d implements java.io.Serializable, Cloneable { return (this.x == t1.x && this.y == t1.y && this.z == t1.z && this.w == t1.w); } catch (NullPointerException e2) { + Iris.reportError(e2); return false; } } @@ -388,6 +391,7 @@ public abstract class Tuple4d implements java.io.Serializable, Cloneable { return (this.x == t2.x && this.y == t2.y && this.z == t2.z && this.w == t2.w); } catch (NullPointerException | ClassCastException e2) { + Iris.reportError(e2); return false; } } @@ -709,7 +713,7 @@ public abstract class Tuple4d implements java.io.Serializable, Cloneable { // Since there are no arrays we can just use Object.clone() try { return super.clone(); - } catch (CloneNotSupportedException e) { + } catch (CloneNotSupportedException e) {Iris.reportError(e); // this shouldn't happen, since we are Cloneable throw new InternalError(); } diff --git a/src/main/java/com/volmit/iris/util/Tuple4f.java b/src/main/java/com/volmit/iris/util/Tuple4f.java index 41ddcf3ea..cc09ade50 100644 --- a/src/main/java/com/volmit/iris/util/Tuple4f.java +++ b/src/main/java/com/volmit/iris/util/Tuple4f.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + /** * A 4-element tuple represented by single-precision floating point x,y,z,w * coordinates. @@ -357,6 +359,7 @@ public abstract class Tuple4f implements java.io.Serializable, Cloneable { return (this.x == t1.x && this.y == t1.y && this.z == t1.z && this.w == t1.w); } catch (NullPointerException e2) { + Iris.reportError(e2); return false; } } @@ -375,6 +378,7 @@ public abstract class Tuple4f implements java.io.Serializable, Cloneable { return (this.x == t2.x && this.y == t2.y && this.z == t2.z && this.w == t2.w); } catch (NullPointerException | ClassCastException e2) { + Iris.reportError(e2); return false; } } @@ -633,7 +637,7 @@ public abstract class Tuple4f implements java.io.Serializable, Cloneable { // Since there are no arrays we can just use Object.clone() try { return super.clone(); - } catch (CloneNotSupportedException e) { + } catch (CloneNotSupportedException e) {Iris.reportError(e); // this shouldn't happen, since we are Cloneable throw new InternalError(); } diff --git a/src/main/java/com/volmit/iris/util/UIElement.java b/src/main/java/com/volmit/iris/util/UIElement.java index 7b756474c..0263e445f 100644 --- a/src/main/java/com/volmit/iris/util/UIElement.java +++ b/src/main/java/com/volmit/iris/util/UIElement.java @@ -18,6 +18,7 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; @@ -159,9 +160,10 @@ public class UIElement implements Element { return this; } } - } catch (NullPointerException ignored) { + } catch (NullPointerException e) { + Iris.reportError(e); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } @@ -211,7 +213,7 @@ public class UIElement implements Element { is.setItemMeta(im); return is; - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/util/V.java b/src/main/java/com/volmit/iris/util/V.java index 73e499a63..c00e406be 100644 --- a/src/main/java/com/volmit/iris/util/V.java +++ b/src/main/java/com/volmit/iris/util/V.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.lang.annotation.Annotation; public class V { @@ -50,6 +52,7 @@ public class V { try { return local ? Violator.getDeclaredAnnotation(o.getClass(), t) : Violator.getAnnotation(o.getClass(), t); } catch (Throwable e) { + Iris.reportError(e); if (!suppress) { e.printStackTrace(); } @@ -61,7 +64,7 @@ public class V { public T get(Class t, String mn, Class... pars) { try { return local ? Violator.getDeclaredAnnotation(Violator.getDeclaredMethod(o.getClass(), mn, pars), t) : Violator.getAnnotation(Violator.getMethod(o.getClass(), mn, pars), t); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); if (!suppress) { e.printStackTrace(); } @@ -73,7 +76,7 @@ public class V { public T get(Class t, String mn) { try { return local ? Violator.getDeclaredAnnotation(Violator.getDeclaredField(o.getClass(), mn), t) : Violator.getAnnotation(Violator.getField(o.getClass(), mn), t); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); if (!suppress) { e.printStackTrace(); } @@ -86,7 +89,7 @@ public class V { public T get(String field) { try { return (T) (local ? Violator.getDeclaredField(o.getClass(), field) : Violator.getField(o.getClass(), field)).get(o); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); if (!suppress) { e.printStackTrace(); } @@ -108,7 +111,7 @@ public class V { try { return (local ? Violator.getDeclaredMethod(o.getClass(), method, par.toArray(new Class[0])) : Violator.getMethod(o.getClass(), method, par.toArray(new Class[0]))).invoke(o, parameters); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); if (!suppress) { e.printStackTrace(); } @@ -121,7 +124,7 @@ public class V { try { // https://github.com/VolmitSoftware/Mortar/issues/5 (local ? Violator.getDeclaredField(o.getClass(), field) : Violator.getField(o.getClass(), field)).set(o, value); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); if (!suppress) { e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/util/Violator.java b/src/main/java/com/volmit/iris/util/Violator.java index b00923800..e60748129 100644 --- a/src/main/java/com/volmit/iris/util/Violator.java +++ b/src/main/java/com/volmit/iris/util/Violator.java @@ -18,6 +18,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.lang.annotation.Annotation; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -111,6 +113,7 @@ public class Violator { f.setAccessible(true); p(id(c, null) + "." + name, f); } catch (NoSuchFieldException e) { + Iris.reportError(e); Class s = c.getSuperclass(); if (null == s) { throw e; @@ -131,7 +134,7 @@ public class Violator { Field f = c.getDeclaredField(name); f.setAccessible(true); p(id(c, null) + "." + name, f); - } catch (NoSuchFieldException e) { + } catch (NoSuchFieldException e) {Iris.reportError(e); Class s = c.getSuperclass(); if (null == s) { throw e; @@ -176,7 +179,7 @@ public class Violator { try { Constructor co = getConstructor(c, cv.toArray(new Class[0])); return (T) co.newInstance(parameters); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/util/VirtualCommand.java b/src/main/java/com/volmit/iris/util/VirtualCommand.java index 776cc1492..cff08f4e6 100644 --- a/src/main/java/com/volmit/iris/util/VirtualCommand.java +++ b/src/main/java/com/volmit/iris/util/VirtualCommand.java @@ -54,7 +54,7 @@ public class VirtualCommand { ICommand cmd = (ICommand) i.getType().getConstructor().newInstance(); new V(command, true, true).set(i.getName(), cmd); children.put(cmd.getAllNodes(), new VirtualCommand(cmd, cc.value().trim().isEmpty() ? tag : cc.value().trim())); - } catch (Exception e) { + } catch (Exception e) {Iris.reportError(e); e.printStackTrace(); } } diff --git a/src/main/java/com/volmit/iris/util/VolmitPlugin.java b/src/main/java/com/volmit/iris/util/VolmitPlugin.java index d8b00ff1e..14c2ef730 100644 --- a/src/main/java/com/volmit/iris/util/VolmitPlugin.java +++ b/src/main/java/com/volmit/iris/util/VolmitPlugin.java @@ -83,7 +83,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { listenersField.setAccessible(true); //noinspection unchecked listeners = (Map>) listenersField.get(getServer().getPluginManager()); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } @@ -95,7 +95,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { //noinspection unchecked commands = (Map) knownCommandsField.get(commandMap); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } @@ -128,7 +128,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { if (cl instanceof URLClassLoader) { try { ((URLClassLoader) cl).close(); - } catch (IOException ignored) { + } catch (IOException e) {Iris.reportError(e); } } @@ -187,7 +187,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { outputPluginInfo(); outputCommandInfo(); outputPermissionInfo(); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -259,6 +259,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { permissionCache.add(pc); v("Registered Permissions " + pc.getFullNode() + " (" + i.getName() + ")"); } catch (IllegalArgumentException | IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException | SecurityException e) { + Iris.reportError(e); w("Failed to register permission (field " + i.getName() + ")"); e.printStackTrace(); } @@ -268,7 +269,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { for (org.bukkit.permissions.Permission i : computePermissions()) { try { Bukkit.getPluginManager().addPermission(i); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -283,7 +284,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { g.add(toPermission(x)); g.addAll(computePermissions(x)); } catch (IllegalArgumentException | IllegalAccessException | SecurityException e) { - e.printStackTrace(); + Iris.reportError(e);e.printStackTrace(); } } } @@ -363,7 +364,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { i.tick(); } catch (Throwable e) { w("Failed to tick controller " + i.getName()); - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } } @@ -393,7 +394,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { v("Registered " + pc.getName() + " (" + i.getName() + ")"); } catch (IllegalArgumentException | IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException | SecurityException e) { w("Failed to register controller (field " + i.getName() + ")"); - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } } @@ -418,7 +419,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { v("Started " + pc.getName()); } catch (Throwable e) { w("Failed to start controller " + pc.getName()); - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } @@ -434,7 +435,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { v("Registered Instance " + i.getName()); } catch (IllegalArgumentException | IllegalAccessException | SecurityException e) { w("Failed to register instance (field " + i.getName() + ")"); - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } } @@ -452,7 +453,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { v("Unregistered Instance " + i.getName()); } catch (IllegalArgumentException | IllegalAccessException | SecurityException e) { w("Failed to unregister instance (field " + i.getName() + ")"); - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } } @@ -476,7 +477,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { v("Registered Commands /" + pc.getNode() + " (" + i.getName() + ")"); } catch (IllegalArgumentException | IllegalAccessException | InstantiationException | InvocationTargetException | NoSuchMethodException | SecurityException e) { w("Failed to register command (field " + i.getName() + ")"); - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } } @@ -584,7 +585,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { } } } catch (Throwable e) { - e.printStackTrace(); + e.printStackTrace();Iris.reportError(e); } } @@ -623,7 +624,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { for (VirtualCommand i : commands.v()) { try { unregisterCommand(i.getCommand()); - } catch (Throwable ignored) { + } catch (Throwable e) {Iris.reportError(e); } } @@ -648,7 +649,7 @@ public abstract class VolmitPlugin extends JavaPlugin implements Listener { unregisterListener(i); i.stop(); v("Stopped " + i.getName()); - } catch (Throwable e) { + } catch (Throwable e) {Iris.reportError(e); w("Failed to stop controller " + i.getName()); e.printStackTrace(); } diff --git a/src/main/java/com/volmit/iris/util/XML.java b/src/main/java/com/volmit/iris/util/XML.java index 86c5eb232..3113b616f 100644 --- a/src/main/java/com/volmit/iris/util/XML.java +++ b/src/main/java/com/volmit/iris/util/XML.java @@ -19,6 +19,8 @@ package com.volmit.iris.util; +import com.volmit.iris.Iris; + import java.util.Iterator; /** @@ -322,12 +324,13 @@ public class XML { } } } catch (Exception ignore) { + Iris.reportError(ignore); try { Double value = new Double(string); if (value.toString().equals(string)) { return value; } - } catch (Exception ignored) { + } catch (Exception e) {Iris.reportError(e); } } return string;