diff --git a/src/main/java/de/mari_023/ae2wtlib/wut/AddTerminalEvent.java b/src/main/java/de/mari_023/ae2wtlib/wut/AddTerminalEvent.java index e8eb0e65..335a9856 100644 --- a/src/main/java/de/mari_023/ae2wtlib/wut/AddTerminalEvent.java +++ b/src/main/java/de/mari_023/ae2wtlib/wut/AddTerminalEvent.java @@ -32,6 +32,10 @@ public static synchronized void run() { HANDLERS = null; } + public static synchronized boolean hasRun() { + return HANDLERS == null; + } + /** * Creates a builder to register a new terminal. * diff --git a/src/main/java/de/mari_023/ae2wtlib/wut/WTDefinitions.java b/src/main/java/de/mari_023/ae2wtlib/wut/WTDefinitions.java index 12bc872d..a008e04c 100644 --- a/src/main/java/de/mari_023/ae2wtlib/wut/WTDefinitions.java +++ b/src/main/java/de/mari_023/ae2wtlib/wut/WTDefinitions.java @@ -4,6 +4,11 @@ public class WTDefinitions { private WTDefinitions() { } + static { + if (!AddTerminalEvent.hasRun()) + throw new IllegalStateException("Calling WTDefinitions before terminal registration happened"); + } + public static WTDefinition CRAFTING = WTDefinition.of("crafting"); public static WTDefinition PATTERN_ENCODING = WTDefinition.of("pattern_encoding"); public static WTDefinition PATTERN_ACCESS = WTDefinition.of("pattern_access");