diff --git a/src/main/java/com/volmit/iris/Iris.java b/src/main/java/com/volmit/iris/Iris.java
index 76eb3cc77..fbe2762b2 100644
--- a/src/main/java/com/volmit/iris/Iris.java
+++ b/src/main/java/com/volmit/iris/Iris.java
@@ -38,8 +38,6 @@ import com.volmit.iris.engine.object.dimensional.IrisDimension;
import com.volmit.iris.engine.platform.BukkitChunkGenerator;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KSet;
-import com.volmit.iris.util.decree.DecreeCommand;
-import com.volmit.iris.util.decree.DecreeSystem;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.function.NastyRunnable;
@@ -87,7 +85,7 @@ public class Iris extends VolmitPlugin implements Listener {
public static ConversionManager convert;
public static WandManager wand;
public static EditManager edit;
- public static BoardManager board;
+ public static CoreBoardManager board;
public static MultiverseCoreLink linkMultiverseCore;
public static OraxenLink linkOraxen;
public static MythicMobsLink linkMythicMobs;
@@ -124,7 +122,7 @@ public class Iris extends VolmitPlugin implements Listener {
proj = new ProjectManager();
convert = new ConversionManager();
wand = new WandManager();
- board = new BoardManager();
+ board = new CoreBoardManager();
linkMultiverseCore = new MultiverseCoreLink();
linkOraxen = new OraxenLink();
linkMythicMobs = new MythicMobsLink();
@@ -457,6 +455,10 @@ public class Iris extends VolmitPlugin implements Listener {
if (d == null) {
Iris.warn("Unable to find dimension type " + id + " Looking for online packs...");
d = IrisData.loadAnyDimension(dimension);
+ if (dimension == null) {
+ Iris.warn("Unable to find dimension type \"" + dimensionName + "\". Looking for online packs...");
+ Iris.proj.downloadSearch(new VolmitSender(Bukkit.getConsoleSender()), dimensionName, true);
+ dimension = IrisData.loadAnyDimension(dimensionName);
if (d == null) {
throw new RuntimeException("Can't find dimension " + dimension + "!");
@@ -480,7 +482,7 @@ public class Iris extends VolmitPlugin implements Listener {
public static void msg(String string) {
try {
sender.sendMessage(string);
- } catch (Throwable ignored) {
+ } catch (Throwable e) {
try {
System.out.println(string);
} catch (Throwable ignored1) {
diff --git a/src/main/java/com/volmit/iris/core/BoardManager.java b/src/main/java/com/volmit/iris/core/CoreBoardManager.java
similarity index 98%
rename from src/main/java/com/volmit/iris/core/BoardManager.java
rename to src/main/java/com/volmit/iris/core/CoreBoardManager.java
index 40df2bcd4..827e294ac 100644
--- a/src/main/java/com/volmit/iris/core/BoardManager.java
+++ b/src/main/java/com/volmit/iris/core/CoreBoardManager.java
@@ -43,7 +43,7 @@ import org.bukkit.event.player.PlayerChangedWorldEvent;
import java.util.List;
-public class BoardManager implements BoardProvider, Listener {
+public class CoreBoardManager implements BoardProvider, Listener {
private final BossBar energyBar;
private final com.volmit.iris.util.board.BoardManager manager;
@@ -53,7 +53,7 @@ public class BoardManager implements BoardProvider, Listener {
private final ChronoLatch cl = new ChronoLatch(1000);
private final ChronoLatch ecl = new ChronoLatch(50);
- public BoardManager() {
+ public CoreBoardManager() {
Iris.instance.registerListener(this);
//@builder
manager = new com.volmit.iris.util.board.BoardManager(Iris.instance, BoardSettings.builder()
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeCommand.java b/src/main/java/com/volmit/iris/util/decree/DecreeCommand.java
deleted file mode 100644
index 08c82bce1..000000000
--- a/src/main/java/com/volmit/iris/util/decree/DecreeCommand.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Iris is a World Generator for Minecraft Bukkit Servers
- * Copyright (c) 2021 Arcane Arts (Volmit Software)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.volmit.iris.util.decree;
-
-
-public interface DecreeCommand {
-}
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeContext.java b/src/main/java/com/volmit/iris/util/decree/DecreeContext.java
index 1bd3a139a..82a9ebdc9 100644
--- a/src/main/java/com/volmit/iris/util/decree/DecreeContext.java
+++ b/src/main/java/com/volmit/iris/util/decree/DecreeContext.java
@@ -18,7 +18,6 @@
package com.volmit.iris.util.decree;
-import com.volmit.iris.Iris;
import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.plugin.VolmitSender;
import com.volmit.iris.util.scheduling.ChronoLatch;
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java b/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java
index e7b0aae2b..08bfcd096 100644
--- a/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java
+++ b/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java
@@ -21,7 +21,10 @@ package com.volmit.iris.util.decree;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.platform.PlatformChunkGenerator;
+<<<<<<< HEAD
import com.volmit.iris.util.format.C;
+=======
+>>>>>>> master
import com.volmit.iris.util.plugin.VolmitSender;
import org.bukkit.World;
import org.bukkit.entity.Player;
@@ -62,9 +65,12 @@ public interface DecreeExecutor {
default Engine engine()
{
- if(sender().isPlayer())
+ if(sender().isPlayer() && IrisToolbelt.access(sender().player().getWorld()) != null)
{
- return IrisToolbelt.access(sender().player().getWorld()).getEngine();
+ PlatformChunkGenerator gen = IrisToolbelt.access(sender().player().getWorld());
+ if (gen != null){
+ return gen.getEngine();
+ }
}
return null;
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java
index 081c7b2bf..9d7d437eb 100644
--- a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java
+++ b/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java
@@ -37,6 +37,11 @@ public interface DecreeParameterHandler {
*/
String toString(T t);
+ /**
+ * Forces conversion to the designated type before converting to a string using {@link #toString(T t)}
+ * @param t The object to convert to string (that should be of this type)
+ * @return The resulting string.
+ */
default String toStringForce(Object t)
{
return toString((T)t);
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java b/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java
index eefece7cc..ea7cb4275 100644
--- a/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java
+++ b/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java
@@ -36,6 +36,10 @@ import java.util.List;
public interface DecreeSystem extends CommandExecutor, TabCompleter {
KList> handlers = Iris.initialize("com.volmit.iris.util.decree.handlers", null).convert((i) -> (DecreeParameterHandler>) i);
+ /**
+ * The root class to start command searching from
+ * @return
+ */
VirtualDecreeCommand getRoot();
default boolean call(VolmitSender sender, String[] args)
diff --git a/src/main/java/com/volmit/iris/util/decree/SubExample.java b/src/main/java/com/volmit/iris/util/decree/SubExample.java
deleted file mode 100644
index 08f4acebb..000000000
--- a/src/main/java/com/volmit/iris/util/decree/SubExample.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.volmit.iris.util.decree;
-
-import com.volmit.iris.util.decree.annotations.Decree;
-
-@Decree(name = "boop", aliases = {"b", "bp"}, description = "Sub example with another name!")
-// the boop command in here can be called with (/super) boop beep, b beep and bp beep
-public class SubExample implements DecreeCommand {
- @Decree(name = "beep", description = "Boops the sender") // Origin is not defined so both console & player senders can run this command (Default)
- public void boop() { // Called with "beep" because name = "beep", "boop" will not work in the command
- DecreeContext.get().sendMessage("Boop");
- }
-}
diff --git a/src/main/java/com/volmit/iris/util/reflect/Violator.java b/src/main/java/com/volmit/iris/util/reflect/Violator.java
index 51b98b4f6..6d5fdfa4e 100644
--- a/src/main/java/com/volmit/iris/util/reflect/Violator.java
+++ b/src/main/java/com/volmit/iris/util/reflect/Violator.java
@@ -265,7 +265,7 @@ public class Violator {
T f = c.getDeclaredAnnotation(a);
p(id(f, c), f);
- System.out.println("Set as " + id(f, c) + " as " + ("@" + a.getCanonicalName() + "[" + id(c, null) + "]"));
+ Iris.debug("Set as " + id(f, c) + " as " + ("@" + a.getCanonicalName() + "[" + id(c, null) + "]"));
}
return (T) g("@" + a.getCanonicalName() + "[" + id(c, null) + "]");
diff --git a/src/main/java/com/volmit/iris/util/scheduling/J.java b/src/main/java/com/volmit/iris/util/scheduling/J.java
index 3ecda344d..0394dbd60 100644
--- a/src/main/java/com/volmit/iris/util/scheduling/J.java
+++ b/src/main/java/com/volmit/iris/util/scheduling/J.java
@@ -65,7 +65,7 @@ public class J {
a.run();
} catch (Throwable e) {
Iris.reportError(e);
- System.out.println("Failed to run async task");
+ Iris.error("Failed to run async task");
e.printStackTrace();
}
});
@@ -77,7 +77,7 @@ public class J {
a.run();
} catch (Throwable e) {
Iris.reportError(e);
- System.out.println("Failed to run async task");
+ Iris.error("Failed to run async task");
e.printStackTrace();
}
});