diff --git a/.gitignore b/.gitignore
index eaf77ed40..203047ef2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,4 +10,4 @@ libs/
collection/
-src/main/java/com/volmit/iris/util/uniques/
+/core/src/main/java/com/volmit/iris/util/uniques/
diff --git a/build.gradle b/build.gradle
index 00b587866..117164f98 100644
--- a/build.gradle
+++ b/build.gradle
@@ -19,18 +19,12 @@
plugins {
id 'java'
id 'java-library'
- id "io.freefair.lombok" version "6.3.0"
id "com.github.johnrengelman.shadow" version "7.1.2"
id "de.undercouch.download" version "5.0.1"
}
-version '2.8.1-1.20.1'
-def nmsVersion = '1.20.1' //[NMS]
-def apiVersion = '1.20'
+version '2.8.0'
def specialSourceVersion = '1.11.0' //[NMS]
-def spigotJarVersion = '1.20.1-R0.1-SNAPSHOT' //[NMS]
-def name = getRootProject().getName() // Defined in settings.gradle
-def main = 'com.volmit.iris.Iris'
// ADD YOURSELF AS A NEW LINE IF YOU WANT YOUR OWN BUILD TASK GENERATED
// ======================== WINDOWS =============================
@@ -47,59 +41,157 @@ registerCustomOutputTaskUnix('CyberpwnLT', '/Users/danielmills/development/serve
registerCustomOutputTaskUnix('PsychoLT', '/Users/brianfopiano/Desktop/REMOTES/RemoteMinecraft/plugins')
// ==============================================================
-/**
- * Gradle is weird sometimes, we need to delete the plugin yml from the build folder to actually filter properly.
- */
-file(jar.archiveFile.get().getAsFile().getParentFile().getParentFile().getParentFile().getAbsolutePath() + '/build/resources/main/plugin.yml').delete()
+def NMS_BINDINGS = Map.of(
+ "v1_20_R2", "1.20.2-R0.1-SNAPSHOT",
+ "v1_20_R1", "1.20.1-R0.1-SNAPSHOT",
+ "v1_19_R3", "1.19.4-R0.1-SNAPSHOT",
+ "v1_19_R2", "1.19.3-R0.1-SNAPSHOT",
+ "v1_19_R1", "1.19.2-R0.1-SNAPSHOT"
+)
+NMS_BINDINGS.each {
+ def key = it.key
+ def value = it.value
+ def nms = value.split("-")[0];
+ project(":nms:${key}") {
+ apply plugin: 'java'
+ apply plugin: 'java-library'
+ apply plugin: 'de.undercouch.download'
-/**
- * Expand properties into plugin yml
- */
-processResources {
- filesMatching('**/plugin.yml') {
- expand(
- 'name': name.toString(),
- 'version': version.toString(),
- 'main': main.toString(),
- 'apiversion': apiVersion.toString()
- )
- }
-}
-
-/**
- * Unified repo
- */
-repositories {
- mavenLocal {
- content {
- includeGroup("org.bukkit")
- includeGroup("org.spigotmc")
+ dependencies {
+ implementation project(":core")
+ implementation "org.spigotmc:spigot-api:${value}"
+ implementation "org.bukkit:craftbukkit:${value}:remapped-mojang" //[NMS]
}
+
+ def buildToolsJar = new File(rootProject.buildDir, "tools/BuildTools.jar")
+ def specialSourceJar = new File(rootProject.buildDir, "tools/SpecialSource.jar")
+
+ def buildToolsFolder = new File(buildDir, "buildtools")
+ def specialSourceFolder = new File(buildDir, "specialsource")
+ def buildToolsHint = new File(buildDir, "buildtools/craftbukkit-" + nms + ".jar")
+
+ def outputJar = new File(buildDir, "libs/${key}.jar")
+ def ssiJar = new File(buildDir, "specialsource/${key}.jar")
+ def ssobfJar = new File(buildDir, "specialsource/${key}-rmo.jar")
+ def ssJar = new File(buildDir, "specialsource/${key}-rma.jar")
+
+ def homePath = System.properties['user.home']
+ def m2 = new File(homePath + "/.m2/repository")
+ def m2s = m2.getAbsolutePath();
+
+ // ======================== Building Mapped Jars =============================
+ Runnable downloadBuildtools = () -> {
+ if (!buildToolsJar.exists()) {
+ download.run {
+ src 'https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar'
+ dest buildToolsJar
+ }
+ }
+ }
+
+ Runnable downloadSpecialSource = () -> {
+ if (!specialSourceJar.exists()) {
+ download.run {
+ src 'https://repo.maven.apache.org/maven2/net/md-5/SpecialSource/' + specialSourceVersion + '/SpecialSource-'+specialSourceVersion+'-shaded.jar'
+ dest specialSourceJar
+ }
+ }
+ }
+
+ Runnable executeBuildTools = () -> {
+ if (!buildToolsHint.exists()) {
+ downloadBuildtools.run()
+ buildToolsFolder.mkdirs()
+ javaexec {
+ classpath = files(buildToolsJar)
+ workingDir = buildToolsFolder
+ args = [
+ "--rev",
+ nms,
+ "--compile",
+ "craftbukkit",
+ "--remap"
+ ]
+ }
+ }
+ }
+
+ tasks.register("executeBuildTools") {
+ doFirst {
+ executeBuildTools.run()
+ }
+ }
+
+ tasks.register("copyBuildToSpecialSource", Copy) {
+ doFirst {
+ downloadSpecialSource.run()
+ specialSourceFolder.mkdirs();
+ }
+
+ group "remapping"
+ from outputJar
+ into specialSourceFolder
+ dependsOn(jar)
+ }
+
+ tasks.register("specialSourceRemapObfuscate", JavaExec) {
+ group "remapping"
+ dependsOn(copyBuildToSpecialSource)
+ workingDir = specialSourceFolder
+ classpath = files(specialSourceJar,
+ new File(m2s + "/org/spigotmc/spigot/" + value + "/spigot-" + value + "-remapped-mojang.jar"))
+ mainClass = "net.md_5.specialsource.SpecialSource"
+ args = [
+ "--live",
+ "-i",
+ ssiJar.getName(),
+ "-o",
+ ssobfJar.getName(),
+ "-m",
+ m2s + "/org/spigotmc/minecraft-server/" + value + "/minecraft-server-" + value + "-maps-mojang.txt",
+ "--reverse",
+ ]
+ }
+
+ tasks.register("specialSourceRemap", JavaExec) {
+ group "remapping"
+ dependsOn(specialSourceRemapObfuscate)
+ workingDir = specialSourceFolder
+ classpath = files(specialSourceJar,
+ new File(m2s + "/org/spigotmc/spigot/" + value + "/spigot-" + value + "-remapped-obf.jar"))
+ mainClass = "net.md_5.specialsource.SpecialSource"
+ args = [
+ "--live",
+ "-i",
+ ssobfJar.getName(),
+ "-o",
+ ssJar.getName(),
+ "-m",
+ m2s + "/org/spigotmc/minecraft-server/" + value + "/minecraft-server-" + value + "-maps-spigot.csrg"
+ ]
+ }
+
+ tasks.register("copySpecialSourceToBuild", Copy) {
+ group "remapping"
+ from ssJar
+ into outputJar.getParentFile()
+ rename {
+ outputJar.getName()
+ }
+ dependsOn(specialSourceRemap)
+ }
+
+ tasks.build.dependsOn(copySpecialSourceToBuild)
+ executeBuildTools.run()
}
- mavenCentral()
- maven { url "https://repo.papermc.io/repository/maven-public/"}
- maven { url "https://repo.codemc.org/repository/maven-public" }
- maven { url "https://mvn.lumine.io/repository/maven-public/" }
- maven { url "https://jitpack.io"}
-
- maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots" }
- maven { url "https://mvn.lumine.io/repository/maven/" }
- maven { url "https://repo.triumphteam.dev/snapshots" }
- maven { url "https://repo.mineinabyss.com/releases" }
- maven { url = 'https://hub.jeff-media.com/nexus/repository/jeff-media-public/' }
-}
-
-/**
- * We need parameter meta for the decree command system
- */
-compileJava {
- options.compilerArgs << '-parameters'
}
/**
* Configure Iris for shading
*/
shadowJar {
+ NMS_BINDINGS.each {dependsOn(":nms:${it.key}:build")}
+
//minimize()
append("plugin.yml")
relocate 'com.dfsek.paralithic', 'com.volmit.iris.util.paralithic'
@@ -109,6 +201,16 @@ shadowJar {
include(dependency('io.papermc:paperlib'))
include(dependency('com.dfsek:Paralithic'))
include(dependency('net.kyori:'))
+ include(project(":core"))
+ NMS_BINDINGS.each {include(project(":nms:${it.key}"))}
+ }
+ archiveFileName.set("Iris-${project.version}.jar")
+}
+
+dependencies {
+ implementation project(':core')
+ NMS_BINDINGS.each {
+ implementation project(":nms:${it.key}")
}
}
@@ -117,52 +219,78 @@ configurations.all {
resolutionStrategy.cacheDynamicVersionsFor 60, 'minutes'
}
-/**
- * Dependencies.
- *
- * Provided or classpath dependencies are not shaded and are available on the runtime classpath
- *
- * Shaded dependencies are not available at runtime, nor are they available on mvn central so they
- * need to be shaded into the jar (increasing binary size)
- *
- * Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the
- * plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare
- * these dependencies if they are available on mvn central.
- */
-dependencies {
- // Provided or Classpath
- compileOnly 'org.projectlombok:lombok:1.18.24'
- annotationProcessor 'org.projectlombok:lombok:1.18.24'
- implementation 'org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT'
- implementation 'org.bukkit:craftbukkit:1.20.1-R0.1-SNAPSHOT:remapped-mojang' //[NMS]
+allprojects {
+ getPlugins().apply("java")
- // Third Party Integrations
- implementation 'com.ticxo.playeranimator:PlayerAnimator:R1.2.7'
- implementation 'com.github.oraxen:oraxen:1.158.0'
- implementation 'com.github.LoneDev6:api-itemsadder:3.4.1-r4'
- implementation 'com.github.PlaceholderAPI:placeholderapi:2.11.3'
- //implementation files('libs/CustomItems.jar')
+ /**
+ * Unified repo
+ */
+ repositories {
+ mavenLocal {
+ content {
+ includeGroup("org.bukkit")
+ includeGroup("org.spigotmc")
+ }
+ }
+ mavenCentral()
+ maven { url "https://repo.papermc.io/repository/maven-public/"}
+ maven { url "https://repo.codemc.org/repository/maven-public" }
+ maven { url "https://mvn.lumine.io/repository/maven-public/" }
+ maven { url "https://jitpack.io"}
- // Shaded
- implementation 'com.dfsek:Paralithic:0.4.0'
- implementation 'io.papermc:paperlib:1.0.5'
- implementation "net.kyori:adventure-text-minimessage:4.13.1"
- implementation 'net.kyori:adventure-platform-bukkit:4.3.0'
- implementation 'net.kyori:adventure-api:4.13.1'
- implementation 'io.lumine:Mythic-Dist:5.2.1'
+ maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots" }
+ maven { url "https://mvn.lumine.io/repository/maven/" }
+ maven { url "https://repo.triumphteam.dev/snapshots" }
+ maven { url "https://repo.mineinabyss.com/releases" }
+ maven { url 'https://hub.jeff-media.com/nexus/repository/jeff-media-public/' }
+ }
- // Dynamically Loaded
- implementation 'io.timeandspace:smoothie-map:2.0.2'
- implementation 'it.unimi.dsi:fastutil:8.5.8'
- implementation 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2'
- implementation 'org.zeroturnaround:zt-zip:1.14'
- implementation 'com.google.code.gson:gson:2.9.0'
- implementation 'org.ow2.asm:asm:9.2'
- implementation 'com.google.guava:guava:31.1-jre'
- implementation 'bsf:bsf:2.4.0'
- implementation 'rhino:js:1.7R2'
- implementation 'com.github.ben-manes.caffeine:caffeine:3.0.6'
- implementation 'org.apache.commons:commons-lang3:3.12.0'
+ /**
+ * Dependencies.
+ *
+ * Provided or classpath dependencies are not shaded and are available on the runtime classpath
+ *
+ * Shaded dependencies are not available at runtime, nor are they available on mvn central so they
+ * need to be shaded into the jar (increasing binary size)
+ *
+ * Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the
+ * plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare
+ * these dependencies if they are available on mvn central.
+ */
+ dependencies {
+ // Provided or Classpath
+ compileOnly 'org.projectlombok:lombok:1.18.24'
+ annotationProcessor 'org.projectlombok:lombok:1.18.24'
+
+ // Shaded
+ implementation 'com.dfsek:Paralithic:0.4.0'
+ implementation 'io.papermc:paperlib:1.0.5'
+ implementation "net.kyori:adventure-text-minimessage:4.13.1"
+ implementation 'net.kyori:adventure-platform-bukkit:4.3.0'
+ implementation 'net.kyori:adventure-api:4.13.1'
+ implementation 'io.lumine:Mythic-Dist:5.2.1'
+
+ // Dynamically Loaded
+ implementation 'io.timeandspace:smoothie-map:2.0.2'
+ implementation 'it.unimi.dsi:fastutil:8.5.8'
+ implementation 'com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2'
+ implementation 'org.zeroturnaround:zt-zip:1.14'
+ implementation 'com.google.code.gson:gson:2.9.0'
+ implementation 'org.ow2.asm:asm:9.2'
+ implementation 'com.google.guava:guava:31.1-jre'
+ implementation 'bsf:bsf:2.4.0'
+ implementation 'rhino:js:1.7R2'
+ implementation 'com.github.ben-manes.caffeine:caffeine:3.0.6'
+ implementation 'org.apache.commons:commons-lang3:3.12.0'
+ }
+
+ /**
+ * We need parameter meta for the decree command system
+ */
+ compileJava {
+ options.compilerArgs << '-parameters'
+ options.encoding = "UTF-8"
+ }
}
if (JavaVersion.current().toString() != "17") {
@@ -183,123 +311,11 @@ if (JavaVersion.current().toString() != "17") {
System.exit(69);
}
-def buildToolsJar = new File(buildDir, "buildtools/BuildTools.jar");
-def specialSourceJar = new File(buildDir, "specialsource/SpecialSource.jar");
-def buildToolsFolder = new File(buildDir, "buildtools");
-def specialSourceFolder = new File(buildDir, "specialsource");
-def buildToolsHint = new File(buildDir, "buildtools/craftbukkit-" + nmsVersion + ".jar");
-def outputShadeJar = new File(buildDir, "libs/Iris-" + version + "-all.jar");
-def ssiJar = new File(buildDir, "specialsource/Iris-" + version + "-all.jar");
-def ssobfJar = new File(buildDir, "specialsource/Iris-" + version + "-rmo.jar");
-def ssJar = new File(buildDir, "specialsource/Iris-" + version + "-rma.jar");
-def homePath = System.properties['user.home']
-def m2 = new File(homePath + "/.m2/repository")
-def m2s = m2.getAbsolutePath();
-
-// ======================== Building Mapped Jars =============================
-task downloadBuildtools(type: Download) {
- group "remapping"
- src 'https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar'
- dest buildToolsJar
- onlyIf {
- !buildToolsJar.exists()
- }
-}
-
-task downloadSpecialSource(type: Download) {
- group "remapping"
- src 'https://repo.maven.apache.org/maven2/net/md-5/SpecialSource/' + specialSourceVersion + '/SpecialSource-'+specialSourceVersion+'-shaded.jar'
- dest specialSourceJar
- onlyIf {
- !specialSourceJar.exists()
- }
-}
-
-task executeBuildTools(dependsOn: downloadBuildtools, type: JavaExec)
-{
- group "remapping"
- classpath = files(buildToolsJar)
- workingDir = buildToolsFolder
- args = [
- "--rev",
- nmsVersion,
- "--compile",
- "craftbukkit",
- "--remap"
- ]
- onlyIf {
- !buildToolsHint.exists()
- }
-}
-
-task copyBuildToSpecialSource(type: Copy)
-{
- group "remapping"
- from outputShadeJar
- into specialSourceFolder
- dependsOn(downloadSpecialSource, shadowJar)
-}
-
-task specialSourceRemapObfuscate(type: JavaExec)
-{
- group "remapping"
- dependsOn(copyBuildToSpecialSource, downloadSpecialSource, shadowJar)
- workingDir = specialSourceFolder
- classpath = files(specialSourceJar,
- new File(m2s + "/org/spigotmc/spigot/" + spigotJarVersion + "/spigot-" + spigotJarVersion + "-remapped-mojang.jar"))
- mainClass = "net.md_5.specialsource.SpecialSource"
- args = [
- "--live",
- "-i",
- ssiJar.getName(),
- "-o",
- ssobfJar.getName(),
- "-m",
- m2s + "/org/spigotmc/minecraft-server/" + spigotJarVersion + "/minecraft-server-" + spigotJarVersion + "-maps-mojang.txt",
- "--reverse",
- ]
-}
-
-task specialSourceRemap(type: JavaExec)
-{
- group "remapping"
- dependsOn(specialSourceRemapObfuscate)
- workingDir = specialSourceFolder
- classpath = files(specialSourceJar,
- new File(m2s + "/org/spigotmc/spigot/" + spigotJarVersion + "/spigot-" + spigotJarVersion + "-remapped-obf.jar"))
- mainClass = "net.md_5.specialsource.SpecialSource"
- args = [
- "--live",
- "-i",
- ssobfJar.getName(),
- "-o",
- ssJar.getName(),
- "-m",
- m2s + "/org/spigotmc/minecraft-server/" + spigotJarVersion + "/minecraft-server-" + spigotJarVersion + "-maps-spigot.csrg"
- ]
-}
-
-tasks.compileJava.dependsOn(executeBuildTools)
-
-compileJava {
- options.encoding = "UTF-8"
-}
-
-task setup()
-{
- group("iris")
- dependsOn(clean, executeBuildTools)
-}
-
-task iris(type: Copy)
-{
+task iris(type: Copy) {
group "iris"
- from ssJar
+ from new File(buildDir, "Iris-${version}.jar")
into buildDir
- rename { String fileName ->
- fileName.replace('Iris-' + version + '-rma.jar', "Iris-" + version + ".jar")
- }
- dependsOn(specialSourceRemap)
+ dependsOn(build)
}
def registerCustomOutputTask(name, path) {
@@ -335,3 +351,5 @@ def registerCustomOutputTaskUnix(name, path) {
}
}
}
+
+tasks.build.dependsOn(shadowJar)
\ No newline at end of file
diff --git a/core/build.gradle b/core/build.gradle
new file mode 100644
index 000000000..300825e97
--- /dev/null
+++ b/core/build.gradle
@@ -0,0 +1,84 @@
+/*
+ * 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 .
+ */
+
+plugins {
+ id 'java'
+ id 'java-library'
+ id "io.freefair.lombok" version "6.3.0"
+}
+
+def apiVersion = '1.19'
+def main = 'com.volmit.iris.Iris'
+
+/**
+ * We need parameter meta for the decree command system
+ */
+compileJava {
+ options.compilerArgs << '-parameters'
+ options.encoding = "UTF-8"
+}
+
+/**
+ * Dependencies.
+ *
+ * Provided or classpath dependencies are not shaded and are available on the runtime classpath
+ *
+ * Shaded dependencies are not available at runtime, nor are they available on mvn central so they
+ * need to be shaded into the jar (increasing binary size)
+ *
+ * Dynamically loaded dependencies are defined in the plugin.yml (updating these must be updated in the
+ * plugin.yml also, otherwise they wont be available). These do not increase binary size). Only declare
+ * these dependencies if they are available on mvn central.
+ */
+dependencies {
+ // Provided or Classpath
+ implementation 'org.spigotmc:spigot-api:1.20.1-R0.1-SNAPSHOT'
+ implementation 'org.apache.logging.log4j:log4j-api:2.19.0'
+ implementation 'org.apache.logging.log4j:log4j-core:2.19.0'
+ implementation 'commons-lang:commons-lang:2.6'
+ implementation 'com.github.oshi:oshi-core:5.8.5'
+
+ // Third Party Integrations
+ implementation 'com.ticxo.playeranimator:PlayerAnimator:R1.2.7'
+ implementation 'com.github.oraxen:oraxen:1.158.0'
+ implementation 'com.github.LoneDev6:api-itemsadder:3.4.1-r4'
+ implementation 'com.github.PlaceholderAPI:placeholderapi:2.11.3'
+ //implementation files('libs/CustomItems.jar')
+}
+
+
+/**
+ * Gradle is weird sometimes, we need to delete the plugin yml from the build folder to actually filter properly.
+ */
+file(jar.archiveFile.get().getAsFile().getParentFile().getParentFile().getParentFile().getAbsolutePath() + '/build/resources/main/plugin.yml').delete()
+
+/**
+ * Expand properties into plugin yml
+ */
+processResources {
+ filesMatching('**/plugin.yml') {
+ expand(
+ 'name': rootProject.name.toString(),
+ 'version': rootProject.version.toString(),
+ 'main': main.toString(),
+ 'apiversion': apiVersion.toString()
+ )
+ }
+}
+
+tasks.compileJava.dependsOn(delombok)
\ No newline at end of file
diff --git a/src/main/java/com/volmit/iris/Iris.java b/core/src/main/java/com/volmit/iris/Iris.java
similarity index 96%
rename from src/main/java/com/volmit/iris/Iris.java
rename to core/src/main/java/com/volmit/iris/Iris.java
index 77ddf343f..fd49641ec 100644
--- a/src/main/java/com/volmit/iris/Iris.java
+++ b/core/src/main/java/com/volmit/iris/Iris.java
@@ -28,7 +28,7 @@ import com.volmit.iris.core.link.MultiverseCoreLink;
import com.volmit.iris.core.link.MythicMobsLink;
import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.nms.INMS;
-import com.volmit.iris.core.nms.v20.NMSBinding1_20_1;
+import com.volmit.iris.core.nms.v1X.NMSBinding1X;
import com.volmit.iris.core.pregenerator.LazyPregenerator;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.core.tools.IrisToolbelt;
@@ -593,13 +593,13 @@ public class Iris extends VolmitPlugin implements Listener {
private boolean setupChecks() {
boolean passed = true;
Iris.info("Version Information: " + instance.getServer().getVersion() + " | " + instance.getServer().getBukkitVersion());
- if (!instance.getServer().getBukkitVersion().contains(NMSBinding1_20_1.NMS_VERSION)) {
+ if (INMS.get() instanceof NMSBinding1X) {
passed = false;
Iris.warn("============================================");
Iris.warn("=");
Iris.warn("=");
Iris.warn("=");
- Iris.warn("Iris is not compatible with this version of Minecraft.\nPlease use " + NMSBinding1_20_1.NMS_VERSION + " or use an older version of Iris.");
+ Iris.warn("Iris is not compatible with this version of Minecraft.");
Iris.warn("=");
Iris.warn("=");
Iris.warn("=");
diff --git a/src/main/java/com/volmit/iris/core/IrisSettings.java b/core/src/main/java/com/volmit/iris/core/IrisSettings.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/IrisSettings.java
rename to core/src/main/java/com/volmit/iris/core/IrisSettings.java
diff --git a/src/main/java/com/volmit/iris/core/ServerConfigurator.java b/core/src/main/java/com/volmit/iris/core/ServerConfigurator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/ServerConfigurator.java
rename to core/src/main/java/com/volmit/iris/core/ServerConfigurator.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandEdit.java b/core/src/main/java/com/volmit/iris/core/commands/CommandEdit.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandEdit.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandEdit.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandFind.java b/core/src/main/java/com/volmit/iris/core/commands/CommandFind.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandFind.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandFind.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandIris.java b/core/src/main/java/com/volmit/iris/core/commands/CommandIris.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandIris.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandIris.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java b/core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandJigsaw.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandObject.java b/core/src/main/java/com/volmit/iris/core/commands/CommandObject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandObject.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandObject.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandPregen.java b/core/src/main/java/com/volmit/iris/core/commands/CommandPregen.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandPregen.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandPregen.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandSettings.java b/core/src/main/java/com/volmit/iris/core/commands/CommandSettings.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandSettings.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandSettings.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandStudio.java b/core/src/main/java/com/volmit/iris/core/commands/CommandStudio.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandStudio.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandStudio.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandWhat.java b/core/src/main/java/com/volmit/iris/core/commands/CommandWhat.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandWhat.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandWhat.java
diff --git a/src/main/java/com/volmit/iris/core/commands/CommandWorldManager.java b/core/src/main/java/com/volmit/iris/core/commands/CommandWorldManager.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/commands/CommandWorldManager.java
rename to core/src/main/java/com/volmit/iris/core/commands/CommandWorldManager.java
diff --git a/src/main/java/com/volmit/iris/core/edit/BlockEditor.java b/core/src/main/java/com/volmit/iris/core/edit/BlockEditor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/edit/BlockEditor.java
rename to core/src/main/java/com/volmit/iris/core/edit/BlockEditor.java
diff --git a/src/main/java/com/volmit/iris/core/edit/BlockSignal.java b/core/src/main/java/com/volmit/iris/core/edit/BlockSignal.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/edit/BlockSignal.java
rename to core/src/main/java/com/volmit/iris/core/edit/BlockSignal.java
diff --git a/src/main/java/com/volmit/iris/core/edit/BukkitBlockEditor.java b/core/src/main/java/com/volmit/iris/core/edit/BukkitBlockEditor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/edit/BukkitBlockEditor.java
rename to core/src/main/java/com/volmit/iris/core/edit/BukkitBlockEditor.java
diff --git a/src/main/java/com/volmit/iris/core/edit/DustRevealer.java b/core/src/main/java/com/volmit/iris/core/edit/DustRevealer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/edit/DustRevealer.java
rename to core/src/main/java/com/volmit/iris/core/edit/DustRevealer.java
diff --git a/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java b/core/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/edit/JigsawEditor.java
rename to core/src/main/java/com/volmit/iris/core/edit/JigsawEditor.java
diff --git a/src/main/java/com/volmit/iris/core/events/IrisEngineEvent.java b/core/src/main/java/com/volmit/iris/core/events/IrisEngineEvent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/events/IrisEngineEvent.java
rename to core/src/main/java/com/volmit/iris/core/events/IrisEngineEvent.java
diff --git a/src/main/java/com/volmit/iris/core/events/IrisEngineHotloadEvent.java b/core/src/main/java/com/volmit/iris/core/events/IrisEngineHotloadEvent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/events/IrisEngineHotloadEvent.java
rename to core/src/main/java/com/volmit/iris/core/events/IrisEngineHotloadEvent.java
diff --git a/src/main/java/com/volmit/iris/core/gui/NoiseExplorerGUI.java b/core/src/main/java/com/volmit/iris/core/gui/NoiseExplorerGUI.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/gui/NoiseExplorerGUI.java
rename to core/src/main/java/com/volmit/iris/core/gui/NoiseExplorerGUI.java
diff --git a/src/main/java/com/volmit/iris/core/gui/PregeneratorJob.java b/core/src/main/java/com/volmit/iris/core/gui/PregeneratorJob.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/gui/PregeneratorJob.java
rename to core/src/main/java/com/volmit/iris/core/gui/PregeneratorJob.java
diff --git a/src/main/java/com/volmit/iris/core/gui/VisionGUI.java b/core/src/main/java/com/volmit/iris/core/gui/VisionGUI.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/gui/VisionGUI.java
rename to core/src/main/java/com/volmit/iris/core/gui/VisionGUI.java
diff --git a/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java b/core/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java
rename to core/src/main/java/com/volmit/iris/core/gui/components/IrisRenderer.java
diff --git a/src/main/java/com/volmit/iris/core/gui/components/RenderType.java b/core/src/main/java/com/volmit/iris/core/gui/components/RenderType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/gui/components/RenderType.java
rename to core/src/main/java/com/volmit/iris/core/gui/components/RenderType.java
diff --git a/src/main/java/com/volmit/iris/core/gui/components/Renderer.java b/core/src/main/java/com/volmit/iris/core/gui/components/Renderer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/gui/components/Renderer.java
rename to core/src/main/java/com/volmit/iris/core/gui/components/Renderer.java
diff --git a/src/main/java/com/volmit/iris/core/gui/components/TileRender.java b/core/src/main/java/com/volmit/iris/core/gui/components/TileRender.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/gui/components/TileRender.java
rename to core/src/main/java/com/volmit/iris/core/gui/components/TileRender.java
diff --git a/src/main/java/com/volmit/iris/core/link/CustomItemsDataProvider.java b/core/src/main/java/com/volmit/iris/core/link/CustomItemsDataProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/CustomItemsDataProvider.java
rename to core/src/main/java/com/volmit/iris/core/link/CustomItemsDataProvider.java
diff --git a/src/main/java/com/volmit/iris/core/link/ExternalDataProvider.java b/core/src/main/java/com/volmit/iris/core/link/ExternalDataProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/ExternalDataProvider.java
rename to core/src/main/java/com/volmit/iris/core/link/ExternalDataProvider.java
diff --git a/src/main/java/com/volmit/iris/core/link/Identifier.java b/core/src/main/java/com/volmit/iris/core/link/Identifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/Identifier.java
rename to core/src/main/java/com/volmit/iris/core/link/Identifier.java
diff --git a/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java b/core/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java
rename to core/src/main/java/com/volmit/iris/core/link/IrisPapiExpansion.java
diff --git a/src/main/java/com/volmit/iris/core/link/ItemAdderDataProvider.java b/core/src/main/java/com/volmit/iris/core/link/ItemAdderDataProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/ItemAdderDataProvider.java
rename to core/src/main/java/com/volmit/iris/core/link/ItemAdderDataProvider.java
diff --git a/src/main/java/com/volmit/iris/core/link/MultiverseCoreLink.java b/core/src/main/java/com/volmit/iris/core/link/MultiverseCoreLink.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/MultiverseCoreLink.java
rename to core/src/main/java/com/volmit/iris/core/link/MultiverseCoreLink.java
diff --git a/src/main/java/com/volmit/iris/core/link/MythicMobsLink.java b/core/src/main/java/com/volmit/iris/core/link/MythicMobsLink.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/MythicMobsLink.java
rename to core/src/main/java/com/volmit/iris/core/link/MythicMobsLink.java
diff --git a/src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java b/core/src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java
rename to core/src/main/java/com/volmit/iris/core/link/OraxenDataProvider.java
diff --git a/src/main/java/com/volmit/iris/core/link/WorldEditLink.java b/core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/link/WorldEditLink.java
rename to core/src/main/java/com/volmit/iris/core/link/WorldEditLink.java
diff --git a/src/main/java/com/volmit/iris/core/loader/ImageResourceLoader.java b/core/src/main/java/com/volmit/iris/core/loader/ImageResourceLoader.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/loader/ImageResourceLoader.java
rename to core/src/main/java/com/volmit/iris/core/loader/ImageResourceLoader.java
diff --git a/src/main/java/com/volmit/iris/core/loader/IrisData.java b/core/src/main/java/com/volmit/iris/core/loader/IrisData.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/loader/IrisData.java
rename to core/src/main/java/com/volmit/iris/core/loader/IrisData.java
diff --git a/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java b/core/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java
rename to core/src/main/java/com/volmit/iris/core/loader/IrisRegistrant.java
diff --git a/src/main/java/com/volmit/iris/core/loader/MatterObjectResourceLoader.java b/core/src/main/java/com/volmit/iris/core/loader/MatterObjectResourceLoader.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/loader/MatterObjectResourceLoader.java
rename to core/src/main/java/com/volmit/iris/core/loader/MatterObjectResourceLoader.java
diff --git a/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java b/core/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java
rename to core/src/main/java/com/volmit/iris/core/loader/ObjectResourceLoader.java
diff --git a/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java b/core/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/loader/ResourceLoader.java
rename to core/src/main/java/com/volmit/iris/core/loader/ResourceLoader.java
diff --git a/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java b/core/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java
rename to core/src/main/java/com/volmit/iris/core/loader/ScriptResourceLoader.java
diff --git a/src/main/java/com/volmit/iris/core/nms/BiomeBaseInjector.java b/core/src/main/java/com/volmit/iris/core/nms/BiomeBaseInjector.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/nms/BiomeBaseInjector.java
rename to core/src/main/java/com/volmit/iris/core/nms/BiomeBaseInjector.java
diff --git a/src/main/java/com/volmit/iris/core/nms/INMS.java b/core/src/main/java/com/volmit/iris/core/nms/INMS.java
similarity index 77%
rename from src/main/java/com/volmit/iris/core/nms/INMS.java
rename to core/src/main/java/com/volmit/iris/core/nms/INMS.java
index 2274aa23b..dcb5e8dce 100644
--- a/src/main/java/com/volmit/iris/core/nms/INMS.java
+++ b/core/src/main/java/com/volmit/iris/core/nms/INMS.java
@@ -1,77 +1,74 @@
-/*
- * Iris is a World Generator for Minecraft Bukkit Servers
- * Copyright (c) 2022 Arcane Arts (Volmit Software)
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-
-package com.volmit.iris.core.nms;
-
-import com.volmit.iris.Iris;
-import com.volmit.iris.core.IrisSettings;
-import com.volmit.iris.core.nms.v20.NMSBinding1_20_1;
-import com.volmit.iris.core.nms.v1X.NMSBinding1X;
-import com.volmit.iris.util.collection.KMap;
-import org.bukkit.Bukkit;
-
-public class INMS {
- //@builder
- private static final KMap> bindings = new KMap>()
- .qput("v1_20_R1", NMSBinding1_20_1.class);
- //@done
- private static final INMSBinding binding = bind();
-
- public static INMSBinding get() {
- return binding;
- }
-
- public static String getNMSTag() {
- if (IrisSettings.get().getGeneral().isDisableNMS()) {
- return "BUKKIT";
- }
-
- try {
- return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
- } catch (Throwable e) {
- Iris.reportError(e);
- Iris.error("Failed to determine server nms version!");
- e.printStackTrace();
- }
-
- return "BUKKIT";
- }
-
- private static INMSBinding bind() {
- String code = getNMSTag();
- Iris.info("Locating NMS Binding for " + code);
-
- if (bindings.containsKey(code)) {
- try {
- INMSBinding b = bindings.get(code).getConstructor().newInstance();
- Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound");
-
- return b;
- } catch (Throwable e) {
- Iris.reportError(e);
- e.printStackTrace();
- }
- }
-
- Iris.info("Craftbukkit " + code + " <-> " + NMSBinding1X.class.getSimpleName() + " Successfully Bound");
- Iris.warn("Note: Some features of Iris may not work the same since you are on an unsupported version of Minecraft.");
- Iris.warn("Note: If this is a new version, expect an update soon.");
-
- return new NMSBinding1X();
- }
-}
+/*
+ * Iris is a World Generator for Minecraft Bukkit Servers
+ * Copyright (c) 2022 Arcane Arts (Volmit Software)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.volmit.iris.core.nms;
+
+import com.volmit.iris.Iris;
+import com.volmit.iris.core.IrisSettings;
+import com.volmit.iris.core.nms.v1X.NMSBinding1X;
+import org.bukkit.Bukkit;
+
+public class INMS {
+ //@done
+ private static final INMSBinding binding = bind();
+
+ public static INMSBinding get() {
+ return binding;
+ }
+
+ public static String getNMSTag() {
+ if (IrisSettings.get().getGeneral().isDisableNMS()) {
+ return "BUKKIT";
+ }
+
+ try {
+ return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
+ } catch (Throwable e) {
+ Iris.reportError(e);
+ Iris.error("Failed to determine server nms version!");
+ e.printStackTrace();
+ }
+
+ return "BUKKIT";
+ }
+
+ private static INMSBinding bind() {
+ String code = getNMSTag();
+ Iris.info("Locating NMS Binding for " + code);
+
+ try {
+ Class> clazz = Class.forName("com.volmit.iris.core.nms."+code+".NMSBinding");
+ try {
+ Object b = clazz.getConstructor().newInstance();
+ if (b instanceof INMSBinding binding) {
+ Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound");
+ return binding;
+ }
+ } catch (Throwable e) {
+ Iris.reportError(e);
+ e.printStackTrace();
+ }
+ } catch (ClassNotFoundException|NoClassDefFoundError classNotFoundException) {}
+
+ Iris.info("Craftbukkit " + code + " <-> " + NMSBinding1X.class.getSimpleName() + " Successfully Bound");
+ Iris.warn("Note: Some features of Iris may not work the same since you are on an unsupported version of Minecraft.");
+ Iris.warn("Note: If this is a new version, expect an update soon.");
+
+ return new NMSBinding1X();
+ }
+}
diff --git a/src/main/java/com/volmit/iris/core/nms/INMSBinding.java b/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java
similarity index 84%
rename from src/main/java/com/volmit/iris/core/nms/INMSBinding.java
rename to core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java
index 0f8f0e44a..e9aa61605 100644
--- a/src/main/java/com/volmit/iris/core/nms/INMSBinding.java
+++ b/core/src/main/java/com/volmit/iris/core/nms/INMSBinding.java
@@ -18,6 +18,8 @@
package com.volmit.iris.core.nms;
+import com.volmit.iris.engine.framework.Engine;
+import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.mantle.Mantle;
import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer;
import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess;
@@ -27,8 +29,10 @@ import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.WorldCreator;
import org.bukkit.block.Biome;
+import org.bukkit.entity.Dolphin;
import org.bukkit.entity.Entity;
import org.bukkit.generator.ChunkGenerator;
+import org.bukkit.inventory.ItemStack;
public interface INMSBinding {
boolean hasTile(Location l);
@@ -90,4 +94,10 @@ public interface INMSBinding {
MCAPaletteAccess createPalette();
void injectBiomesFromMantle(Chunk e, Mantle mantle);
+
+ ItemStack applyCustomNbt(ItemStack itemStack, KMap customNbt) throws IllegalArgumentException;
+
+ void setTreasurePos(Dolphin dolphin, com.volmit.iris.core.nms.container.BlockPos pos);
+
+ void inject(long seed, Engine engine, World world) throws NoSuchFieldException, IllegalAccessException;
}
diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/BlockPos.java b/core/src/main/java/com/volmit/iris/core/nms/container/BlockPos.java
new file mode 100644
index 000000000..80a496be7
--- /dev/null
+++ b/core/src/main/java/com/volmit/iris/core/nms/container/BlockPos.java
@@ -0,0 +1,14 @@
+package com.volmit.iris.core.nms.container;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BlockPos {
+ private int x;
+ private int y;
+ private int z;
+}
diff --git a/core/src/main/java/com/volmit/iris/core/nms/container/Pair.java b/core/src/main/java/com/volmit/iris/core/nms/container/Pair.java
new file mode 100644
index 000000000..140bf0200
--- /dev/null
+++ b/core/src/main/java/com/volmit/iris/core/nms/container/Pair.java
@@ -0,0 +1,13 @@
+package com.volmit.iris.core.nms.container;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Pair {
+ private A a;
+ private B b;
+}
diff --git a/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java b/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java
similarity index 88%
rename from src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java
rename to core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java
index c874b5db5..afd6f9bbc 100644
--- a/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java
+++ b/core/src/main/java/com/volmit/iris/core/nms/v1X/NMSBinding1X.java
@@ -20,6 +20,9 @@ package com.volmit.iris.core.nms.v1X;
import com.volmit.iris.Iris;
import com.volmit.iris.core.nms.INMSBinding;
+import com.volmit.iris.core.nms.container.BlockPos;
+import com.volmit.iris.engine.framework.Engine;
+import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.mantle.Mantle;
import com.volmit.iris.util.nbt.mca.palette.MCABiomeContainer;
import com.volmit.iris.util.nbt.mca.palette.MCAPaletteAccess;
@@ -28,8 +31,10 @@ import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Biome;
+import org.bukkit.entity.Dolphin;
import org.bukkit.entity.Entity;
import org.bukkit.generator.ChunkGenerator;
+import org.bukkit.inventory.ItemStack;
public class NMSBinding1X implements INMSBinding {
private static final boolean supportsCustomHeight = testCustomHeight();
@@ -64,6 +69,21 @@ public class NMSBinding1X implements INMSBinding {
}
+ @Override
+ public ItemStack applyCustomNbt(ItemStack itemStack, KMap customNbt) throws IllegalArgumentException {
+ return itemStack;
+ }
+
+ @Override
+ public void setTreasurePos(Dolphin dolphin, BlockPos pos) {
+
+ }
+
+ @Override
+ public void inject(long seed, Engine engine, World world) throws NoSuchFieldException, IllegalAccessException {
+
+ }
+
@Override
public void deserializeTile(CompoundTag s, Location newPosition) {
diff --git a/src/main/java/com/volmit/iris/core/pack/IrisPack.java b/core/src/main/java/com/volmit/iris/core/pack/IrisPack.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pack/IrisPack.java
rename to core/src/main/java/com/volmit/iris/core/pack/IrisPack.java
diff --git a/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java b/core/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java
rename to core/src/main/java/com/volmit/iris/core/pack/IrisPackRepository.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java b/core/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/IrisPregenerator.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/LazyPregenerator.java b/core/src/main/java/com/volmit/iris/core/pregenerator/LazyPregenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/LazyPregenerator.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/LazyPregenerator.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/PregenListener.java b/core/src/main/java/com/volmit/iris/core/pregenerator/PregenListener.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/PregenListener.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/PregenListener.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java b/core/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/PregenTask.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java b/core/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/PregeneratorMethod.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java b/core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncOrMedievalPregenMethod.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java b/core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java b/core/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/methods/DummyPregenMethod.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java b/core/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/methods/HybridPregenMethod.java
diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java b/core/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java
rename to core/src/main/java/com/volmit/iris/core/pregenerator/methods/MedievalPregenMethod.java
diff --git a/src/main/java/com/volmit/iris/core/project/IrisProject.java b/core/src/main/java/com/volmit/iris/core/project/IrisProject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/project/IrisProject.java
rename to core/src/main/java/com/volmit/iris/core/project/IrisProject.java
diff --git a/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java b/core/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/project/SchemaBuilder.java
rename to core/src/main/java/com/volmit/iris/core/project/SchemaBuilder.java
diff --git a/src/main/java/com/volmit/iris/core/report/Report.java b/core/src/main/java/com/volmit/iris/core/report/Report.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/report/Report.java
rename to core/src/main/java/com/volmit/iris/core/report/Report.java
diff --git a/src/main/java/com/volmit/iris/core/report/ReportType.java b/core/src/main/java/com/volmit/iris/core/report/ReportType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/report/ReportType.java
rename to core/src/main/java/com/volmit/iris/core/report/ReportType.java
diff --git a/src/main/java/com/volmit/iris/core/service/BoardSVC.java b/core/src/main/java/com/volmit/iris/core/service/BoardSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/BoardSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/BoardSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/CommandSVC.java b/core/src/main/java/com/volmit/iris/core/service/CommandSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/CommandSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/CommandSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/ConversionSVC.java b/core/src/main/java/com/volmit/iris/core/service/ConversionSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/ConversionSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/ConversionSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/DolphinSVC.java b/core/src/main/java/com/volmit/iris/core/service/DolphinSVC.java
similarity index 91%
rename from src/main/java/com/volmit/iris/core/service/DolphinSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/DolphinSVC.java
index a076b01a7..0f4aa53dc 100644
--- a/src/main/java/com/volmit/iris/core/service/DolphinSVC.java
+++ b/core/src/main/java/com/volmit/iris/core/service/DolphinSVC.java
@@ -18,6 +18,8 @@
package com.volmit.iris.core.service;
+import com.volmit.iris.core.nms.INMS;
+import com.volmit.iris.core.nms.container.BlockPos;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.util.documentation.ChunkCoordinates;
@@ -25,11 +27,9 @@ import com.volmit.iris.util.function.Consumer4;
import com.volmit.iris.util.math.Spiraler;
import com.volmit.iris.util.matter.MatterStructurePOI;
import com.volmit.iris.util.plugin.IrisService;
-import net.minecraft.core.BlockPos;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.SoundCategory;
-import org.bukkit.craftbukkit.v1_20_R1.entity.CraftDolphin;
import org.bukkit.entity.Dolphin;
import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
@@ -62,10 +62,8 @@ public class DolphinSVC implements IrisService {
searchNearestTreasure(e, event.getPlayer().getLocation().getBlockX() >> 4, event.getPlayer().getLocation().getBlockZ() >> 4, e.getMantle().getRadius() - 1, StructureType.BURIED_TREASURE, (x, y, z, p) -> {
event.setCancelled(true);
Dolphin d = (Dolphin) event.getRightClicked();
- CraftDolphin cd = (CraftDolphin) d;
+ INMS.get().setTreasurePos(d, new BlockPos(x, y, z));
d.getWorld().playSound(d, Sound.ENTITY_DOLPHIN_EAT, SoundCategory.NEUTRAL, 1, 1);
- cd.getHandle().setTreasurePos(new BlockPos(x, y, z));
- cd.getHandle().setGotFish(true);
});
}
diff --git a/src/main/java/com/volmit/iris/core/service/EditSVC.java b/core/src/main/java/com/volmit/iris/core/service/EditSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/EditSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/EditSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java b/core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/LogFilterSVC.java b/core/src/main/java/com/volmit/iris/core/service/LogFilterSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/LogFilterSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/LogFilterSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/ObjectSVC.java b/core/src/main/java/com/volmit/iris/core/service/ObjectSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/ObjectSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/ObjectSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/PreservationSVC.java b/core/src/main/java/com/volmit/iris/core/service/PreservationSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/PreservationSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/PreservationSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/StudioSVC.java b/core/src/main/java/com/volmit/iris/core/service/StudioSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/StudioSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/StudioSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/TreeSVC.java b/core/src/main/java/com/volmit/iris/core/service/TreeSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/TreeSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/TreeSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/VillageSVC.java b/core/src/main/java/com/volmit/iris/core/service/VillageSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/VillageSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/VillageSVC.java
diff --git a/src/main/java/com/volmit/iris/core/service/WandSVC.java b/core/src/main/java/com/volmit/iris/core/service/WandSVC.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/service/WandSVC.java
rename to core/src/main/java/com/volmit/iris/core/service/WandSVC.java
diff --git a/src/main/java/com/volmit/iris/core/tools/IrisBenchmarking.java b/core/src/main/java/com/volmit/iris/core/tools/IrisBenchmarking.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/tools/IrisBenchmarking.java
rename to core/src/main/java/com/volmit/iris/core/tools/IrisBenchmarking.java
diff --git a/src/main/java/com/volmit/iris/core/tools/IrisCreator.java b/core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/tools/IrisCreator.java
rename to core/src/main/java/com/volmit/iris/core/tools/IrisCreator.java
diff --git a/src/main/java/com/volmit/iris/core/tools/IrisReflectiveAPI.java b/core/src/main/java/com/volmit/iris/core/tools/IrisReflectiveAPI.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/tools/IrisReflectiveAPI.java
rename to core/src/main/java/com/volmit/iris/core/tools/IrisReflectiveAPI.java
diff --git a/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java b/core/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java
rename to core/src/main/java/com/volmit/iris/core/tools/IrisToolbelt.java
diff --git a/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java b/core/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java
rename to core/src/main/java/com/volmit/iris/core/tools/IrisWorldCreator.java
diff --git a/src/main/java/com/volmit/iris/core/wand/WandSelection.java b/core/src/main/java/com/volmit/iris/core/wand/WandSelection.java
similarity index 100%
rename from src/main/java/com/volmit/iris/core/wand/WandSelection.java
rename to core/src/main/java/com/volmit/iris/core/wand/WandSelection.java
diff --git a/src/main/java/com/volmit/iris/engine/EnginePanic.java b/core/src/main/java/com/volmit/iris/engine/EnginePanic.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/EnginePanic.java
rename to core/src/main/java/com/volmit/iris/engine/EnginePanic.java
diff --git a/src/main/java/com/volmit/iris/engine/IrisComplex.java b/core/src/main/java/com/volmit/iris/engine/IrisComplex.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/IrisComplex.java
rename to core/src/main/java/com/volmit/iris/engine/IrisComplex.java
diff --git a/src/main/java/com/volmit/iris/engine/IrisEngine.java b/core/src/main/java/com/volmit/iris/engine/IrisEngine.java
similarity index 96%
rename from src/main/java/com/volmit/iris/engine/IrisEngine.java
rename to core/src/main/java/com/volmit/iris/engine/IrisEngine.java
index 7b6c1850b..ff9d712c3 100644
--- a/src/main/java/com/volmit/iris/engine/IrisEngine.java
+++ b/core/src/main/java/com/volmit/iris/engine/IrisEngine.java
@@ -24,6 +24,8 @@ import com.volmit.iris.Iris;
import com.volmit.iris.core.ServerConfigurator;
import com.volmit.iris.core.events.IrisEngineHotloadEvent;
import com.volmit.iris.core.gui.PregeneratorJob;
+import com.volmit.iris.core.nms.container.BlockPos;
+import com.volmit.iris.core.nms.container.Pair;
import com.volmit.iris.core.project.IrisProject;
import com.volmit.iris.core.service.PreservationSVC;
import com.volmit.iris.engine.data.cache.AtomicCache;
@@ -48,12 +50,10 @@ import com.volmit.iris.util.scheduling.ChronoLatch;
import com.volmit.iris.util.scheduling.J;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import lombok.Data;
-import net.minecraft.core.BlockPos;
import org.bukkit.Material;
import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData;
import org.bukkit.command.CommandSender;
-import oshi.util.tuples.Pair;
import java.io.File;
import java.io.IOException;
diff --git a/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java b/core/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/IrisEngineEffects.java
rename to core/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java
diff --git a/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java b/core/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/IrisEngineMantle.java
rename to core/src/main/java/com/volmit/iris/engine/IrisEngineMantle.java
diff --git a/src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java b/core/src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java
rename to core/src/main/java/com/volmit/iris/engine/IrisExecutionEnvironment.java
diff --git a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/core/src/main/java/com/volmit/iris/engine/IrisWorldManager.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/IrisWorldManager.java
rename to core/src/main/java/com/volmit/iris/engine/IrisWorldManager.java
diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java b/core/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java
rename to core/src/main/java/com/volmit/iris/engine/actuator/IrisBiomeActuator.java
diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java b/core/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java
rename to core/src/main/java/com/volmit/iris/engine/actuator/IrisDecorantActuator.java
diff --git a/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java b/core/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java
rename to core/src/main/java/com/volmit/iris/engine/actuator/IrisTerrainNormalActuator.java
diff --git a/src/main/java/com/volmit/iris/engine/data/cache/AtomicCache.java b/core/src/main/java/com/volmit/iris/engine/data/cache/AtomicCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/cache/AtomicCache.java
rename to core/src/main/java/com/volmit/iris/engine/data/cache/AtomicCache.java
diff --git a/src/main/java/com/volmit/iris/engine/data/cache/Cache.java b/core/src/main/java/com/volmit/iris/engine/data/cache/Cache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/cache/Cache.java
rename to core/src/main/java/com/volmit/iris/engine/data/cache/Cache.java
diff --git a/src/main/java/com/volmit/iris/engine/data/cache/Multicache.java b/core/src/main/java/com/volmit/iris/engine/data/cache/Multicache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/cache/Multicache.java
rename to core/src/main/java/com/volmit/iris/engine/data/cache/Multicache.java
diff --git a/src/main/java/com/volmit/iris/engine/data/chunk/LinkedTerrainChunk.java b/core/src/main/java/com/volmit/iris/engine/data/chunk/LinkedTerrainChunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/chunk/LinkedTerrainChunk.java
rename to core/src/main/java/com/volmit/iris/engine/data/chunk/LinkedTerrainChunk.java
diff --git a/src/main/java/com/volmit/iris/engine/data/chunk/MCATerrainChunk.java b/core/src/main/java/com/volmit/iris/engine/data/chunk/MCATerrainChunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/chunk/MCATerrainChunk.java
rename to core/src/main/java/com/volmit/iris/engine/data/chunk/MCATerrainChunk.java
diff --git a/src/main/java/com/volmit/iris/engine/data/chunk/TerrainChunk.java b/core/src/main/java/com/volmit/iris/engine/data/chunk/TerrainChunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/chunk/TerrainChunk.java
rename to core/src/main/java/com/volmit/iris/engine/data/chunk/TerrainChunk.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/Deserializer.java b/core/src/main/java/com/volmit/iris/engine/data/io/Deserializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/Deserializer.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/Deserializer.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/ExceptionBiFunction.java b/core/src/main/java/com/volmit/iris/engine/data/io/ExceptionBiFunction.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/ExceptionBiFunction.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/ExceptionBiFunction.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/ExceptionTriConsumer.java b/core/src/main/java/com/volmit/iris/engine/data/io/ExceptionTriConsumer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/ExceptionTriConsumer.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/ExceptionTriConsumer.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/MaxDepthIO.java b/core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthIO.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/MaxDepthIO.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthIO.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/MaxDepthReachedException.java b/core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthReachedException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/MaxDepthReachedException.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/MaxDepthReachedException.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/Serializer.java b/core/src/main/java/com/volmit/iris/engine/data/io/Serializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/Serializer.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/Serializer.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/StringDeserializer.java b/core/src/main/java/com/volmit/iris/engine/data/io/StringDeserializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/StringDeserializer.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/StringDeserializer.java
diff --git a/src/main/java/com/volmit/iris/engine/data/io/StringSerializer.java b/core/src/main/java/com/volmit/iris/engine/data/io/StringSerializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/data/io/StringSerializer.java
rename to core/src/main/java/com/volmit/iris/engine/data/io/StringSerializer.java
diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java b/core/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/decorator/IrisCeilingDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisEngineDecorator.java b/core/src/main/java/com/volmit/iris/engine/decorator/IrisEngineDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/decorator/IrisEngineDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/decorator/IrisEngineDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisSeaFloorDecorator.java b/core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaFloorDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/decorator/IrisSeaFloorDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaFloorDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisSeaSurfaceDecorator.java b/core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaSurfaceDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/decorator/IrisSeaSurfaceDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/decorator/IrisSeaSurfaceDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisShoreLineDecorator.java b/core/src/main/java/com/volmit/iris/engine/decorator/IrisShoreLineDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/decorator/IrisShoreLineDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/decorator/IrisShoreLineDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java b/core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/decorator/IrisSurfaceDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/BlockUpdater.java b/core/src/main/java/com/volmit/iris/engine/framework/BlockUpdater.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/BlockUpdater.java
rename to core/src/main/java/com/volmit/iris/engine/framework/BlockUpdater.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/Engine.java b/core/src/main/java/com/volmit/iris/engine/framework/Engine.java
similarity index 99%
rename from src/main/java/com/volmit/iris/engine/framework/Engine.java
rename to core/src/main/java/com/volmit/iris/engine/framework/Engine.java
index 35fec78cc..11249b1f6 100644
--- a/src/main/java/com/volmit/iris/engine/framework/Engine.java
+++ b/core/src/main/java/com/volmit/iris/engine/framework/Engine.java
@@ -24,6 +24,8 @@ import com.volmit.iris.core.gui.components.RenderType;
import com.volmit.iris.core.gui.components.Renderer;
import com.volmit.iris.core.loader.IrisData;
import com.volmit.iris.core.loader.IrisRegistrant;
+import com.volmit.iris.core.nms.container.BlockPos;
+import com.volmit.iris.core.nms.container.Pair;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.data.cache.Cache;
import com.volmit.iris.engine.data.chunk.TerrainChunk;
@@ -57,7 +59,6 @@ import com.volmit.iris.util.scheduling.J;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import com.volmit.iris.util.stream.ProceduralStream;
import io.papermc.lib.PaperLib;
-import net.minecraft.core.BlockPos;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.Location;
@@ -71,7 +72,6 @@ import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
-import oshi.util.tuples.Pair;
import java.awt.*;
import java.util.Arrays;
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineActuator.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineActuator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineActuator.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineActuator.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedActuator.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedActuator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineAssignedActuator.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedActuator.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedBiModifier.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedBiModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineAssignedBiModifier.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedBiModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedComponent.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineAssignedComponent.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineAssignedWorldManager.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineBiModifier.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineBiModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineBiModifier.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineBiModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineComponent.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineData.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineData.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineData.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineData.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineDecorator.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineEffects.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineEffects.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineEffects.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineEffects.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineMetrics.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineMetrics.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineMetrics.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineMetrics.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineMode.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineMode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineMode.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineMode.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineModifier.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineModifier.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EnginePlayer.java b/core/src/main/java/com/volmit/iris/engine/framework/EnginePlayer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EnginePlayer.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EnginePlayer.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineStage.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineStage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineStage.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineStage.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineTarget.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineTarget.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/EngineWorldManager.java b/core/src/main/java/com/volmit/iris/engine/framework/EngineWorldManager.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/EngineWorldManager.java
rename to core/src/main/java/com/volmit/iris/engine/framework/EngineWorldManager.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/Fallible.java b/core/src/main/java/com/volmit/iris/engine/framework/Fallible.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/Fallible.java
rename to core/src/main/java/com/volmit/iris/engine/framework/Fallible.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/Hotloadable.java b/core/src/main/java/com/volmit/iris/engine/framework/Hotloadable.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/Hotloadable.java
rename to core/src/main/java/com/volmit/iris/engine/framework/Hotloadable.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/IrisEngineMode.java b/core/src/main/java/com/volmit/iris/engine/framework/IrisEngineMode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/IrisEngineMode.java
rename to core/src/main/java/com/volmit/iris/engine/framework/IrisEngineMode.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/IrisLootEvent.java b/core/src/main/java/com/volmit/iris/engine/framework/IrisLootEvent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/IrisLootEvent.java
rename to core/src/main/java/com/volmit/iris/engine/framework/IrisLootEvent.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/Locator.java b/core/src/main/java/com/volmit/iris/engine/framework/Locator.java
similarity index 98%
rename from src/main/java/com/volmit/iris/engine/framework/Locator.java
rename to core/src/main/java/com/volmit/iris/engine/framework/Locator.java
index 8e57298f5..8dc597605 100644
--- a/src/main/java/com/volmit/iris/engine/framework/Locator.java
+++ b/core/src/main/java/com/volmit/iris/engine/framework/Locator.java
@@ -19,6 +19,8 @@
package com.volmit.iris.engine.framework;
import com.volmit.iris.core.IrisSettings;
+import com.volmit.iris.core.nms.container.BlockPos;
+import com.volmit.iris.core.nms.container.Pair;
import com.volmit.iris.core.tools.IrisToolbelt;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisJigsawStructure;
@@ -36,10 +38,8 @@ import com.volmit.iris.util.plugin.VolmitSender;
import com.volmit.iris.util.scheduling.J;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import com.volmit.iris.util.scheduling.jobs.SingleJob;
-import net.minecraft.core.BlockPos;
import org.bukkit.Location;
import org.bukkit.entity.Player;
-import oshi.util.tuples.Pair;
import java.util.Set;
import java.util.concurrent.ExecutionException;
diff --git a/src/main/java/com/volmit/iris/engine/framework/LocatorCanceller.java b/core/src/main/java/com/volmit/iris/engine/framework/LocatorCanceller.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/LocatorCanceller.java
rename to core/src/main/java/com/volmit/iris/engine/framework/LocatorCanceller.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/LootProvider.java b/core/src/main/java/com/volmit/iris/engine/framework/LootProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/LootProvider.java
rename to core/src/main/java/com/volmit/iris/engine/framework/LootProvider.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/MeteredCache.java b/core/src/main/java/com/volmit/iris/engine/framework/MeteredCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/MeteredCache.java
rename to core/src/main/java/com/volmit/iris/engine/framework/MeteredCache.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/PlacedObject.java b/core/src/main/java/com/volmit/iris/engine/framework/PlacedObject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/PlacedObject.java
rename to core/src/main/java/com/volmit/iris/engine/framework/PlacedObject.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/PregeneratedData.java b/core/src/main/java/com/volmit/iris/engine/framework/PregeneratedData.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/PregeneratedData.java
rename to core/src/main/java/com/volmit/iris/engine/framework/PregeneratedData.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/SeedManager.java b/core/src/main/java/com/volmit/iris/engine/framework/SeedManager.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/SeedManager.java
rename to core/src/main/java/com/volmit/iris/engine/framework/SeedManager.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/Staged.java b/core/src/main/java/com/volmit/iris/engine/framework/Staged.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/Staged.java
rename to core/src/main/java/com/volmit/iris/engine/framework/Staged.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/WrongEngineBroException.java b/core/src/main/java/com/volmit/iris/engine/framework/WrongEngineBroException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/WrongEngineBroException.java
rename to core/src/main/java/com/volmit/iris/engine/framework/WrongEngineBroException.java
diff --git a/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java b/core/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java
rename to core/src/main/java/com/volmit/iris/engine/framework/placer/HeightmapObjectPlacer.java
diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java b/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java
rename to core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedPiece.java
diff --git a/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java b/core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java
rename to core/src/main/java/com/volmit/iris/engine/jigsaw/PlannedStructure.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java b/core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/EngineMantle.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/IrisMantleComponent.java b/core/src/main/java/com/volmit/iris/engine/mantle/IrisMantleComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/IrisMantleComponent.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/IrisMantleComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java b/core/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/MantleComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/MantleSized.java b/core/src/main/java/com/volmit/iris/engine/mantle/MantleSized.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/MantleSized.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/MantleSized.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java b/core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/MantleWriter.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/components/MantleCarvingComponent.java b/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleCarvingComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/components/MantleCarvingComponent.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/components/MantleCarvingComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/components/MantleFluidBodyComponent.java b/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleFluidBodyComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/components/MantleFluidBodyComponent.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/components/MantleFluidBodyComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java b/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/components/MantleJigsawComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java b/core/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java
rename to core/src/main/java/com/volmit/iris/engine/mantle/components/MantleObjectComponent.java
diff --git a/src/main/java/com/volmit/iris/engine/mode/ModeEnclosure.java b/core/src/main/java/com/volmit/iris/engine/mode/ModeEnclosure.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mode/ModeEnclosure.java
rename to core/src/main/java/com/volmit/iris/engine/mode/ModeEnclosure.java
diff --git a/src/main/java/com/volmit/iris/engine/mode/ModeIslands.java b/core/src/main/java/com/volmit/iris/engine/mode/ModeIslands.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mode/ModeIslands.java
rename to core/src/main/java/com/volmit/iris/engine/mode/ModeIslands.java
diff --git a/src/main/java/com/volmit/iris/engine/mode/ModeOverworld.java b/core/src/main/java/com/volmit/iris/engine/mode/ModeOverworld.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mode/ModeOverworld.java
rename to core/src/main/java/com/volmit/iris/engine/mode/ModeOverworld.java
diff --git a/src/main/java/com/volmit/iris/engine/mode/ModeSuperFlat.java b/core/src/main/java/com/volmit/iris/engine/mode/ModeSuperFlat.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/mode/ModeSuperFlat.java
rename to core/src/main/java/com/volmit/iris/engine/mode/ModeSuperFlat.java
diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java b/core/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java
rename to core/src/main/java/com/volmit/iris/engine/modifier/IrisCarveModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java b/core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java
rename to core/src/main/java/com/volmit/iris/engine/modifier/IrisDepositModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisPerfectionModifier.java b/core/src/main/java/com/volmit/iris/engine/modifier/IrisPerfectionModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/modifier/IrisPerfectionModifier.java
rename to core/src/main/java/com/volmit/iris/engine/modifier/IrisPerfectionModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java b/core/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java
rename to core/src/main/java/com/volmit/iris/engine/modifier/IrisPostModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/object/CarveResult.java b/core/src/main/java/com/volmit/iris/engine/object/CarveResult.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/CarveResult.java
rename to core/src/main/java/com/volmit/iris/engine/object/CarveResult.java
diff --git a/src/main/java/com/volmit/iris/engine/object/CarvingMode.java b/core/src/main/java/com/volmit/iris/engine/object/CarvingMode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/CarvingMode.java
rename to core/src/main/java/com/volmit/iris/engine/object/CarvingMode.java
diff --git a/src/main/java/com/volmit/iris/engine/object/CaveResult.java b/core/src/main/java/com/volmit/iris/engine/object/CaveResult.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/CaveResult.java
rename to core/src/main/java/com/volmit/iris/engine/object/CaveResult.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IObjectPlacer.java b/core/src/main/java/com/volmit/iris/engine/object/IObjectPlacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IObjectPlacer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IObjectPlacer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IPostBlockAccess.java b/core/src/main/java/com/volmit/iris/engine/object/IPostBlockAccess.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IPostBlockAccess.java
rename to core/src/main/java/com/volmit/iris/engine/object/IPostBlockAccess.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IRare.java b/core/src/main/java/com/volmit/iris/engine/object/IRare.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IRare.java
rename to core/src/main/java/com/volmit/iris/engine/object/IRare.java
diff --git a/src/main/java/com/volmit/iris/engine/object/InferredType.java b/core/src/main/java/com/volmit/iris/engine/object/InferredType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/InferredType.java
rename to core/src/main/java/com/volmit/iris/engine/object/InferredType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/InventorySlotType.java b/core/src/main/java/com/volmit/iris/engine/object/InventorySlotType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/InventorySlotType.java
rename to core/src/main/java/com/volmit/iris/engine/object/InventorySlotType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisAttributeModifier.java b/core/src/main/java/com/volmit/iris/engine/object/IrisAttributeModifier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisAttributeModifier.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisAttributeModifier.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisAxisRotationClamp.java b/core/src/main/java/com/volmit/iris/engine/object/IrisAxisRotationClamp.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisAxisRotationClamp.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisAxisRotationClamp.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiome.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiome.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiome.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiome.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustom.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomCategory.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomCategory.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomCategory.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomCategory.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomParticle.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomParticle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomParticle.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomParticle.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomPrecipType.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomPrecipType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomPrecipType.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomPrecipType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawn.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawn.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawn.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawn.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawnType.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawnType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawnType.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomeCustomSpawnType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomeGeneratorLink.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomeGeneratorLink.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomeGeneratorLink.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomeGeneratorLink.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBiomePaletteLayer.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBiomePaletteLayer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBiomePaletteLayer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBiomePaletteLayer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBlockData.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBlockData.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBlockData.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBlockData.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisBlockDrops.java b/core/src/main/java/com/volmit/iris/engine/object/IrisBlockDrops.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisBlockDrops.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisBlockDrops.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCarving.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCarving.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCarving.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCarving.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCave.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCave.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCave.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCave.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCavePlacer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisColor.java b/core/src/main/java/com/volmit/iris/engine/object/IrisColor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisColor.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisColor.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCommand.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCommand.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCommand.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCommand.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCommandRegistry.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCommandRegistry.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCommandRegistry.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCommandRegistry.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCompat.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCompat.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCompat.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCompat.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityBlockFilter.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityBlockFilter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCompatabilityBlockFilter.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityBlockFilter.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityItemFilter.java b/core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityItemFilter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisCompatabilityItemFilter.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisCompatabilityItemFilter.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDecorationPart.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDecorationPart.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDecorationPart.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDecorationPart.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDecorator.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDecorator.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDepositGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDimension.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDimension.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDimension.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDimensionMode.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionMode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDimensionMode.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDimensionMode.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDimensionModeType.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDimensionModeType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDimensionModeType.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDimensionModeType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDirection.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDirection.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDirection.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDirection.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisDuration.java b/core/src/main/java/com/volmit/iris/engine/object/IrisDuration.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisDuration.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisDuration.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEffect.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEffect.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEffect.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEffect.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java b/core/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisElipsoid.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEnchantment.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEnchantment.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEnchantment.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEnchantment.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEngineChunkData.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineChunkData.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEngineChunkData.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEngineChunkData.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEngineData.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineData.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEngineData.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEngineData.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEngineSpawnerCooldown.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEngineStatistics.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEngineStreamType.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineStreamType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEngineStreamType.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEngineStreamType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEngineValueType.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEngineValueType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEngineValueType.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEngineValueType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntity.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEntity.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEntity.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEntity.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java b/core/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisEntitySpawn.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisExpression.java b/core/src/main/java/com/volmit/iris/engine/object/IrisExpression.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisExpression.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisExpression.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java b/core/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisExpressionLoad.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisFluidBodies.java b/core/src/main/java/com/volmit/iris/engine/object/IrisFluidBodies.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisFluidBodies.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisFluidBodies.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisFontStyle.java b/core/src/main/java/com/volmit/iris/engine/object/IrisFontStyle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisFontStyle.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisFontStyle.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisGeneratorStyle.java b/core/src/main/java/com/volmit/iris/engine/object/IrisGeneratorStyle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisGeneratorStyle.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisGeneratorStyle.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisImage.java b/core/src/main/java/com/volmit/iris/engine/object/IrisImage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisImage.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisImage.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisImageChannel.java b/core/src/main/java/com/volmit/iris/engine/object/IrisImageChannel.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisImageChannel.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisImageChannel.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisImageMap.java b/core/src/main/java/com/volmit/iris/engine/object/IrisImageMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisImageMap.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisImageMap.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java b/core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisInterpolator3D.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisJigsawPiece.java b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPiece.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisJigsawPiece.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPiece.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisJigsawPieceConnector.java b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPieceConnector.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisJigsawPieceConnector.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPieceConnector.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisJigsawPlacement.java b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPlacement.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisJigsawPlacement.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPlacement.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisJigsawPool.java b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPool.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisJigsawPool.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisJigsawPool.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructure.java b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructure.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisJigsawStructure.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructure.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java b/core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisJigsawStructurePlacement.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisLake.java b/core/src/main/java/com/volmit/iris/engine/object/IrisLake.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisLake.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisLake.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisLoot.java b/core/src/main/java/com/volmit/iris/engine/object/IrisLoot.java
similarity index 89%
rename from src/main/java/com/volmit/iris/engine/object/IrisLoot.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisLoot.java
index fa8a4f4ad..d7001f233 100644
--- a/src/main/java/com/volmit/iris/engine/object/IrisLoot.java
+++ b/core/src/main/java/com/volmit/iris/engine/object/IrisLoot.java
@@ -18,9 +18,9 @@
package com.volmit.iris.engine.object;
-import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.volmit.iris.Iris;
import com.volmit.iris.core.link.Identifier;
+import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.core.service.ExternalDataSVC;
import com.volmit.iris.engine.data.cache.AtomicCache;
import com.volmit.iris.engine.object.annotations.*;
@@ -36,11 +36,8 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
-import net.minecraft.nbt.CompoundTag;
-import net.minecraft.nbt.TagParser;
import org.bukkit.DyeColor;
import org.bukkit.Material;
-import org.bukkit.craftbukkit.v1_20_R1.inventory.CraftItemStack;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.Damageable;
@@ -118,7 +115,7 @@ public class IrisLoot {
if (is == null)
return new ItemStack(Material.AIR);
is.setItemMeta(applyProperties(is, rng, debug, null));
- return applyCustomNbt(is);
+ return INMS.get().applyCustomNbt(is, customNbt);
} catch (Throwable e) {
Iris.reportError(e);
return new ItemStack(Material.AIR);
@@ -136,7 +133,7 @@ public class IrisLoot {
if (is == null)
return null;
is.setItemMeta(applyProperties(is, rng, debug, table));
- return applyCustomNbt(is);
+ return INMS.get().applyCustomNbt(is, customNbt);
} catch (Throwable e) {
//Iris.reportError(e);
e.printStackTrace();
@@ -238,15 +235,4 @@ public class IrisLoot {
return m;
}
-
-
- private ItemStack applyCustomNbt(ItemStack stack) throws CommandSyntaxException {
- if (customNbt == null || customNbt.isEmpty())
- return stack;
- net.minecraft.world.item.ItemStack s = CraftItemStack.asNMSCopy(stack);
- CompoundTag tag = TagParser.parseTag(new JSONObject(customNbt).toString());
- tag.merge(s.getOrCreateTag());
- s.setTag(tag);
- return CraftItemStack.asBukkitCopy(s);
- }
}
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisLootMode.java b/core/src/main/java/com/volmit/iris/engine/object/IrisLootMode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisLootMode.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisLootMode.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisLootReference.java b/core/src/main/java/com/volmit/iris/engine/object/IrisLootReference.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisLootReference.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisLootReference.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisLootTable.java b/core/src/main/java/com/volmit/iris/engine/object/IrisLootTable.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisLootTable.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisLootTable.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisMarker.java b/core/src/main/java/com/volmit/iris/engine/object/IrisMarker.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisMarker.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisMarker.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisMaterialPalette.java b/core/src/main/java/com/volmit/iris/engine/object/IrisMaterialPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisMaterialPalette.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisMaterialPalette.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisMod.java b/core/src/main/java/com/volmit/iris/engine/object/IrisMod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisMod.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisMod.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModBiomeInjector.java b/core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeInjector.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisModBiomeInjector.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeInjector.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java b/core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisModBiomeReplacer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModNoiseStyleReplacer.java b/core/src/main/java/com/volmit/iris/engine/object/IrisModNoiseStyleReplacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisModNoiseStyleReplacer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisModNoiseStyleReplacer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementBiomeInjector.java b/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementBiomeInjector.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementBiomeInjector.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementBiomeInjector.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementRegionInjector.java b/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementRegionInjector.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementRegionInjector.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisModObjectPlacementRegionInjector.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModObjectReplacer.java b/core/src/main/java/com/volmit/iris/engine/object/IrisModObjectReplacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisModObjectReplacer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisModObjectReplacer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisModRegionReplacer.java b/core/src/main/java/com/volmit/iris/engine/object/IrisModRegionReplacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisModRegionReplacer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisModRegionReplacer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisNoiseGenerator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisNoiseGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisNoiseGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisNoiseGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObject.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObject.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObject.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectLimit.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectLimit.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectLimit.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectLimit.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectLoot.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectMarker.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectMarker.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectMarker.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectMarker.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacement.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacementScaleInterpolator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacementScaleInterpolator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectPlacementScaleInterpolator.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectPlacementScaleInterpolator.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectReplace.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectRotation.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectRotation.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectRotation.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectRotation.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectScale.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectScale.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectScale.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectScale.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisObjectTranslate.java b/core/src/main/java/com/volmit/iris/engine/object/IrisObjectTranslate.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisObjectTranslate.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisObjectTranslate.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisOreGenerator.java b/core/src/main/java/com/volmit/iris/engine/object/IrisOreGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisOreGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisOreGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisPosition.java b/core/src/main/java/com/volmit/iris/engine/object/IrisPosition.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisPosition.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisPosition.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisPosition2D.java b/core/src/main/java/com/volmit/iris/engine/object/IrisPosition2D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisPosition2D.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisPosition2D.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisPotionEffect.java b/core/src/main/java/com/volmit/iris/engine/object/IrisPotionEffect.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisPotionEffect.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisPotionEffect.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java b/core/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisPyramid.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisPyramid.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRange.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRange.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisRange.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisRange.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRareObject.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRareObject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisRareObject.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisRareObject.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRate.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRate.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisRate.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisRate.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRavine.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRavine.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisRavine.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisRavine.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRavinePlacer.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRavinePlacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisRavinePlacer.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisRavinePlacer.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRegion.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisRegion.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisRegion.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisRiver.java b/core/src/main/java/com/volmit/iris/engine/object/IrisRiver.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisRiver.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisRiver.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisScript.java b/core/src/main/java/com/volmit/iris/engine/object/IrisScript.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisScript.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisScript.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSeed.java b/core/src/main/java/com/volmit/iris/engine/object/IrisSeed.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisSeed.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisSeed.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java b/core/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisShapedGeneratorStyle.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSlopeClip.java b/core/src/main/java/com/volmit/iris/engine/object/IrisSlopeClip.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisSlopeClip.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisSlopeClip.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSpawnGroup.java b/core/src/main/java/com/volmit/iris/engine/object/IrisSpawnGroup.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisSpawnGroup.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisSpawnGroup.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java b/core/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisSpawner.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisSpawner.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSphere.java b/core/src/main/java/com/volmit/iris/engine/object/IrisSphere.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisSphere.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisSphere.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisStiltSettings.java b/core/src/main/java/com/volmit/iris/engine/object/IrisStiltSettings.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisStiltSettings.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisStiltSettings.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java b/core/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisStyledRange.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisSurface.java b/core/src/main/java/com/volmit/iris/engine/object/IrisSurface.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisSurface.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisSurface.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java b/core/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisTimeBlock.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisTree.java b/core/src/main/java/com/volmit/iris/engine/object/IrisTree.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisTree.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisTree.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisTreeModes.java b/core/src/main/java/com/volmit/iris/engine/object/IrisTreeModes.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisTreeModes.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisTreeModes.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisTreeSettings.java b/core/src/main/java/com/volmit/iris/engine/object/IrisTreeSettings.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisTreeSettings.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisTreeSettings.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisTreeSize.java b/core/src/main/java/com/volmit/iris/engine/object/IrisTreeSize.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisTreeSize.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisTreeSize.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisVillagerOverride.java b/core/src/main/java/com/volmit/iris/engine/object/IrisVillagerOverride.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisVillagerOverride.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisVillagerOverride.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisVillagerTrade.java b/core/src/main/java/com/volmit/iris/engine/object/IrisVillagerTrade.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisVillagerTrade.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisVillagerTrade.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisWeather.java b/core/src/main/java/com/volmit/iris/engine/object/IrisWeather.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisWeather.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisWeather.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisWorld.java b/core/src/main/java/com/volmit/iris/engine/object/IrisWorld.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisWorld.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisWorld.java
diff --git a/src/main/java/com/volmit/iris/engine/object/IrisWorm.java b/core/src/main/java/com/volmit/iris/engine/object/IrisWorm.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/IrisWorm.java
rename to core/src/main/java/com/volmit/iris/engine/object/IrisWorm.java
diff --git a/src/main/java/com/volmit/iris/engine/object/NoiseStyle.java b/core/src/main/java/com/volmit/iris/engine/object/NoiseStyle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/NoiseStyle.java
rename to core/src/main/java/com/volmit/iris/engine/object/NoiseStyle.java
diff --git a/src/main/java/com/volmit/iris/engine/object/ObjectPlaceMode.java b/core/src/main/java/com/volmit/iris/engine/object/ObjectPlaceMode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/ObjectPlaceMode.java
rename to core/src/main/java/com/volmit/iris/engine/object/ObjectPlaceMode.java
diff --git a/src/main/java/com/volmit/iris/engine/object/StudioMode.java b/core/src/main/java/com/volmit/iris/engine/object/StudioMode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/StudioMode.java
rename to core/src/main/java/com/volmit/iris/engine/object/StudioMode.java
diff --git a/src/main/java/com/volmit/iris/engine/object/TileBanner.java b/core/src/main/java/com/volmit/iris/engine/object/TileBanner.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/TileBanner.java
rename to core/src/main/java/com/volmit/iris/engine/object/TileBanner.java
diff --git a/src/main/java/com/volmit/iris/engine/object/TileData.java b/core/src/main/java/com/volmit/iris/engine/object/TileData.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/TileData.java
rename to core/src/main/java/com/volmit/iris/engine/object/TileData.java
diff --git a/src/main/java/com/volmit/iris/engine/object/TileSign.java b/core/src/main/java/com/volmit/iris/engine/object/TileSign.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/TileSign.java
rename to core/src/main/java/com/volmit/iris/engine/object/TileSign.java
diff --git a/src/main/java/com/volmit/iris/engine/object/TileSpawner.java b/core/src/main/java/com/volmit/iris/engine/object/TileSpawner.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/TileSpawner.java
rename to core/src/main/java/com/volmit/iris/engine/object/TileSpawner.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/ArrayType.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/ArrayType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/ArrayType.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/ArrayType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/DependsOn.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/DependsOn.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/DependsOn.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/DependsOn.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/Desc.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/Desc.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/Desc.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/Desc.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/MaxNumber.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/MaxNumber.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/MaxNumber.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/MaxNumber.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/MinNumber.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/MinNumber.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/MinNumber.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/MinNumber.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBiomeDownfallType.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBiomeDownfallType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBiomeDownfallType.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBiomeDownfallType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBlockType.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBlockType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBlockType.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListBlockType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListEnchantment.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListEnchantment.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/RegistryListEnchantment.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListEnchantment.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFont.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFont.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFont.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListFont.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListItemType.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListItemType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/RegistryListItemType.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListItemType.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListResource.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListSpecialEntity.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListSpecialEntity.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/RegistryListSpecialEntity.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/RegistryListSpecialEntity.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/Required.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/Required.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/Required.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/Required.java
diff --git a/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java b/core/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java
rename to core/src/main/java/com/volmit/iris/engine/object/annotations/Snippet.java
diff --git a/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterObject.java b/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterObject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/matter/IrisMatterObject.java
rename to core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterObject.java
diff --git a/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacement.java b/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacement.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacement.java
rename to core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacement.java
diff --git a/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacementLocation.java b/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacementLocation.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacementLocation.java
rename to core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterPlacementLocation.java
diff --git a/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterTranslate.java b/core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterTranslate.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/object/matter/IrisMatterTranslate.java
rename to core/src/main/java/com/volmit/iris/engine/object/matter/IrisMatterTranslate.java
diff --git a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java b/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
similarity index 89%
rename from src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
index 9fe19f048..f63b6d12a 100644
--- a/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
+++ b/core/src/main/java/com/volmit/iris/engine/platform/BukkitChunkGenerator.java
@@ -20,7 +20,7 @@ package com.volmit.iris.engine.platform;
import com.volmit.iris.Iris;
import com.volmit.iris.core.loader.IrisData;
-import com.volmit.iris.core.nms.v20.CustomBiomeSource;
+import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.core.service.StudioSVC;
import com.volmit.iris.engine.IrisEngine;
import com.volmit.iris.engine.data.chunk.TerrainChunk;
@@ -42,11 +42,9 @@ import com.volmit.iris.util.scheduling.Looper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Setter;
-import net.minecraft.server.level.ServerLevel;
import org.bukkit.*;
import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData;
-import org.bukkit.craftbukkit.v1_20_R1.CraftWorld;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -58,7 +56,6 @@ import org.bukkit.generator.ChunkGenerator;
import org.bukkit.generator.WorldInfo;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
-import sun.misc.Unsafe;
import java.io.File;
import java.lang.reflect.Field;
@@ -129,17 +126,7 @@ public class BukkitChunkGenerator extends ChunkGenerator implements PlatformChun
if (!initialized) {
world.setRawWorldSeed(event.getWorld().getSeed());
if (world.name().equals(event.getWorld().getName())) {
- ServerLevel serverLevel = ((CraftWorld) event.getWorld()).getHandle();
- Engine engine = getEngine(event.getWorld());
- Class> clazz = serverLevel.getChunkSource().chunkMap.generator.getClass();
- Field biomeSource = getField(clazz, "b");
- biomeSource.setAccessible(true);
- Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe");
- unsafeField.setAccessible(true);
- Unsafe unsafe = (Unsafe) unsafeField.get(null);
- CustomBiomeSource customBiomeSource = new CustomBiomeSource(event.getWorld().getSeed(), engine, event.getWorld());
- unsafe.putObject(biomeSource.get(serverLevel.getChunkSource().chunkMap.generator), unsafe.objectFieldOffset(biomeSource), customBiomeSource);
- biomeSource.set(serverLevel.getChunkSource().chunkMap.generator, customBiomeSource);
+ INMS.get().inject(event.getWorld().getSeed(), getEngine(event.getWorld()), event.getWorld());
Iris.info("Injected Iris Biome Source into " + event.getWorld().getName());
initialized = true;
}
diff --git a/src/main/java/com/volmit/iris/engine/platform/DummyBiomeGrid.java b/core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeGrid.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/platform/DummyBiomeGrid.java
rename to core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeGrid.java
diff --git a/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java b/core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java
rename to core/src/main/java/com/volmit/iris/engine/platform/DummyBiomeProvider.java
diff --git a/src/main/java/com/volmit/iris/engine/platform/DummyChunkGenerator.java b/core/src/main/java/com/volmit/iris/engine/platform/DummyChunkGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/platform/DummyChunkGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/platform/DummyChunkGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java b/core/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/platform/PlatformChunkGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/platform/studio/EnginedStudioGenerator.java b/core/src/main/java/com/volmit/iris/engine/platform/studio/EnginedStudioGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/platform/studio/EnginedStudioGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/platform/studio/EnginedStudioGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/platform/studio/StudioGenerator.java b/core/src/main/java/com/volmit/iris/engine/platform/studio/StudioGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/platform/studio/StudioGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/platform/studio/StudioGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java b/core/src/main/java/com/volmit/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java
rename to core/src/main/java/com/volmit/iris/engine/platform/studio/generators/BiomeBuffetGenerator.java
diff --git a/src/main/java/com/volmit/iris/engine/safeguard/IrisSafeguard.java b/core/src/main/java/com/volmit/iris/engine/safeguard/IrisSafeguard.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/safeguard/IrisSafeguard.java
rename to core/src/main/java/com/volmit/iris/engine/safeguard/IrisSafeguard.java
diff --git a/src/main/java/com/volmit/iris/engine/safeguard/SafeguardUtils.java b/core/src/main/java/com/volmit/iris/engine/safeguard/SafeguardUtils.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/safeguard/SafeguardUtils.java
rename to core/src/main/java/com/volmit/iris/engine/safeguard/SafeguardUtils.java
diff --git a/src/main/java/com/volmit/iris/engine/safeguard/ServerBoot.java b/core/src/main/java/com/volmit/iris/engine/safeguard/ServerBoot.java
similarity index 96%
rename from src/main/java/com/volmit/iris/engine/safeguard/ServerBoot.java
rename to core/src/main/java/com/volmit/iris/engine/safeguard/ServerBoot.java
index bb8d7c140..27f993b9f 100644
--- a/src/main/java/com/volmit/iris/engine/safeguard/ServerBoot.java
+++ b/core/src/main/java/com/volmit/iris/engine/safeguard/ServerBoot.java
@@ -1,7 +1,8 @@
package com.volmit.iris.engine.safeguard;
import com.volmit.iris.Iris;
-import com.volmit.iris.core.nms.v20.NMSBinding1_20_1;
+import com.volmit.iris.core.nms.INMS;
+import com.volmit.iris.core.nms.v1X.NMSBinding1X;
import com.volmit.iris.util.format.C;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
@@ -24,7 +25,7 @@ public class ServerBoot {
Iris.info("Checking for possible conflicts..");
org.bukkit.plugin.PluginManager pluginManager = Bukkit.getPluginManager();
Plugin[] plugins = pluginManager.getPlugins();
- if (!instance.getServer().getBukkitVersion().contains(NMSBinding1_20_1.NMS_VERSION)) {
+ if (INMS.get() instanceof NMSBinding1X) {
unstablemode = true;
correctversion = false;
}
diff --git a/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java b/core/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java
rename to core/src/main/java/com/volmit/iris/engine/scripting/EngineExecutionEnvironment.java
diff --git a/src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java b/core/src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java
similarity index 100%
rename from src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java
rename to core/src/main/java/com/volmit/iris/engine/scripting/IrisScriptingAPI.java
diff --git a/src/main/java/com/volmit/iris/util/api/APIAwareBlock.java b/core/src/main/java/com/volmit/iris/util/api/APIAwareBlock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/api/APIAwareBlock.java
rename to core/src/main/java/com/volmit/iris/util/api/APIAwareBlock.java
diff --git a/src/main/java/com/volmit/iris/util/api/APIWorldBlock.java b/core/src/main/java/com/volmit/iris/util/api/APIWorldBlock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/api/APIWorldBlock.java
rename to core/src/main/java/com/volmit/iris/util/api/APIWorldBlock.java
diff --git a/src/main/java/com/volmit/iris/util/atomics/AtomicAverage.java b/core/src/main/java/com/volmit/iris/util/atomics/AtomicAverage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/atomics/AtomicAverage.java
rename to core/src/main/java/com/volmit/iris/util/atomics/AtomicAverage.java
diff --git a/src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java b/core/src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java
rename to core/src/main/java/com/volmit/iris/util/atomics/AtomicRollingSequence.java
diff --git a/src/main/java/com/volmit/iris/util/board/Board.java b/core/src/main/java/com/volmit/iris/util/board/Board.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/board/Board.java
rename to core/src/main/java/com/volmit/iris/util/board/Board.java
diff --git a/src/main/java/com/volmit/iris/util/board/BoardEntry.java b/core/src/main/java/com/volmit/iris/util/board/BoardEntry.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/board/BoardEntry.java
rename to core/src/main/java/com/volmit/iris/util/board/BoardEntry.java
diff --git a/src/main/java/com/volmit/iris/util/board/BoardManager.java b/core/src/main/java/com/volmit/iris/util/board/BoardManager.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/board/BoardManager.java
rename to core/src/main/java/com/volmit/iris/util/board/BoardManager.java
diff --git a/src/main/java/com/volmit/iris/util/board/BoardProvider.java b/core/src/main/java/com/volmit/iris/util/board/BoardProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/board/BoardProvider.java
rename to core/src/main/java/com/volmit/iris/util/board/BoardProvider.java
diff --git a/src/main/java/com/volmit/iris/util/board/BoardSettings.java b/core/src/main/java/com/volmit/iris/util/board/BoardSettings.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/board/BoardSettings.java
rename to core/src/main/java/com/volmit/iris/util/board/BoardSettings.java
diff --git a/src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java b/core/src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java
rename to core/src/main/java/com/volmit/iris/util/board/BoardUpdateTask.java
diff --git a/src/main/java/com/volmit/iris/util/board/ScoreDirection.java b/core/src/main/java/com/volmit/iris/util/board/ScoreDirection.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/board/ScoreDirection.java
rename to core/src/main/java/com/volmit/iris/util/board/ScoreDirection.java
diff --git a/src/main/java/com/volmit/iris/util/cache/ArrayCache.java b/core/src/main/java/com/volmit/iris/util/cache/ArrayCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/ArrayCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/ArrayCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/ByteBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/ByteBitCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/ByteBitCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/ByteBitCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/ByteCache.java b/core/src/main/java/com/volmit/iris/util/cache/ByteCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/ByteCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/ByteCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java b/core/src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java
rename to core/src/main/java/com/volmit/iris/util/cache/ChunkCache2D.java
diff --git a/src/main/java/com/volmit/iris/util/cache/DataBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/DataBitCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/DataBitCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/DataBitCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/FloatBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/FloatBitCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/FloatBitCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/FloatBitCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/FloatCache.java b/core/src/main/java/com/volmit/iris/util/cache/FloatCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/FloatCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/FloatCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/IntBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/IntBitCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/IntBitCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/IntBitCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/IntCache.java b/core/src/main/java/com/volmit/iris/util/cache/IntCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/IntCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/IntCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/ShortBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/ShortBitCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/ShortBitCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/ShortBitCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/ShortCache.java b/core/src/main/java/com/volmit/iris/util/cache/ShortCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/ShortCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/ShortCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/UByteBitCache.java b/core/src/main/java/com/volmit/iris/util/cache/UByteBitCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/UByteBitCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/UByteBitCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/UByteCache.java b/core/src/main/java/com/volmit/iris/util/cache/UByteCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/UByteCache.java
rename to core/src/main/java/com/volmit/iris/util/cache/UByteCache.java
diff --git a/src/main/java/com/volmit/iris/util/cache/WorldCache2D.java b/core/src/main/java/com/volmit/iris/util/cache/WorldCache2D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/cache/WorldCache2D.java
rename to core/src/main/java/com/volmit/iris/util/cache/WorldCache2D.java
diff --git a/src/main/java/com/volmit/iris/util/collection/GBiset.java b/core/src/main/java/com/volmit/iris/util/collection/GBiset.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/collection/GBiset.java
rename to core/src/main/java/com/volmit/iris/util/collection/GBiset.java
diff --git a/src/main/java/com/volmit/iris/util/collection/GListAdapter.java b/core/src/main/java/com/volmit/iris/util/collection/GListAdapter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/collection/GListAdapter.java
rename to core/src/main/java/com/volmit/iris/util/collection/GListAdapter.java
diff --git a/src/main/java/com/volmit/iris/util/collection/KList.java b/core/src/main/java/com/volmit/iris/util/collection/KList.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/collection/KList.java
rename to core/src/main/java/com/volmit/iris/util/collection/KList.java
diff --git a/src/main/java/com/volmit/iris/util/collection/KMap.java b/core/src/main/java/com/volmit/iris/util/collection/KMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/collection/KMap.java
rename to core/src/main/java/com/volmit/iris/util/collection/KMap.java
diff --git a/src/main/java/com/volmit/iris/util/collection/KSet.java b/core/src/main/java/com/volmit/iris/util/collection/KSet.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/collection/KSet.java
rename to core/src/main/java/com/volmit/iris/util/collection/KSet.java
diff --git a/src/main/java/com/volmit/iris/util/collection/KeyPair.java b/core/src/main/java/com/volmit/iris/util/collection/KeyPair.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/collection/KeyPair.java
rename to core/src/main/java/com/volmit/iris/util/collection/KeyPair.java
diff --git a/src/main/java/com/volmit/iris/util/collection/StateList.java b/core/src/main/java/com/volmit/iris/util/collection/StateList.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/collection/StateList.java
rename to core/src/main/java/com/volmit/iris/util/collection/StateList.java
diff --git a/src/main/java/com/volmit/iris/util/context/ChunkContext.java b/core/src/main/java/com/volmit/iris/util/context/ChunkContext.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/context/ChunkContext.java
rename to core/src/main/java/com/volmit/iris/util/context/ChunkContext.java
diff --git a/src/main/java/com/volmit/iris/util/context/ChunkedDataCache.java b/core/src/main/java/com/volmit/iris/util/context/ChunkedDataCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/context/ChunkedDataCache.java
rename to core/src/main/java/com/volmit/iris/util/context/ChunkedDataCache.java
diff --git a/src/main/java/com/volmit/iris/util/context/IrisContext.java b/core/src/main/java/com/volmit/iris/util/context/IrisContext.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/context/IrisContext.java
rename to core/src/main/java/com/volmit/iris/util/context/IrisContext.java
diff --git a/src/main/java/com/volmit/iris/util/data/B.java b/core/src/main/java/com/volmit/iris/util/data/B.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/B.java
rename to core/src/main/java/com/volmit/iris/util/data/B.java
diff --git a/src/main/java/com/volmit/iris/util/data/BiomeMap.java b/core/src/main/java/com/volmit/iris/util/data/BiomeMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/BiomeMap.java
rename to core/src/main/java/com/volmit/iris/util/data/BiomeMap.java
diff --git a/src/main/java/com/volmit/iris/util/data/ChunkCache.java b/core/src/main/java/com/volmit/iris/util/data/ChunkCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/ChunkCache.java
rename to core/src/main/java/com/volmit/iris/util/data/ChunkCache.java
diff --git a/src/main/java/com/volmit/iris/util/data/ComplexCache.java b/core/src/main/java/com/volmit/iris/util/data/ComplexCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/ComplexCache.java
rename to core/src/main/java/com/volmit/iris/util/data/ComplexCache.java
diff --git a/src/main/java/com/volmit/iris/util/data/Cuboid.java b/core/src/main/java/com/volmit/iris/util/data/Cuboid.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/Cuboid.java
rename to core/src/main/java/com/volmit/iris/util/data/Cuboid.java
diff --git a/src/main/java/com/volmit/iris/util/data/CuboidException.java b/core/src/main/java/com/volmit/iris/util/data/CuboidException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/CuboidException.java
rename to core/src/main/java/com/volmit/iris/util/data/CuboidException.java
diff --git a/src/main/java/com/volmit/iris/util/data/DUTF.java b/core/src/main/java/com/volmit/iris/util/data/DUTF.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/DUTF.java
rename to core/src/main/java/com/volmit/iris/util/data/DUTF.java
diff --git a/src/main/java/com/volmit/iris/util/data/DataPalette.java b/core/src/main/java/com/volmit/iris/util/data/DataPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/DataPalette.java
rename to core/src/main/java/com/volmit/iris/util/data/DataPalette.java
diff --git a/src/main/java/com/volmit/iris/util/data/DataProvider.java b/core/src/main/java/com/volmit/iris/util/data/DataProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/DataProvider.java
rename to core/src/main/java/com/volmit/iris/util/data/DataProvider.java
diff --git a/src/main/java/com/volmit/iris/util/data/Dimension.java b/core/src/main/java/com/volmit/iris/util/data/Dimension.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/Dimension.java
rename to core/src/main/java/com/volmit/iris/util/data/Dimension.java
diff --git a/src/main/java/com/volmit/iris/util/data/DimensionFace.java b/core/src/main/java/com/volmit/iris/util/data/DimensionFace.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/DimensionFace.java
rename to core/src/main/java/com/volmit/iris/util/data/DimensionFace.java
diff --git a/src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.java b/core/src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.java
rename to core/src/main/java/com/volmit/iris/util/data/DoubleArrayUtils.java
diff --git a/src/main/java/com/volmit/iris/util/data/Heafty.java b/core/src/main/java/com/volmit/iris/util/data/Heafty.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/Heafty.java
rename to core/src/main/java/com/volmit/iris/util/data/Heafty.java
diff --git a/src/main/java/com/volmit/iris/util/data/HeightMap.java b/core/src/main/java/com/volmit/iris/util/data/HeightMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/HeightMap.java
rename to core/src/main/java/com/volmit/iris/util/data/HeightMap.java
diff --git a/src/main/java/com/volmit/iris/util/data/IOAdapter.java b/core/src/main/java/com/volmit/iris/util/data/IOAdapter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/IOAdapter.java
rename to core/src/main/java/com/volmit/iris/util/data/IOAdapter.java
diff --git a/src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.java b/core/src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.java
rename to core/src/main/java/com/volmit/iris/util/data/InvertedBiomeGrid.java
diff --git a/src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java b/core/src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java
rename to core/src/main/java/com/volmit/iris/util/data/IrisBiomeStorage.java
diff --git a/src/main/java/com/volmit/iris/util/data/KCache.java b/core/src/main/java/com/volmit/iris/util/data/KCache.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/KCache.java
rename to core/src/main/java/com/volmit/iris/util/data/KCache.java
diff --git a/src/main/java/com/volmit/iris/util/data/MaterialBlock.java b/core/src/main/java/com/volmit/iris/util/data/MaterialBlock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/MaterialBlock.java
rename to core/src/main/java/com/volmit/iris/util/data/MaterialBlock.java
diff --git a/src/main/java/com/volmit/iris/util/data/NibbleArray.java b/core/src/main/java/com/volmit/iris/util/data/NibbleArray.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/NibbleArray.java
rename to core/src/main/java/com/volmit/iris/util/data/NibbleArray.java
diff --git a/src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java b/core/src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java
rename to core/src/main/java/com/volmit/iris/util/data/NibbleDataPalette.java
diff --git a/src/main/java/com/volmit/iris/util/data/Recycler.java b/core/src/main/java/com/volmit/iris/util/data/Recycler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/Recycler.java
rename to core/src/main/java/com/volmit/iris/util/data/Recycler.java
diff --git a/src/main/java/com/volmit/iris/util/data/Shrinkwrap.java b/core/src/main/java/com/volmit/iris/util/data/Shrinkwrap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/Shrinkwrap.java
rename to core/src/main/java/com/volmit/iris/util/data/Shrinkwrap.java
diff --git a/src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.java b/core/src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.java
rename to core/src/main/java/com/volmit/iris/util/data/VanillaBiomeMap.java
diff --git a/src/main/java/com/volmit/iris/util/data/Varint.java b/core/src/main/java/com/volmit/iris/util/data/Varint.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/Varint.java
rename to core/src/main/java/com/volmit/iris/util/data/Varint.java
diff --git a/src/main/java/com/volmit/iris/util/data/WeightMap.java b/core/src/main/java/com/volmit/iris/util/data/WeightMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/WeightMap.java
rename to core/src/main/java/com/volmit/iris/util/data/WeightMap.java
diff --git a/src/main/java/com/volmit/iris/util/data/WeightedRandom.java b/core/src/main/java/com/volmit/iris/util/data/WeightedRandom.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/WeightedRandom.java
rename to core/src/main/java/com/volmit/iris/util/data/WeightedRandom.java
diff --git a/src/main/java/com/volmit/iris/util/data/Writable.java b/core/src/main/java/com/volmit/iris/util/data/Writable.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/Writable.java
rename to core/src/main/java/com/volmit/iris/util/data/Writable.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/BitStorage.java b/core/src/main/java/com/volmit/iris/util/data/palette/BitStorage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/BitStorage.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/BitStorage.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/CountConsumer.java b/core/src/main/java/com/volmit/iris/util/data/palette/CountConsumer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/CountConsumer.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/CountConsumer.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/CrudeIncrementalIntIdentityHashBiMap.java b/core/src/main/java/com/volmit/iris/util/data/palette/CrudeIncrementalIntIdentityHashBiMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/CrudeIncrementalIntIdentityHashBiMap.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/CrudeIncrementalIntIdentityHashBiMap.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/GlobalPalette.java b/core/src/main/java/com/volmit/iris/util/data/palette/GlobalPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/GlobalPalette.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/GlobalPalette.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/HashMapPalette.java b/core/src/main/java/com/volmit/iris/util/data/palette/HashMapPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/HashMapPalette.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/HashMapPalette.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/IdMap.java b/core/src/main/java/com/volmit/iris/util/data/palette/IdMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/IdMap.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/IdMap.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/IdMapper.java b/core/src/main/java/com/volmit/iris/util/data/palette/IdMapper.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/IdMapper.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/IdMapper.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/LinearPalette.java b/core/src/main/java/com/volmit/iris/util/data/palette/LinearPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/LinearPalette.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/LinearPalette.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/Mth.java b/core/src/main/java/com/volmit/iris/util/data/palette/Mth.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/Mth.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/Mth.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/Palette.java b/core/src/main/java/com/volmit/iris/util/data/palette/Palette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/Palette.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/Palette.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/PaletteAccess.java b/core/src/main/java/com/volmit/iris/util/data/palette/PaletteAccess.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/PaletteAccess.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/PaletteAccess.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/PaletteResize.java b/core/src/main/java/com/volmit/iris/util/data/palette/PaletteResize.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/PaletteResize.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/PaletteResize.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/PaletteType.java b/core/src/main/java/com/volmit/iris/util/data/palette/PaletteType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/PaletteType.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/PaletteType.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/PalettedContainer.java b/core/src/main/java/com/volmit/iris/util/data/palette/PalettedContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/PalettedContainer.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/PalettedContainer.java
diff --git a/src/main/java/com/volmit/iris/util/data/palette/QuartPos.java b/core/src/main/java/com/volmit/iris/util/data/palette/QuartPos.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/data/palette/QuartPos.java
rename to core/src/main/java/com/volmit/iris/util/data/palette/QuartPos.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeContext.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeContext.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeContext.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeContext.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeContextHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeExecutor.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeNode.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeNode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeNode.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeNode.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeOrigin.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeParameter.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeParameter.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeParameterHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java b/core/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/DecreeSystem.java
rename to core/src/main/java/com/volmit/iris/util/decree/DecreeSystem.java
diff --git a/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java b/core/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/annotations/Decree.java
rename to core/src/main/java/com/volmit/iris/util/decree/annotations/Decree.java
diff --git a/src/main/java/com/volmit/iris/util/decree/annotations/Param.java b/core/src/main/java/com/volmit/iris/util/decree/annotations/Param.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/annotations/Param.java
rename to core/src/main/java/com/volmit/iris/util/decree/annotations/Param.java
diff --git a/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/context/BiomeContextHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/context/DimensionContextHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/context/GeneratorContextHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/context/RegionContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/context/RegionContextHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/context/RegionContextHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/context/RegionContextHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/context/VectorContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/context/VectorContextHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/context/VectorContextHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/context/VectorContextHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java b/core/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/context/WorldContextHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java b/core/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java
rename to core/src/main/java/com/volmit/iris/util/decree/exceptions/DecreeParsingException.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/BiomeHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/BlockVectorHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/BooleanHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/ByteHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/CaveHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/CaveHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/CaveHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/CaveHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/DimensionHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/DoubleHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/EntityHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/FloatHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/GeneratorHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/IntegerHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPieceHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPieceHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/JigsawPieceHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPieceHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPoolHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPoolHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/JigsawPoolHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawPoolHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/JigsawStructureHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawStructureHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/JigsawStructureHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/JigsawStructureHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/LongHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/PlayerHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/RegionHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/ScriptHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/ShortHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/StringHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/VectorHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java b/core/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/handlers/WorldHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java b/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/specialhandlers/DummyHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java b/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/specialhandlers/NullablePlayerHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java b/core/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java
rename to core/src/main/java/com/volmit/iris/util/decree/specialhandlers/ObjectHandler.java
diff --git a/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java b/core/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java
rename to core/src/main/java/com/volmit/iris/util/decree/virtual/VirtualDecreeCommand.java
diff --git a/src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.java
rename to core/src/main/java/com/volmit/iris/util/documentation/BlockCoordinates.java
diff --git a/src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.java
rename to core/src/main/java/com/volmit/iris/util/documentation/ChunkCoordinates.java
diff --git a/src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.java
rename to core/src/main/java/com/volmit/iris/util/documentation/ChunkRelativeBlockCoordinates.java
diff --git a/src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.java b/core/src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.java
rename to core/src/main/java/com/volmit/iris/util/documentation/RegionCoordinates.java
diff --git a/src/main/java/com/volmit/iris/util/exceptions/IrisException.java b/core/src/main/java/com/volmit/iris/util/exceptions/IrisException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/exceptions/IrisException.java
rename to core/src/main/java/com/volmit/iris/util/exceptions/IrisException.java
diff --git a/src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java b/core/src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java
rename to core/src/main/java/com/volmit/iris/util/exceptions/MissingDimensionException.java
diff --git a/src/main/java/com/volmit/iris/util/format/C.java b/core/src/main/java/com/volmit/iris/util/format/C.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/format/C.java
rename to core/src/main/java/com/volmit/iris/util/format/C.java
diff --git a/src/main/java/com/volmit/iris/util/format/Form.java b/core/src/main/java/com/volmit/iris/util/format/Form.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/format/Form.java
rename to core/src/main/java/com/volmit/iris/util/format/Form.java
diff --git a/src/main/java/com/volmit/iris/util/format/MemoryMonitor.java b/core/src/main/java/com/volmit/iris/util/format/MemoryMonitor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/format/MemoryMonitor.java
rename to core/src/main/java/com/volmit/iris/util/format/MemoryMonitor.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer2.java b/core/src/main/java/com/volmit/iris/util/function/Consumer2.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer2.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer2.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer2IO.java b/core/src/main/java/com/volmit/iris/util/function/Consumer2IO.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer2IO.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer2IO.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer3.java b/core/src/main/java/com/volmit/iris/util/function/Consumer3.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer3.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer3.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer4.java b/core/src/main/java/com/volmit/iris/util/function/Consumer4.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer4.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer4.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer4IO.java b/core/src/main/java/com/volmit/iris/util/function/Consumer4IO.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer4IO.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer4IO.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer5.java b/core/src/main/java/com/volmit/iris/util/function/Consumer5.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer5.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer5.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer6.java b/core/src/main/java/com/volmit/iris/util/function/Consumer6.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer6.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer6.java
diff --git a/src/main/java/com/volmit/iris/util/function/Consumer8.java b/core/src/main/java/com/volmit/iris/util/function/Consumer8.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Consumer8.java
rename to core/src/main/java/com/volmit/iris/util/function/Consumer8.java
diff --git a/src/main/java/com/volmit/iris/util/function/Function2.java b/core/src/main/java/com/volmit/iris/util/function/Function2.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Function2.java
rename to core/src/main/java/com/volmit/iris/util/function/Function2.java
diff --git a/src/main/java/com/volmit/iris/util/function/Function3.java b/core/src/main/java/com/volmit/iris/util/function/Function3.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Function3.java
rename to core/src/main/java/com/volmit/iris/util/function/Function3.java
diff --git a/src/main/java/com/volmit/iris/util/function/Function4.java b/core/src/main/java/com/volmit/iris/util/function/Function4.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Function4.java
rename to core/src/main/java/com/volmit/iris/util/function/Function4.java
diff --git a/src/main/java/com/volmit/iris/util/function/NastyFunction.java b/core/src/main/java/com/volmit/iris/util/function/NastyFunction.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/NastyFunction.java
rename to core/src/main/java/com/volmit/iris/util/function/NastyFunction.java
diff --git a/src/main/java/com/volmit/iris/util/function/NastyFuture.java b/core/src/main/java/com/volmit/iris/util/function/NastyFuture.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/NastyFuture.java
rename to core/src/main/java/com/volmit/iris/util/function/NastyFuture.java
diff --git a/src/main/java/com/volmit/iris/util/function/NastyRunnable.java b/core/src/main/java/com/volmit/iris/util/function/NastyRunnable.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/NastyRunnable.java
rename to core/src/main/java/com/volmit/iris/util/function/NastyRunnable.java
diff --git a/src/main/java/com/volmit/iris/util/function/NastySupplier.java b/core/src/main/java/com/volmit/iris/util/function/NastySupplier.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/NastySupplier.java
rename to core/src/main/java/com/volmit/iris/util/function/NastySupplier.java
diff --git a/src/main/java/com/volmit/iris/util/function/NoiseInjector.java b/core/src/main/java/com/volmit/iris/util/function/NoiseInjector.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/NoiseInjector.java
rename to core/src/main/java/com/volmit/iris/util/function/NoiseInjector.java
diff --git a/src/main/java/com/volmit/iris/util/function/NoiseProvider.java b/core/src/main/java/com/volmit/iris/util/function/NoiseProvider.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/NoiseProvider.java
rename to core/src/main/java/com/volmit/iris/util/function/NoiseProvider.java
diff --git a/src/main/java/com/volmit/iris/util/function/NoiseProvider3.java b/core/src/main/java/com/volmit/iris/util/function/NoiseProvider3.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/NoiseProvider3.java
rename to core/src/main/java/com/volmit/iris/util/function/NoiseProvider3.java
diff --git a/src/main/java/com/volmit/iris/util/function/Supplier2.java b/core/src/main/java/com/volmit/iris/util/function/Supplier2.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Supplier2.java
rename to core/src/main/java/com/volmit/iris/util/function/Supplier2.java
diff --git a/src/main/java/com/volmit/iris/util/function/Supplier3.java b/core/src/main/java/com/volmit/iris/util/function/Supplier3.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Supplier3.java
rename to core/src/main/java/com/volmit/iris/util/function/Supplier3.java
diff --git a/src/main/java/com/volmit/iris/util/function/Supplier3R.java b/core/src/main/java/com/volmit/iris/util/function/Supplier3R.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/function/Supplier3R.java
rename to core/src/main/java/com/volmit/iris/util/function/Supplier3R.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/Hunk.java b/core/src/main/java/com/volmit/iris/util/hunk/Hunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/Hunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/Hunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/HunkFace.java b/core/src/main/java/com/volmit/iris/util/hunk/HunkFace.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/HunkFace.java
rename to core/src/main/java/com/volmit/iris/util/hunk/HunkFace.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/HunkFactory.java b/core/src/main/java/com/volmit/iris/util/hunk/HunkFactory.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/HunkFactory.java
rename to core/src/main/java/com/volmit/iris/util/hunk/HunkFactory.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java
rename to core/src/main/java/com/volmit/iris/util/hunk/bits/DataBits.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java
rename to core/src/main/java/com/volmit/iris/util/hunk/bits/DataContainer.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java
rename to core/src/main/java/com/volmit/iris/util/hunk/bits/HashPalette.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java
rename to core/src/main/java/com/volmit/iris/util/hunk/bits/LinearPalette.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/bits/Palette.java
rename to core/src/main/java/com/volmit/iris/util/hunk/bits/Palette.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/bits/Writable.java b/core/src/main/java/com/volmit/iris/util/hunk/bits/Writable.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/bits/Writable.java
rename to core/src/main/java/com/volmit/iris/util/hunk/bits/Writable.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/ArrayHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/ArrayHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/ArrayHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/ArrayHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/AtomicDoubleHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicDoubleHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/AtomicDoubleHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicDoubleHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/AtomicHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/AtomicHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/AtomicIntegerHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicIntegerHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/AtomicIntegerHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicIntegerHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/AtomicLongHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicLongHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/AtomicLongHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/AtomicLongHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/MappedHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/MappedSyncHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/PaletteOrHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/StorageHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/StorageHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/StorageHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/StorageHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/storage/SynchronizedArrayHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/storage/SynchronizedArrayHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/storage/SynchronizedArrayHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/storage/SynchronizedArrayHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.java b/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkHolder.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/BiomeGridHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/ChunkBiomeHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkHolder.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkHolder.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkHolder.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkHolder.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/ChunkDataHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/ChunkHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/DriftHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/FringedHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/FunctionalHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/HunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/HunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/HunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/HunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/InvertedHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/ListeningHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/ReadOnlyHunk.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/RotatedXHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/RotatedYHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/RotatedZHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.java b/core/src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/SynchronizedHunkView.java
diff --git a/src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.java b/core/src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.java
rename to core/src/main/java/com/volmit/iris/util/hunk/view/WriteTrackHunk.java
diff --git a/src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java b/core/src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java
rename to core/src/main/java/com/volmit/iris/util/interpolation/CompiledStarcast.java
diff --git a/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod.java b/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod.java
rename to core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod.java
diff --git a/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod3D.java b/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod3D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod3D.java
rename to core/src/main/java/com/volmit/iris/util/interpolation/InterpolationMethod3D.java
diff --git a/src/main/java/com/volmit/iris/util/interpolation/InterpolationType.java b/core/src/main/java/com/volmit/iris/util/interpolation/InterpolationType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/interpolation/InterpolationType.java
rename to core/src/main/java/com/volmit/iris/util/interpolation/InterpolationType.java
diff --git a/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java b/core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java
rename to core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java
diff --git a/src/main/java/com/volmit/iris/util/interpolation/Starcast.java b/core/src/main/java/com/volmit/iris/util/interpolation/Starcast.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/interpolation/Starcast.java
rename to core/src/main/java/com/volmit/iris/util/interpolation/Starcast.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/Element.java b/core/src/main/java/com/volmit/iris/util/inventorygui/Element.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/Element.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/Element.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.java b/core/src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/ElementEvent.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java b/core/src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/RandomColor.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/UIElement.java b/core/src/main/java/com/volmit/iris/util/inventorygui/UIElement.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/UIElement.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/UIElement.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/UIStaticDecorator.java b/core/src/main/java/com/volmit/iris/util/inventorygui/UIStaticDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/UIStaticDecorator.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/UIStaticDecorator.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/UIVoidDecorator.java b/core/src/main/java/com/volmit/iris/util/inventorygui/UIVoidDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/UIVoidDecorator.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/UIVoidDecorator.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java b/core/src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/UIWindow.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/Window.java b/core/src/main/java/com/volmit/iris/util/inventorygui/Window.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/Window.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/Window.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.java b/core/src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/WindowDecorator.java
diff --git a/src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.java b/core/src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.java
rename to core/src/main/java/com/volmit/iris/util/inventorygui/WindowResolution.java
diff --git a/src/main/java/com/volmit/iris/util/io/Converter.java b/core/src/main/java/com/volmit/iris/util/io/Converter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/Converter.java
rename to core/src/main/java/com/volmit/iris/util/io/Converter.java
diff --git a/src/main/java/com/volmit/iris/util/io/CustomOutputStream.java b/core/src/main/java/com/volmit/iris/util/io/CustomOutputStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/CustomOutputStream.java
rename to core/src/main/java/com/volmit/iris/util/io/CustomOutputStream.java
diff --git a/src/main/java/com/volmit/iris/util/io/FileWatcher.java b/core/src/main/java/com/volmit/iris/util/io/FileWatcher.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/FileWatcher.java
rename to core/src/main/java/com/volmit/iris/util/io/FileWatcher.java
diff --git a/src/main/java/com/volmit/iris/util/io/FolderWatcher.java b/core/src/main/java/com/volmit/iris/util/io/FolderWatcher.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/FolderWatcher.java
rename to core/src/main/java/com/volmit/iris/util/io/FolderWatcher.java
diff --git a/src/main/java/com/volmit/iris/util/io/IO.java b/core/src/main/java/com/volmit/iris/util/io/IO.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/IO.java
rename to core/src/main/java/com/volmit/iris/util/io/IO.java
diff --git a/src/main/java/com/volmit/iris/util/io/IORunnable.java b/core/src/main/java/com/volmit/iris/util/io/IORunnable.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/IORunnable.java
rename to core/src/main/java/com/volmit/iris/util/io/IORunnable.java
diff --git a/src/main/java/com/volmit/iris/util/io/InstanceState.java b/core/src/main/java/com/volmit/iris/util/io/InstanceState.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/InstanceState.java
rename to core/src/main/java/com/volmit/iris/util/io/InstanceState.java
diff --git a/src/main/java/com/volmit/iris/util/io/JarScanner.java b/core/src/main/java/com/volmit/iris/util/io/JarScanner.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/JarScanner.java
rename to core/src/main/java/com/volmit/iris/util/io/JarScanner.java
diff --git a/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java b/core/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/ReactiveFolder.java
rename to core/src/main/java/com/volmit/iris/util/io/ReactiveFolder.java
diff --git a/src/main/java/com/volmit/iris/util/io/VoidOutputStream.java b/core/src/main/java/com/volmit/iris/util/io/VoidOutputStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/io/VoidOutputStream.java
rename to core/src/main/java/com/volmit/iris/util/io/VoidOutputStream.java
diff --git a/src/main/java/com/volmit/iris/util/json/HTTP.java b/core/src/main/java/com/volmit/iris/util/json/HTTP.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/HTTP.java
rename to core/src/main/java/com/volmit/iris/util/json/HTTP.java
diff --git a/src/main/java/com/volmit/iris/util/json/HTTPTokener.java b/core/src/main/java/com/volmit/iris/util/json/HTTPTokener.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/HTTPTokener.java
rename to core/src/main/java/com/volmit/iris/util/json/HTTPTokener.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONArray.java b/core/src/main/java/com/volmit/iris/util/json/JSONArray.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONArray.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONArray.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONException.java b/core/src/main/java/com/volmit/iris/util/json/JSONException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONException.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONException.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONML.java b/core/src/main/java/com/volmit/iris/util/json/JSONML.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONML.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONML.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONObject.java b/core/src/main/java/com/volmit/iris/util/json/JSONObject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONObject.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONObject.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONString.java b/core/src/main/java/com/volmit/iris/util/json/JSONString.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONString.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONString.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONStringer.java b/core/src/main/java/com/volmit/iris/util/json/JSONStringer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONStringer.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONStringer.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONTokener.java b/core/src/main/java/com/volmit/iris/util/json/JSONTokener.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONTokener.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONTokener.java
diff --git a/src/main/java/com/volmit/iris/util/json/JSONWriter.java b/core/src/main/java/com/volmit/iris/util/json/JSONWriter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/JSONWriter.java
rename to core/src/main/java/com/volmit/iris/util/json/JSONWriter.java
diff --git a/src/main/java/com/volmit/iris/util/json/XML.java b/core/src/main/java/com/volmit/iris/util/json/XML.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/XML.java
rename to core/src/main/java/com/volmit/iris/util/json/XML.java
diff --git a/src/main/java/com/volmit/iris/util/json/XMLTokener.java b/core/src/main/java/com/volmit/iris/util/json/XMLTokener.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/json/XMLTokener.java
rename to core/src/main/java/com/volmit/iris/util/json/XMLTokener.java
diff --git a/src/main/java/com/volmit/iris/util/mantle/Mantle.java b/core/src/main/java/com/volmit/iris/util/mantle/Mantle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/mantle/Mantle.java
rename to core/src/main/java/com/volmit/iris/util/mantle/Mantle.java
diff --git a/src/main/java/com/volmit/iris/util/mantle/MantleChunk.java b/core/src/main/java/com/volmit/iris/util/mantle/MantleChunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/mantle/MantleChunk.java
rename to core/src/main/java/com/volmit/iris/util/mantle/MantleChunk.java
diff --git a/src/main/java/com/volmit/iris/util/mantle/MantleFlag.java b/core/src/main/java/com/volmit/iris/util/mantle/MantleFlag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/mantle/MantleFlag.java
rename to core/src/main/java/com/volmit/iris/util/mantle/MantleFlag.java
diff --git a/src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java b/core/src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java
rename to core/src/main/java/com/volmit/iris/util/mantle/TectonicPlate.java
diff --git a/src/main/java/com/volmit/iris/util/math/AlignedPoint.java b/core/src/main/java/com/volmit/iris/util/math/AlignedPoint.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/AlignedPoint.java
rename to core/src/main/java/com/volmit/iris/util/math/AlignedPoint.java
diff --git a/src/main/java/com/volmit/iris/util/math/Average.java b/core/src/main/java/com/volmit/iris/util/math/Average.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Average.java
rename to core/src/main/java/com/volmit/iris/util/math/Average.java
diff --git a/src/main/java/com/volmit/iris/util/math/AxisAlignedBB.java b/core/src/main/java/com/volmit/iris/util/math/AxisAlignedBB.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/AxisAlignedBB.java
rename to core/src/main/java/com/volmit/iris/util/math/AxisAlignedBB.java
diff --git a/src/main/java/com/volmit/iris/util/math/BlockPosition.java b/core/src/main/java/com/volmit/iris/util/math/BlockPosition.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/BlockPosition.java
rename to core/src/main/java/com/volmit/iris/util/math/BlockPosition.java
diff --git a/src/main/java/com/volmit/iris/util/math/CDou.java b/core/src/main/java/com/volmit/iris/util/math/CDou.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/CDou.java
rename to core/src/main/java/com/volmit/iris/util/math/CDou.java
diff --git a/src/main/java/com/volmit/iris/util/math/DOP.java b/core/src/main/java/com/volmit/iris/util/math/DOP.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/DOP.java
rename to core/src/main/java/com/volmit/iris/util/math/DOP.java
diff --git a/src/main/java/com/volmit/iris/util/math/Direction.java b/core/src/main/java/com/volmit/iris/util/math/Direction.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Direction.java
rename to core/src/main/java/com/volmit/iris/util/math/Direction.java
diff --git a/src/main/java/com/volmit/iris/util/math/FinalInteger.java b/core/src/main/java/com/volmit/iris/util/math/FinalInteger.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/FinalInteger.java
rename to core/src/main/java/com/volmit/iris/util/math/FinalInteger.java
diff --git a/src/main/java/com/volmit/iris/util/math/INode.java b/core/src/main/java/com/volmit/iris/util/math/INode.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/INode.java
rename to core/src/main/java/com/volmit/iris/util/math/INode.java
diff --git a/src/main/java/com/volmit/iris/util/math/IrisMathHelper.java b/core/src/main/java/com/volmit/iris/util/math/IrisMathHelper.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/IrisMathHelper.java
rename to core/src/main/java/com/volmit/iris/util/math/IrisMathHelper.java
diff --git a/src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java b/core/src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java
rename to core/src/main/java/com/volmit/iris/util/math/KochanekBartelsInterpolation.java
diff --git a/src/main/java/com/volmit/iris/util/math/M.java b/core/src/main/java/com/volmit/iris/util/math/M.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/M.java
rename to core/src/main/java/com/volmit/iris/util/math/M.java
diff --git a/src/main/java/com/volmit/iris/util/math/MathHelper.java b/core/src/main/java/com/volmit/iris/util/math/MathHelper.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/MathHelper.java
rename to core/src/main/java/com/volmit/iris/util/math/MathHelper.java
diff --git a/src/main/java/com/volmit/iris/util/math/PathInterpolation.java b/core/src/main/java/com/volmit/iris/util/math/PathInterpolation.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/PathInterpolation.java
rename to core/src/main/java/com/volmit/iris/util/math/PathInterpolation.java
diff --git a/src/main/java/com/volmit/iris/util/math/Point3d.java b/core/src/main/java/com/volmit/iris/util/math/Point3d.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Point3d.java
rename to core/src/main/java/com/volmit/iris/util/math/Point3d.java
diff --git a/src/main/java/com/volmit/iris/util/math/Point3f.java b/core/src/main/java/com/volmit/iris/util/math/Point3f.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Point3f.java
rename to core/src/main/java/com/volmit/iris/util/math/Point3f.java
diff --git a/src/main/java/com/volmit/iris/util/math/Point4d.java b/core/src/main/java/com/volmit/iris/util/math/Point4d.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Point4d.java
rename to core/src/main/java/com/volmit/iris/util/math/Point4d.java
diff --git a/src/main/java/com/volmit/iris/util/math/Point4f.java b/core/src/main/java/com/volmit/iris/util/math/Point4f.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Point4f.java
rename to core/src/main/java/com/volmit/iris/util/math/Point4f.java
diff --git a/src/main/java/com/volmit/iris/util/math/Position2.java b/core/src/main/java/com/volmit/iris/util/math/Position2.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Position2.java
rename to core/src/main/java/com/volmit/iris/util/math/Position2.java
diff --git a/src/main/java/com/volmit/iris/util/math/RNG.java b/core/src/main/java/com/volmit/iris/util/math/RNG.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/RNG.java
rename to core/src/main/java/com/volmit/iris/util/math/RNG.java
diff --git a/src/main/java/com/volmit/iris/util/math/RollingSequence.java b/core/src/main/java/com/volmit/iris/util/math/RollingSequence.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/RollingSequence.java
rename to core/src/main/java/com/volmit/iris/util/math/RollingSequence.java
diff --git a/src/main/java/com/volmit/iris/util/math/Spiral.java b/core/src/main/java/com/volmit/iris/util/math/Spiral.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Spiral.java
rename to core/src/main/java/com/volmit/iris/util/math/Spiral.java
diff --git a/src/main/java/com/volmit/iris/util/math/Spiraled.java b/core/src/main/java/com/volmit/iris/util/math/Spiraled.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Spiraled.java
rename to core/src/main/java/com/volmit/iris/util/math/Spiraled.java
diff --git a/src/main/java/com/volmit/iris/util/math/Spiraler.java b/core/src/main/java/com/volmit/iris/util/math/Spiraler.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Spiraler.java
rename to core/src/main/java/com/volmit/iris/util/math/Spiraler.java
diff --git a/src/main/java/com/volmit/iris/util/math/Tuple2d.java b/core/src/main/java/com/volmit/iris/util/math/Tuple2d.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Tuple2d.java
rename to core/src/main/java/com/volmit/iris/util/math/Tuple2d.java
diff --git a/src/main/java/com/volmit/iris/util/math/Tuple2f.java b/core/src/main/java/com/volmit/iris/util/math/Tuple2f.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Tuple2f.java
rename to core/src/main/java/com/volmit/iris/util/math/Tuple2f.java
diff --git a/src/main/java/com/volmit/iris/util/math/Tuple3d.java b/core/src/main/java/com/volmit/iris/util/math/Tuple3d.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Tuple3d.java
rename to core/src/main/java/com/volmit/iris/util/math/Tuple3d.java
diff --git a/src/main/java/com/volmit/iris/util/math/Tuple3f.java b/core/src/main/java/com/volmit/iris/util/math/Tuple3f.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Tuple3f.java
rename to core/src/main/java/com/volmit/iris/util/math/Tuple3f.java
diff --git a/src/main/java/com/volmit/iris/util/math/Tuple4d.java b/core/src/main/java/com/volmit/iris/util/math/Tuple4d.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Tuple4d.java
rename to core/src/main/java/com/volmit/iris/util/math/Tuple4d.java
diff --git a/src/main/java/com/volmit/iris/util/math/Tuple4f.java b/core/src/main/java/com/volmit/iris/util/math/Tuple4f.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Tuple4f.java
rename to core/src/main/java/com/volmit/iris/util/math/Tuple4f.java
diff --git a/src/main/java/com/volmit/iris/util/math/VecMathUtil.java b/core/src/main/java/com/volmit/iris/util/math/VecMathUtil.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/VecMathUtil.java
rename to core/src/main/java/com/volmit/iris/util/math/VecMathUtil.java
diff --git a/src/main/java/com/volmit/iris/util/math/Vector2d.java b/core/src/main/java/com/volmit/iris/util/math/Vector2d.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Vector2d.java
rename to core/src/main/java/com/volmit/iris/util/math/Vector2d.java
diff --git a/src/main/java/com/volmit/iris/util/math/Vector2f.java b/core/src/main/java/com/volmit/iris/util/math/Vector2f.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Vector2f.java
rename to core/src/main/java/com/volmit/iris/util/math/Vector2f.java
diff --git a/src/main/java/com/volmit/iris/util/math/Vector3d.java b/core/src/main/java/com/volmit/iris/util/math/Vector3d.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Vector3d.java
rename to core/src/main/java/com/volmit/iris/util/math/Vector3d.java
diff --git a/src/main/java/com/volmit/iris/util/math/Vector3f.java b/core/src/main/java/com/volmit/iris/util/math/Vector3f.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/Vector3f.java
rename to core/src/main/java/com/volmit/iris/util/math/Vector3f.java
diff --git a/src/main/java/com/volmit/iris/util/math/VectorMath.java b/core/src/main/java/com/volmit/iris/util/math/VectorMath.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/math/VectorMath.java
rename to core/src/main/java/com/volmit/iris/util/math/VectorMath.java
diff --git a/src/main/java/com/volmit/iris/util/matter/IrisMatter.java b/core/src/main/java/com/volmit/iris/util/matter/IrisMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/IrisMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/IrisMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/Matter.java b/core/src/main/java/com/volmit/iris/util/matter/Matter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/Matter.java
rename to core/src/main/java/com/volmit/iris/util/matter/Matter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterBiomeInject.java b/core/src/main/java/com/volmit/iris/util/matter/MatterBiomeInject.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterBiomeInject.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterBiomeInject.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterCavern.java b/core/src/main/java/com/volmit/iris/util/matter/MatterCavern.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterCavern.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterCavern.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterEntity.java b/core/src/main/java/com/volmit/iris/util/matter/MatterEntity.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterEntity.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterEntity.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterEntityGroup.java b/core/src/main/java/com/volmit/iris/util/matter/MatterEntityGroup.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterEntityGroup.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterEntityGroup.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterFilter.java b/core/src/main/java/com/volmit/iris/util/matter/MatterFilter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterFilter.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterFilter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java b/core/src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterFluidBody.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterHeader.java b/core/src/main/java/com/volmit/iris/util/matter/MatterHeader.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterHeader.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterHeader.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterMarker.java b/core/src/main/java/com/volmit/iris/util/matter/MatterMarker.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterMarker.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterMarker.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterPalette.java b/core/src/main/java/com/volmit/iris/util/matter/MatterPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterPalette.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterPalette.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterPlacer.java b/core/src/main/java/com/volmit/iris/util/matter/MatterPlacer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterPlacer.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterPlacer.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterReader.java b/core/src/main/java/com/volmit/iris/util/matter/MatterReader.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterReader.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterReader.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterSlice.java b/core/src/main/java/com/volmit/iris/util/matter/MatterSlice.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterSlice.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterSlice.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterStructurePOI.java b/core/src/main/java/com/volmit/iris/util/matter/MatterStructurePOI.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterStructurePOI.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterStructurePOI.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterUpdate.java b/core/src/main/java/com/volmit/iris/util/matter/MatterUpdate.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterUpdate.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterUpdate.java
diff --git a/src/main/java/com/volmit/iris/util/matter/MatterWriter.java b/core/src/main/java/com/volmit/iris/util/matter/MatterWriter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/MatterWriter.java
rename to core/src/main/java/com/volmit/iris/util/matter/MatterWriter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/Sliced.java b/core/src/main/java/com/volmit/iris/util/matter/Sliced.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/Sliced.java
rename to core/src/main/java/com/volmit/iris/util/matter/Sliced.java
diff --git a/src/main/java/com/volmit/iris/util/matter/TileWrapper.java b/core/src/main/java/com/volmit/iris/util/matter/TileWrapper.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/TileWrapper.java
rename to core/src/main/java/com/volmit/iris/util/matter/TileWrapper.java
diff --git a/src/main/java/com/volmit/iris/util/matter/WorldMatter.java b/core/src/main/java/com/volmit/iris/util/matter/WorldMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/WorldMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/WorldMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/BiomeInjectMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/BiomeInjectMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/BiomeInjectMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/BiomeInjectMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/BlockMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/BooleanMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/CavernMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/CompoundMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/CompoundMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/CompoundMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/CompoundMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/EntityMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/IntMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/JigsawPieceMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/JigsawPieceMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/JigsawPieceMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/JigsawPieceMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/LongMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/MarkerMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/NBTMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/RawMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/RegistryMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/SpawnerMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/SpawnerMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/SpawnerMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/SpawnerMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/StringMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/StructurePOIMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/StructurePOIMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/StructurePOIMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/StructurePOIMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/TileMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java b/core/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/UpdateMatter.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawPieceContainer.java b/core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawPieceContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/container/JigsawPieceContainer.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/container/JigsawPieceContainer.java
diff --git a/src/main/java/com/volmit/iris/util/matter/slices/container/RegistrantContainer.java b/core/src/main/java/com/volmit/iris/util/matter/slices/container/RegistrantContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/matter/slices/container/RegistrantContainer.java
rename to core/src/main/java/com/volmit/iris/util/matter/slices/container/RegistrantContainer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/NBTDeserializer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/NBTInputStream.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/NBTOutputStream.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/NBTSerializer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/NBTUtil.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/NamedTag.java b/core/src/main/java/com/volmit/iris/util/nbt/io/NamedTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/NamedTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/NamedTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/ParseException.java b/core/src/main/java/com/volmit/iris/util/nbt/io/ParseException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/ParseException.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/ParseException.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/SNBTDeserializer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/SNBTParser.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/SNBTSerializer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/SNBTUtil.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java b/core/src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/SNBTWriter.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/io/StringPointer.java b/core/src/main/java/com/volmit/iris/util/nbt/io/StringPointer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/io/StringPointer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/io/StringPointer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/Chunk.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/CompressionType.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/ExceptionFunction.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/LoadFlags.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/MCAFile.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/MCAUtil.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/MCAUtil.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/MCAUtil.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/MCAUtil.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/NBTWorld.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/Section.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/Section.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/Section.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/Section.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABiomeContainer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCABitStorage.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAChunkBiomeContainer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACountConsumer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCACrudeIncrementalIntIdentityHashBiMap.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAGlobalPalette.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAHashMapPalette.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMap.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAIdMapper.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCALinearPalette.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAMth.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalette.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteAccess.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPaletteResize.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAPalettedContainer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAQuartPos.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.java b/core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.java
rename to core/src/main/java/com/volmit/iris/util/nbt/mca/palette/MCAWrappedPalettedContainer.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/ArrayTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/ByteArrayTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/ByteTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/CompoundTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/DoubleTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/EndTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/EndTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/EndTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/EndTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/FloatTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/IntArrayTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/IntTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/IntTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/IntTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/IntTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/ListTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/LongArrayTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/LongTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/LongTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/LongTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/LongTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/NonNullEntrySet.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/NumberTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/ShortTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/StringTag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/StringTag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/StringTag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/StringTag.java
diff --git a/src/main/java/com/volmit/iris/util/nbt/tag/Tag.java b/core/src/main/java/com/volmit/iris/util/nbt/tag/Tag.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/nbt/tag/Tag.java
rename to core/src/main/java/com/volmit/iris/util/nbt/tag/Tag.java
diff --git a/src/main/java/com/volmit/iris/util/network/DL.java b/core/src/main/java/com/volmit/iris/util/network/DL.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/network/DL.java
rename to core/src/main/java/com/volmit/iris/util/network/DL.java
diff --git a/src/main/java/com/volmit/iris/util/network/DownloadException.java b/core/src/main/java/com/volmit/iris/util/network/DownloadException.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/network/DownloadException.java
rename to core/src/main/java/com/volmit/iris/util/network/DownloadException.java
diff --git a/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java b/core/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/network/DownloadMonitor.java
rename to core/src/main/java/com/volmit/iris/util/network/DownloadMonitor.java
diff --git a/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java b/core/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/network/MeteredInputStream.java
rename to core/src/main/java/com/volmit/iris/util/network/MeteredInputStream.java
diff --git a/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java b/core/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java
rename to core/src/main/java/com/volmit/iris/util/network/MeteredOutputStream.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CNG.java b/core/src/main/java/com/volmit/iris/util/noise/CNG.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CNG.java
rename to core/src/main/java/com/volmit/iris/util/noise/CNG.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CNGFactory.java b/core/src/main/java/com/volmit/iris/util/noise/CNGFactory.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CNGFactory.java
rename to core/src/main/java/com/volmit/iris/util/noise/CNGFactory.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CachedNoise.java b/core/src/main/java/com/volmit/iris/util/noise/CachedNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CachedNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/CachedNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CachedNoiseMap.java b/core/src/main/java/com/volmit/iris/util/noise/CachedNoiseMap.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CachedNoiseMap.java
rename to core/src/main/java/com/volmit/iris/util/noise/CachedNoiseMap.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CellGenerator.java b/core/src/main/java/com/volmit/iris/util/noise/CellGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CellGenerator.java
rename to core/src/main/java/com/volmit/iris/util/noise/CellGenerator.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CellHeightNoise.java b/core/src/main/java/com/volmit/iris/util/noise/CellHeightNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CellHeightNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/CellHeightNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CellularNoise.java b/core/src/main/java/com/volmit/iris/util/noise/CellularNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CellularNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/CellularNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CloverNoise.java b/core/src/main/java/com/volmit/iris/util/noise/CloverNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CloverNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/CloverNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/CubicNoise.java b/core/src/main/java/com/volmit/iris/util/noise/CubicNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/CubicNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/CubicNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/ExpressionNoise.java b/core/src/main/java/com/volmit/iris/util/noise/ExpressionNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/ExpressionNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/ExpressionNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FastNoise.java b/core/src/main/java/com/volmit/iris/util/noise/FastNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FastNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/FastNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FastNoiseDouble.java b/core/src/main/java/com/volmit/iris/util/noise/FastNoiseDouble.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FastNoiseDouble.java
rename to core/src/main/java/com/volmit/iris/util/noise/FastNoiseDouble.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FlatNoise.java b/core/src/main/java/com/volmit/iris/util/noise/FlatNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FlatNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/FlatNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FractalBillowPerlinNoise.java b/core/src/main/java/com/volmit/iris/util/noise/FractalBillowPerlinNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FractalBillowPerlinNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/FractalBillowPerlinNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FractalBillowSimplexNoise.java b/core/src/main/java/com/volmit/iris/util/noise/FractalBillowSimplexNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FractalBillowSimplexNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/FractalBillowSimplexNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FractalCubicNoise.java b/core/src/main/java/com/volmit/iris/util/noise/FractalCubicNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FractalCubicNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/FractalCubicNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FractalFBMSimplexNoise.java b/core/src/main/java/com/volmit/iris/util/noise/FractalFBMSimplexNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FractalFBMSimplexNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/FractalFBMSimplexNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/FractalRigidMultiSimplexNoise.java b/core/src/main/java/com/volmit/iris/util/noise/FractalRigidMultiSimplexNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/FractalRigidMultiSimplexNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/FractalRigidMultiSimplexNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/GlobNoise.java b/core/src/main/java/com/volmit/iris/util/noise/GlobNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/GlobNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/GlobNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/ImageNoise.java b/core/src/main/java/com/volmit/iris/util/noise/ImageNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/ImageNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/ImageNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/InterpolatedNoise.java b/core/src/main/java/com/volmit/iris/util/noise/InterpolatedNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/InterpolatedNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/InterpolatedNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/NoiseFactory.java b/core/src/main/java/com/volmit/iris/util/noise/NoiseFactory.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/NoiseFactory.java
rename to core/src/main/java/com/volmit/iris/util/noise/NoiseFactory.java
diff --git a/src/main/java/com/volmit/iris/util/noise/NoiseGenerator.java b/core/src/main/java/com/volmit/iris/util/noise/NoiseGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/NoiseGenerator.java
rename to core/src/main/java/com/volmit/iris/util/noise/NoiseGenerator.java
diff --git a/src/main/java/com/volmit/iris/util/noise/NoiseType.java b/core/src/main/java/com/volmit/iris/util/noise/NoiseType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/NoiseType.java
rename to core/src/main/java/com/volmit/iris/util/noise/NoiseType.java
diff --git a/src/main/java/com/volmit/iris/util/noise/OctaveNoise.java b/core/src/main/java/com/volmit/iris/util/noise/OctaveNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/OctaveNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/OctaveNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/PerlinNoise.java b/core/src/main/java/com/volmit/iris/util/noise/PerlinNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/PerlinNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/PerlinNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/RarityCellGenerator.java b/core/src/main/java/com/volmit/iris/util/noise/RarityCellGenerator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/RarityCellGenerator.java
rename to core/src/main/java/com/volmit/iris/util/noise/RarityCellGenerator.java
diff --git a/src/main/java/com/volmit/iris/util/noise/SimplexNoise.java b/core/src/main/java/com/volmit/iris/util/noise/SimplexNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/SimplexNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/SimplexNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/VascularNoise.java b/core/src/main/java/com/volmit/iris/util/noise/VascularNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/VascularNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/VascularNoise.java
diff --git a/src/main/java/com/volmit/iris/util/noise/WhiteNoise.java b/core/src/main/java/com/volmit/iris/util/noise/WhiteNoise.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/noise/WhiteNoise.java
rename to core/src/main/java/com/volmit/iris/util/noise/WhiteNoise.java
diff --git a/src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java b/core/src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java
rename to core/src/main/java/com/volmit/iris/util/parallel/BurstExecutor.java
diff --git a/src/main/java/com/volmit/iris/util/parallel/BurstedHunk.java b/core/src/main/java/com/volmit/iris/util/parallel/BurstedHunk.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/parallel/BurstedHunk.java
rename to core/src/main/java/com/volmit/iris/util/parallel/BurstedHunk.java
diff --git a/src/main/java/com/volmit/iris/util/parallel/GridLock.java b/core/src/main/java/com/volmit/iris/util/parallel/GridLock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/parallel/GridLock.java
rename to core/src/main/java/com/volmit/iris/util/parallel/GridLock.java
diff --git a/src/main/java/com/volmit/iris/util/parallel/HyperLock.java b/core/src/main/java/com/volmit/iris/util/parallel/HyperLock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/parallel/HyperLock.java
rename to core/src/main/java/com/volmit/iris/util/parallel/HyperLock.java
diff --git a/src/main/java/com/volmit/iris/util/parallel/MultiBurst.java b/core/src/main/java/com/volmit/iris/util/parallel/MultiBurst.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/parallel/MultiBurst.java
rename to core/src/main/java/com/volmit/iris/util/parallel/MultiBurst.java
diff --git a/src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java b/core/src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java
rename to core/src/main/java/com/volmit/iris/util/parallel/NOOPGridLock.java
diff --git a/src/main/java/com/volmit/iris/util/particle/FastParticle.java b/core/src/main/java/com/volmit/iris/util/particle/FastParticle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/particle/FastParticle.java
rename to core/src/main/java/com/volmit/iris/util/particle/FastParticle.java
diff --git a/src/main/java/com/volmit/iris/util/particle/FastReflection.java b/core/src/main/java/com/volmit/iris/util/particle/FastReflection.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/particle/FastReflection.java
rename to core/src/main/java/com/volmit/iris/util/particle/FastReflection.java
diff --git a/src/main/java/com/volmit/iris/util/particle/ParticleSender.java b/core/src/main/java/com/volmit/iris/util/particle/ParticleSender.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/particle/ParticleSender.java
rename to core/src/main/java/com/volmit/iris/util/particle/ParticleSender.java
diff --git a/src/main/java/com/volmit/iris/util/particle/ParticleSenderLegacy.java b/core/src/main/java/com/volmit/iris/util/particle/ParticleSenderLegacy.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/particle/ParticleSenderLegacy.java
rename to core/src/main/java/com/volmit/iris/util/particle/ParticleSenderLegacy.java
diff --git a/src/main/java/com/volmit/iris/util/particle/ParticleType.java b/core/src/main/java/com/volmit/iris/util/particle/ParticleType.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/particle/ParticleType.java
rename to core/src/main/java/com/volmit/iris/util/particle/ParticleType.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/CancellableTask.java b/core/src/main/java/com/volmit/iris/util/plugin/CancellableTask.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/CancellableTask.java
rename to core/src/main/java/com/volmit/iris/util/plugin/CancellableTask.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/Chunks.java b/core/src/main/java/com/volmit/iris/util/plugin/Chunks.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/Chunks.java
rename to core/src/main/java/com/volmit/iris/util/plugin/Chunks.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/Command.java b/core/src/main/java/com/volmit/iris/util/plugin/Command.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/Command.java
rename to core/src/main/java/com/volmit/iris/util/plugin/Command.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/CommandDummy.java b/core/src/main/java/com/volmit/iris/util/plugin/CommandDummy.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/CommandDummy.java
rename to core/src/main/java/com/volmit/iris/util/plugin/CommandDummy.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/Control.java b/core/src/main/java/com/volmit/iris/util/plugin/Control.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/Control.java
rename to core/src/main/java/com/volmit/iris/util/plugin/Control.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/Controller.java b/core/src/main/java/com/volmit/iris/util/plugin/Controller.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/Controller.java
rename to core/src/main/java/com/volmit/iris/util/plugin/Controller.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/ICommand.java b/core/src/main/java/com/volmit/iris/util/plugin/ICommand.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/ICommand.java
rename to core/src/main/java/com/volmit/iris/util/plugin/ICommand.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/IController.java b/core/src/main/java/com/volmit/iris/util/plugin/IController.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/IController.java
rename to core/src/main/java/com/volmit/iris/util/plugin/IController.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/Instance.java b/core/src/main/java/com/volmit/iris/util/plugin/Instance.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/Instance.java
rename to core/src/main/java/com/volmit/iris/util/plugin/Instance.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/IrisService.java b/core/src/main/java/com/volmit/iris/util/plugin/IrisService.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/IrisService.java
rename to core/src/main/java/com/volmit/iris/util/plugin/IrisService.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/Metrics.java b/core/src/main/java/com/volmit/iris/util/plugin/Metrics.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/Metrics.java
rename to core/src/main/java/com/volmit/iris/util/plugin/Metrics.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/MetricsLite.java b/core/src/main/java/com/volmit/iris/util/plugin/MetricsLite.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/MetricsLite.java
rename to core/src/main/java/com/volmit/iris/util/plugin/MetricsLite.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/MortarCommand.java b/core/src/main/java/com/volmit/iris/util/plugin/MortarCommand.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/MortarCommand.java
rename to core/src/main/java/com/volmit/iris/util/plugin/MortarCommand.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/MortarPermission.java b/core/src/main/java/com/volmit/iris/util/plugin/MortarPermission.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/MortarPermission.java
rename to core/src/main/java/com/volmit/iris/util/plugin/MortarPermission.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/Permission.java b/core/src/main/java/com/volmit/iris/util/plugin/Permission.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/Permission.java
rename to core/src/main/java/com/volmit/iris/util/plugin/Permission.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/PluginRegistry.java b/core/src/main/java/com/volmit/iris/util/plugin/PluginRegistry.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/PluginRegistry.java
rename to core/src/main/java/com/volmit/iris/util/plugin/PluginRegistry.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/PluginRegistryGroup.java b/core/src/main/java/com/volmit/iris/util/plugin/PluginRegistryGroup.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/PluginRegistryGroup.java
rename to core/src/main/java/com/volmit/iris/util/plugin/PluginRegistryGroup.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/RouterCommand.java b/core/src/main/java/com/volmit/iris/util/plugin/RouterCommand.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/RouterCommand.java
rename to core/src/main/java/com/volmit/iris/util/plugin/RouterCommand.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/VirtualCommand.java b/core/src/main/java/com/volmit/iris/util/plugin/VirtualCommand.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/VirtualCommand.java
rename to core/src/main/java/com/volmit/iris/util/plugin/VirtualCommand.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/VolmitPlugin.java b/core/src/main/java/com/volmit/iris/util/plugin/VolmitPlugin.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/VolmitPlugin.java
rename to core/src/main/java/com/volmit/iris/util/plugin/VolmitPlugin.java
diff --git a/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java b/core/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/plugin/VolmitSender.java
rename to core/src/main/java/com/volmit/iris/util/plugin/VolmitSender.java
diff --git a/src/main/java/com/volmit/iris/util/reflect/ShadeFix.java b/core/src/main/java/com/volmit/iris/util/reflect/ShadeFix.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/reflect/ShadeFix.java
rename to core/src/main/java/com/volmit/iris/util/reflect/ShadeFix.java
diff --git a/src/main/java/com/volmit/iris/util/reflect/V.java b/core/src/main/java/com/volmit/iris/util/reflect/V.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/reflect/V.java
rename to core/src/main/java/com/volmit/iris/util/reflect/V.java
diff --git a/src/main/java/com/volmit/iris/util/reflect/Violator.java b/core/src/main/java/com/volmit/iris/util/reflect/Violator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/reflect/Violator.java
rename to core/src/main/java/com/volmit/iris/util/reflect/Violator.java
diff --git a/src/main/java/com/volmit/iris/util/reflect/WrappedField.java b/core/src/main/java/com/volmit/iris/util/reflect/WrappedField.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/reflect/WrappedField.java
rename to core/src/main/java/com/volmit/iris/util/reflect/WrappedField.java
diff --git a/src/main/java/com/volmit/iris/util/reflect/WrappedReturningMethod.java b/core/src/main/java/com/volmit/iris/util/reflect/WrappedReturningMethod.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/reflect/WrappedReturningMethod.java
rename to core/src/main/java/com/volmit/iris/util/reflect/WrappedReturningMethod.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/AR.java b/core/src/main/java/com/volmit/iris/util/scheduling/AR.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/AR.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/AR.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Callback.java b/core/src/main/java/com/volmit/iris/util/scheduling/Callback.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Callback.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Callback.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.java b/core/src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/ChronoLatch.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Contained.java b/core/src/main/java/com/volmit/iris/util/scheduling/Contained.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Contained.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Contained.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java b/core/src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/GroupedExecutor.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/IrisLock.java b/core/src/main/java/com/volmit/iris/util/scheduling/IrisLock.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/IrisLock.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/IrisLock.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/J.java b/core/src/main/java/com/volmit/iris/util/scheduling/J.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/J.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/J.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Looper.java b/core/src/main/java/com/volmit/iris/util/scheduling/Looper.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Looper.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Looper.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/O.java b/core/src/main/java/com/volmit/iris/util/scheduling/O.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/O.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/O.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Observable.java b/core/src/main/java/com/volmit/iris/util/scheduling/Observable.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Observable.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Observable.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Observer.java b/core/src/main/java/com/volmit/iris/util/scheduling/Observer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Observer.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Observer.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java b/core/src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/PrecisionStopwatch.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Queue.java b/core/src/main/java/com/volmit/iris/util/scheduling/Queue.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Queue.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Queue.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.java b/core/src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/QueueExecutor.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/S.java b/core/src/main/java/com/volmit/iris/util/scheduling/S.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/S.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/S.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/SR.java b/core/src/main/java/com/volmit/iris/util/scheduling/SR.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/SR.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/SR.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java b/core/src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/ShurikenQueue.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Switch.java b/core/src/main/java/com/volmit/iris/util/scheduling/Switch.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Switch.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Switch.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java b/core/src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/TaskExecutor.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java b/core/src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/ThreadMonitor.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/Wrapper.java b/core/src/main/java/com/volmit/iris/util/scheduling/Wrapper.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/Wrapper.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/Wrapper.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java b/core/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/jobs/DownloadJob.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java b/core/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/jobs/Job.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java b/core/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/jobs/JobCollection.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelQueueJob.java b/core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelQueueJob.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelQueueJob.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/jobs/ParallelQueueJob.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java b/core/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/jobs/QueueJob.java
diff --git a/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java b/core/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java
rename to core/src/main/java/com/volmit/iris/util/scheduling/jobs/SingleJob.java
diff --git a/src/main/java/com/volmit/iris/util/stream/ArraySignificance.java b/core/src/main/java/com/volmit/iris/util/stream/ArraySignificance.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/ArraySignificance.java
rename to core/src/main/java/com/volmit/iris/util/stream/ArraySignificance.java
diff --git a/src/main/java/com/volmit/iris/util/stream/BasicLayer.java b/core/src/main/java/com/volmit/iris/util/stream/BasicLayer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/BasicLayer.java
rename to core/src/main/java/com/volmit/iris/util/stream/BasicLayer.java
diff --git a/src/main/java/com/volmit/iris/util/stream/BasicStream.java b/core/src/main/java/com/volmit/iris/util/stream/BasicStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/BasicStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/BasicStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/ProceduralLayer.java b/core/src/main/java/com/volmit/iris/util/stream/ProceduralLayer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/ProceduralLayer.java
rename to core/src/main/java/com/volmit/iris/util/stream/ProceduralLayer.java
diff --git a/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java b/core/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/ProceduralStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/ProceduralStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/Significance.java b/core/src/main/java/com/volmit/iris/util/stream/Significance.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/Significance.java
rename to core/src/main/java/com/volmit/iris/util/stream/Significance.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/AddingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/ClampedStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ClampedStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/ClampedStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/ClampedStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftLeftStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftLeftStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftLeftStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftLeftStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftRightStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftRightStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftRightStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/CoordinateBitShiftRightStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/DividingStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/DividingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/DividingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/DividingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/FittedStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/FittedStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/FittedStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/FittedStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/MaxingStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MaxingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/MaxingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/MaxingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/MinningStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MinningStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/MinningStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/MinningStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/ModuloStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ModuloStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/ModuloStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/ModuloStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/MultiplyingStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/MultiplyingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/MultiplyingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/MultiplyingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/OffsetStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/OffsetStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/OffsetStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/OffsetStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/RadialStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/RadialStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/RadialStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/RadialStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/RoundingDoubleStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/RoundingDoubleStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/RoundingDoubleStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/RoundingDoubleStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/SlopeStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/SlopeStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/SlopeStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/SlopeStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/SubtractingStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/SubtractingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/SubtractingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/SubtractingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/arithmetic/ZoomStream.java b/core/src/main/java/com/volmit/iris/util/stream/arithmetic/ZoomStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/arithmetic/ZoomStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/arithmetic/ZoomStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream2D.java b/core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream2D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream2D.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream2D.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream3D.java b/core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream3D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream3D.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/AwareConversionStream3D.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/CachedConversionStream.java b/core/src/main/java/com/volmit/iris/util/stream/convert/CachedConversionStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/CachedConversionStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/CachedConversionStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/ConversionStream.java b/core/src/main/java/com/volmit/iris/util/stream/convert/ConversionStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/ConversionStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/ConversionStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/ForceDoubleStream.java b/core/src/main/java/com/volmit/iris/util/stream/convert/ForceDoubleStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/ForceDoubleStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/ForceDoubleStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/RoundingStream.java b/core/src/main/java/com/volmit/iris/util/stream/convert/RoundingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/RoundingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/RoundingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/SelectionStream.java b/core/src/main/java/com/volmit/iris/util/stream/convert/SelectionStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/SelectionStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/SelectionStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/SignificanceStream.java b/core/src/main/java/com/volmit/iris/util/stream/convert/SignificanceStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/SignificanceStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/SignificanceStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/convert/To3DStream.java b/core/src/main/java/com/volmit/iris/util/stream/convert/To3DStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/convert/To3DStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/convert/To3DStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/BiHermiteStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/BiHermiteStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/BiHermiteStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/BiHermiteStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/BiStarcastStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/BiStarcastStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/BiStarcastStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/BiStarcastStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/BicubicStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/BicubicStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/BicubicStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/BicubicStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/BilinearStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/BilinearStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/BilinearStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/BilinearStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolated.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolated.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/Interpolated.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolated.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatingStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolator.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/Interpolator.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/Interpolator.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatorFactory.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatorFactory.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatorFactory.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/InterpolatorFactory.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/TriHermiteStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/TriHermiteStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/TriHermiteStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/TriHermiteStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/TriStarcastStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/TriStarcastStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/TriStarcastStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/TriStarcastStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/TricubicStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/TricubicStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/TricubicStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/TricubicStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/interpolation/TrilinearStream.java b/core/src/main/java/com/volmit/iris/util/stream/interpolation/TrilinearStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/interpolation/TrilinearStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/interpolation/TrilinearStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/sources/CNGStream.java b/core/src/main/java/com/volmit/iris/util/stream/sources/CNGStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/sources/CNGStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/sources/CNGStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/sources/FunctionStream.java b/core/src/main/java/com/volmit/iris/util/stream/sources/FunctionStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/sources/FunctionStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/sources/FunctionStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/CachedStream2D.java b/core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream2D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/CachedStream2D.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream2D.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/CachedStream3D.java b/core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream3D.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/CachedStream3D.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/CachedStream3D.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/ContextInjectingStream.java b/core/src/main/java/com/volmit/iris/util/stream/utility/ContextInjectingStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/ContextInjectingStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/ContextInjectingStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/NullSafeStream.java b/core/src/main/java/com/volmit/iris/util/stream/utility/NullSafeStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/NullSafeStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/NullSafeStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/ProfiledStream.java b/core/src/main/java/com/volmit/iris/util/stream/utility/ProfiledStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/ProfiledStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/ProfiledStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/SemaphoreStream.java b/core/src/main/java/com/volmit/iris/util/stream/utility/SemaphoreStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/SemaphoreStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/SemaphoreStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/SynchronizedStream.java b/core/src/main/java/com/volmit/iris/util/stream/utility/SynchronizedStream.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/SynchronizedStream.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/SynchronizedStream.java
diff --git a/src/main/java/com/volmit/iris/util/stream/utility/WasteDetector.java b/core/src/main/java/com/volmit/iris/util/stream/utility/WasteDetector.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/stream/utility/WasteDetector.java
rename to core/src/main/java/com/volmit/iris/util/stream/utility/WasteDetector.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/U.java b/core/src/main/java/com/volmit/iris/util/uniques/U.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/U.java
rename to core/src/main/java/com/volmit/iris/util/uniques/U.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/UBufferedImage.java b/core/src/main/java/com/volmit/iris/util/uniques/UBufferedImage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/UBufferedImage.java
rename to core/src/main/java/com/volmit/iris/util/uniques/UBufferedImage.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/UFeature.java b/core/src/main/java/com/volmit/iris/util/uniques/UFeature.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/UFeature.java
rename to core/src/main/java/com/volmit/iris/util/uniques/UFeature.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/UFeatureMeta.java b/core/src/main/java/com/volmit/iris/util/uniques/UFeatureMeta.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/UFeatureMeta.java
rename to core/src/main/java/com/volmit/iris/util/uniques/UFeatureMeta.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/UImage.java b/core/src/main/java/com/volmit/iris/util/uniques/UImage.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/UImage.java
rename to core/src/main/java/com/volmit/iris/util/uniques/UImage.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/UMeta.java b/core/src/main/java/com/volmit/iris/util/uniques/UMeta.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/UMeta.java
rename to core/src/main/java/com/volmit/iris/util/uniques/UMeta.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/UniqueRenderer.java b/core/src/main/java/com/volmit/iris/util/uniques/UniqueRenderer.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/UniqueRenderer.java
rename to core/src/main/java/com/volmit/iris/util/uniques/UniqueRenderer.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/features/UFInterpolator.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFInterpolator.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/features/UFInterpolator.java
rename to core/src/main/java/com/volmit/iris/util/uniques/features/UFInterpolator.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java
rename to core/src/main/java/com/volmit/iris/util/uniques/features/UFNOOP.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedBackground.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedBackground.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/features/UFWarpedBackground.java
rename to core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedBackground.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedCircle.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedCircle.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/features/UFWarpedCircle.java
rename to core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedCircle.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDisc.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDisc.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDisc.java
rename to core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDisc.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDots.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDots.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDots.java
rename to core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedDots.java
diff --git a/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedLines.java b/core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedLines.java
similarity index 100%
rename from src/main/java/com/volmit/iris/util/uniques/features/UFWarpedLines.java
rename to core/src/main/java/com/volmit/iris/util/uniques/features/UFWarpedLines.java
diff --git a/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml
similarity index 100%
rename from src/main/resources/plugin.yml
rename to core/src/main/resources/plugin.yml
diff --git a/nms/v1_19_R1/src/main/java/com/volmit/iris/core/nms/v1_19_R1/CustomBiomeSource.java b/nms/v1_19_R1/src/main/java/com/volmit/iris/core/nms/v1_19_R1/CustomBiomeSource.java
new file mode 100644
index 000000000..a24e62d85
--- /dev/null
+++ b/nms/v1_19_R1/src/main/java/com/volmit/iris/core/nms/v1_19_R1/CustomBiomeSource.java
@@ -0,0 +1,150 @@
+package com.volmit.iris.core.nms.v1_19_R1;
+
+import com.mojang.serialization.Codec;
+import com.volmit.iris.Iris;
+import com.volmit.iris.engine.data.cache.AtomicCache;
+import com.volmit.iris.engine.framework.Engine;
+import com.volmit.iris.engine.object.IrisBiome;
+import com.volmit.iris.engine.object.IrisBiomeCustom;
+import com.volmit.iris.util.collection.KMap;
+import com.volmit.iris.util.math.RNG;
+import net.minecraft.core.Holder;
+import net.minecraft.core.Registry;
+import net.minecraft.core.RegistryAccess;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.world.level.biome.Biome;
+import net.minecraft.world.level.biome.BiomeSource;
+import net.minecraft.world.level.biome.Climate;
+import org.bukkit.Bukkit;
+import org.bukkit.World;
+import org.bukkit.craftbukkit.v1_19_R1.CraftServer;
+import org.bukkit.craftbukkit.v1_19_R1.CraftWorld;
+import org.bukkit.craftbukkit.v1_19_R1.block.CraftBlock;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CustomBiomeSource extends BiomeSource {
+ private final long seed;
+ private final Engine engine;
+ private final Registry biomeCustomRegistry;
+ private final Registry biomeRegistry;
+ private final AtomicCache registryAccess = new AtomicCache<>();
+ private final RNG rng;
+ private final KMap> customBiomes;
+
+ public CustomBiomeSource(long seed, Engine engine, World world) {
+ super(getAllBiomes(
+ ((RegistryAccess) getFor(RegistryAccess.Frozen.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer()))
+ .registry(Registry.BIOME_REGISTRY).orElse(null),
+ ((CraftWorld) world).getHandle().registryAccess().registry(Registry.BIOME_REGISTRY).orElse(null),
+ engine));
+ this.engine = engine;
+ this.seed = seed;
+ this.biomeCustomRegistry = registry().registry(Registry.BIOME_REGISTRY).orElse(null);
+ this.biomeRegistry = ((CraftWorld) world).getHandle().registryAccess().registry(Registry.BIOME_REGISTRY).orElse(null);
+ this.rng = new RNG(engine.getSeedManager().getBiome());
+ this.customBiomes = fillCustomBiomes(biomeCustomRegistry, engine);
+ }
+
+ private static List> getAllBiomes(Registry customRegistry, Registry registry, Engine engine) {
+ List> b = new ArrayList<>();
+
+ for (IrisBiome i : engine.getAllBiomes()) {
+ if (i.isCustom()) {
+ for (IrisBiomeCustom j : i.getCustomDerivitives()) {
+ b.add(customRegistry.getHolder(customRegistry.getResourceKey(customRegistry
+ .get(new ResourceLocation(engine.getDimension().getLoadKey() + ":" + j.getId()))).get()).get());
+ }
+ } else {
+ b.add(CraftBlock.biomeToBiomeBase(registry, i.getVanillaDerivative()));
+ }
+ }
+
+ return b;
+ }
+
+ private static Object getFor(Class> type, Object source) {
+ Object o = fieldFor(type, source);
+
+ if (o != null) {
+ return o;
+ }
+
+ return invokeFor(type, source);
+ }
+
+ private static Object fieldFor(Class> returns, Object in) {
+ return fieldForClass(returns, in.getClass(), in);
+ }
+
+ private static Object invokeFor(Class> returns, Object in) {
+ for (Method i : in.getClass().getMethods()) {
+ if (i.getReturnType().equals(returns)) {
+ i.setAccessible(true);
+ try {
+ Iris.debug("[NMS] Found " + returns.getSimpleName() + " in " + in.getClass().getSimpleName() + "." + i.getName() + "()");
+ return i.invoke(in);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ return null;
+ }
+
+ @SuppressWarnings("unchecked")
+ private static T fieldForClass(Class returnType, Class> sourceType, Object in) {
+ for (Field i : sourceType.getDeclaredFields()) {
+ if (i.getType().equals(returnType)) {
+ i.setAccessible(true);
+ try {
+ Iris.debug("[NMS] Found " + returnType.getSimpleName() + " in " + sourceType.getSimpleName() + "." + i.getName());
+ return (T) i.get(in);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return null;
+ }
+
+ private KMap> fillCustomBiomes(Registry customRegistry, Engine engine) {
+ KMap> m = new KMap<>();
+
+ for (IrisBiome i : engine.getAllBiomes()) {
+ if (i.isCustom()) {
+ for (IrisBiomeCustom j : i.getCustomDerivitives()) {
+ m.put(j.getId(), customRegistry.getHolder(customRegistry.getResourceKey(customRegistry
+ .get(new ResourceLocation(engine.getDimension().getLoadKey() + ":" + j.getId()))).get()).get());
+ }
+ }
+ }
+
+ return m;
+ }
+
+ private RegistryAccess registry() {
+ return registryAccess.aquire(() -> (RegistryAccess) getFor(RegistryAccess.Frozen.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer()));
+ }
+
+ @Override
+ protected Codec extends BiomeSource> codec() {
+ throw new UnsupportedOperationException("Not supported");
+ }
+
+ @Override
+ public Holder getNoiseBiome(int x, int y, int z, Climate.Sampler sampler) {
+ int m = (y - engine.getMinHeight()) << 2;
+ IrisBiome ib = engine.getComplex().getTrueBiomeStream().get(x << 2, z << 2);
+ if (ib.isCustom()) {
+ return customBiomes.get(ib.getCustomBiome(rng, x << 2, m, z << 2).getId());
+ } else {
+ org.bukkit.block.Biome v = ib.getSkyBiome(rng, x << 2, m, z << 2);
+ return CraftBlock.biomeToBiomeBase(biomeRegistry, v);
+ }
+ }
+}
\ No newline at end of file
diff --git a/nms/v1_19_R1/src/main/java/com/volmit/iris/core/nms/v1_19_R1/NMSBinding.java b/nms/v1_19_R1/src/main/java/com/volmit/iris/core/nms/v1_19_R1/NMSBinding.java
new file mode 100644
index 000000000..abea5d67c
--- /dev/null
+++ b/nms/v1_19_R1/src/main/java/com/volmit/iris/core/nms/v1_19_R1/NMSBinding.java
@@ -0,0 +1,496 @@
+package com.volmit.iris.core.nms.v1_19_R1;
+
+import com.mojang.brigadier.exceptions.CommandSyntaxException;
+import com.volmit.iris.Iris;
+import com.volmit.iris.core.nms.INMSBinding;
+import com.volmit.iris.engine.data.cache.AtomicCache;
+import com.volmit.iris.engine.framework.Engine;
+import com.volmit.iris.util.collection.KMap;
+import com.volmit.iris.util.hunk.Hunk;
+import com.volmit.iris.util.json.JSONObject;
+import com.volmit.iris.util.mantle.Mantle;
+import com.volmit.iris.util.matter.MatterBiomeInject;
+import com.volmit.iris.util.nbt.io.NBTUtil;
+import com.volmit.iris.util.nbt.mca.NBTWorld;
+import com.volmit.iris.util.nbt.mca.palette.*;
+import com.volmit.iris.util.nbt.tag.CompoundTag;
+import it.unimi.dsi.fastutil.objects.Object2IntMap;
+import net.minecraft.core.BlockPos;
+import net.minecraft.core.Holder;
+import net.minecraft.core.Registry;
+import net.minecraft.core.RegistryAccess;
+import net.minecraft.nbt.NbtIo;
+import net.minecraft.nbt.TagParser;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.server.level.ServerLevel;
+import net.minecraft.world.level.biome.BiomeSource;
+import net.minecraft.world.level.block.Block;
+import net.minecraft.world.level.block.entity.BlockEntity;
+import net.minecraft.world.level.block.state.BlockState;
+import net.minecraft.world.level.chunk.ChunkAccess;
+import net.minecraft.world.level.chunk.LevelChunk;
+import org.bukkit.*;
+import org.bukkit.block.Biome;
+import org.bukkit.block.data.BlockData;
+
+import org.bukkit.craftbukkit.v1_19_R1.CraftChunk;
+import org.bukkit.craftbukkit.v1_19_R1.CraftServer;
+import org.bukkit.craftbukkit.v1_19_R1.CraftWorld;
+import org.bukkit.craftbukkit.v1_19_R1.block.CraftBlock;
+import org.bukkit.craftbukkit.v1_19_R1.block.data.CraftBlockData;
+import org.bukkit.craftbukkit.v1_19_R1.entity.CraftDolphin;
+import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack;
+import org.bukkit.entity.Dolphin;
+import org.bukkit.entity.Entity;
+import org.bukkit.generator.ChunkGenerator;
+import org.bukkit.inventory.ItemStack;
+import org.jetbrains.annotations.NotNull;
+import sun.misc.Unsafe;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Iterator;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class NMSBinding implements INMSBinding {
+ private final KMap baseBiomeCache = new KMap<>();
+ private final BlockData AIR = Material.AIR.createBlockData();
+ private final AtomicCache> biomeMapCache = new AtomicCache<>();
+ private final AtomicCache> registryCache = new AtomicCache<>();
+ private final AtomicCache> globalCache = new AtomicCache<>();
+ private final AtomicCache registryAccess = new AtomicCache<>();
+ private final AtomicCache byIdRef = new AtomicCache<>();
+ private Field biomeStorageCache = null;
+
+ private static Object getFor(Class> type, Object source) {
+ Object o = fieldFor(type, source);
+
+ if (o != null) {
+ return o;
+ }
+
+ return invokeFor(type, source);
+ }
+
+ private static Object invokeFor(Class> returns, Object in) {
+ for (Method i : in.getClass().getMethods()) {
+ if (i.getReturnType().equals(returns)) {
+ i.setAccessible(true);
+ try {
+ Iris.debug("[NMS] Found " + returns.getSimpleName() + " in " + in.getClass().getSimpleName() + "." + i.getName() + "()");
+ return i.invoke(in);
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ return null;
+ }
+
+ private static Object fieldFor(Class> returns, Object in) {
+ return fieldForClass(returns, in.getClass(), in);
+ }
+
+ @SuppressWarnings("unchecked")
+ private static T fieldForClass(Class returnType, Class> sourceType, Object in) {
+ for (Field i : sourceType.getDeclaredFields()) {
+ if (i.getType().equals(returnType)) {
+ i.setAccessible(true);
+ try {
+ Iris.debug("[NMS] Found " + returnType.getSimpleName() + " in " + sourceType.getSimpleName() + "." + i.getName());
+ return (T) i.get(in);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ return null;
+ }
+
+ private static Class> getClassType(Class> type, int ordinal) {
+ return type.getDeclaredClasses()[ordinal];
+ }
+
+ @Override
+ public boolean hasTile(Location l) {
+ return ((CraftWorld) l.getWorld()).getHandle().getBlockEntity(new BlockPos(l.getBlockX(), l.getBlockY(), l.getBlockZ()), false) != null;
+ }
+
+ @Override
+ public CompoundTag serializeTile(Location location) {
+ BlockEntity e = ((CraftWorld) location.getWorld()).getHandle().getBlockEntity(new BlockPos(location.getBlockX(), location.getBlockY(), location.getBlockZ()), true);
+
+ if (e == null) {
+ return null;
+ }
+
+ net.minecraft.nbt.CompoundTag tag = e.saveWithFullMetadata();
+ return convert(tag);
+ }
+
+ private CompoundTag convert(net.minecraft.nbt.CompoundTag tag) {
+ try {
+ ByteArrayOutputStream boas = new ByteArrayOutputStream();
+ DataOutputStream dos = new DataOutputStream(boas);
+ tag.write(dos);
+ dos.close();
+ return (CompoundTag) NBTUtil.read(new ByteArrayInputStream(boas.toByteArray()), false).getTag();
+ } catch (Throwable ex) {
+ ex.printStackTrace();
+ }
+
+ return null;
+ }
+
+ private net.minecraft.nbt.CompoundTag convert(CompoundTag tag) {
+ try {
+ ByteArrayOutputStream boas = new ByteArrayOutputStream();
+ NBTUtil.write(tag, boas, false);
+ DataInputStream din = new DataInputStream(new ByteArrayInputStream(boas.toByteArray()));
+ net.minecraft.nbt.CompoundTag c = NbtIo.read(din);
+ din.close();
+ return c;
+ } catch (Throwable e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ @Override
+ public void deserializeTile(CompoundTag c, Location pos) {
+ ((CraftWorld) pos.getWorld()).getHandle().getChunkAt(new BlockPos(pos.getBlockX(), 0, pos.getBlockZ())).setBlockEntityNbt(convert(c));
+ }
+
+ @Override
+ public CompoundTag serializeEntity(Entity location) {
+ return null;// TODO:
+ }
+
+ @Override
+ public Entity deserializeEntity(CompoundTag s, Location newPosition) {
+ return null;// TODO:
+ }
+
+ @Override
+ public boolean supportsCustomHeight() {
+ return true;
+ }
+
+ private RegistryAccess registry() {
+ return registryAccess.aquire(() -> (RegistryAccess) getFor(RegistryAccess.Frozen.class, ((CraftServer) Bukkit.getServer()).getHandle().getServer()));
+ }
+
+ private Registry getCustomBiomeRegistry() {
+ return registry().registry(Registry.BIOME_REGISTRY).orElse(null);
+ }
+
+ private Registry getBlockRegistry() {
+ return registry().registry(Registry.BLOCK_REGISTRY).orElse(null);
+ }
+
+ @Override
+ public Object getBiomeBaseFromId(int id) {
+ return getCustomBiomeRegistry().getHolder(id);
+ }
+
+ @Override
+ public int getMinHeight(World world) {
+ return world.getMinHeight();
+ }
+
+ @Override
+ public boolean supportsCustomBiomes() {
+ return true;
+ }
+
+ @Override
+ public int getTrueBiomeBaseId(Object biomeBase) {
+ return getCustomBiomeRegistry().getId(((Holder) biomeBase).value());
+ }
+
+ @Override
+ public Object getTrueBiomeBase(Location location) {
+ return ((CraftWorld) location.getWorld()).getHandle().getBiome(new BlockPos(location.getBlockX(), location.getBlockY(), location.getBlockZ()));
+ }
+
+ @Override
+ public String getTrueBiomeBaseKey(Location location) {
+ return getKeyForBiomeBase(getTrueBiomeBase(location));
+ }
+
+ @Override
+ public Object getCustomBiomeBaseFor(String mckey) {
+ return getCustomBiomeRegistry().get(new ResourceLocation(mckey));
+ }
+
+ @Override
+ public Object getCustomBiomeBaseHolderFor(String mckey) {
+ return getCustomBiomeRegistry().getHolder(getTrueBiomeBaseId(getCustomBiomeRegistry().get(new ResourceLocation(mckey)))).get();
+ }
+
+ public int getBiomeBaseIdForKey(String key) {
+ return getCustomBiomeRegistry().getId(getCustomBiomeRegistry().get(new ResourceLocation(key)));
+ }
+
+ @Override
+ public String getKeyForBiomeBase(Object biomeBase) {
+ return getCustomBiomeRegistry().getKey((net.minecraft.world.level.biome.Biome) biomeBase).getPath(); // something, not something:something
+ }
+
+ @Override
+ public Object getBiomeBase(World world, Biome biome) {
+ return CraftBlock.biomeToBiomeBase(((CraftWorld) world).getHandle()
+ .registryAccess().registry(Registry.BIOME_REGISTRY).orElse(null), biome);
+ }
+
+ @Override
+ public Object getBiomeBase(Object registry, Biome biome) {
+ Object v = baseBiomeCache.get(biome);
+
+ if (v != null) {
+ return v;
+ }
+ //noinspection unchecked
+ v = CraftBlock.biomeToBiomeBase((Registry) registry, biome);
+ if (v == null) {
+ // Ok so there is this new biome name called "CUSTOM" in Paper's new releases.
+ // But, this does NOT exist within CraftBukkit which makes it return an error.
+ // So, we will just return the ID that the plains biome returns instead.
+ //noinspection unchecked
+ return CraftBlock.biomeToBiomeBase((Registry) registry, Biome.PLAINS);
+ }
+ baseBiomeCache.put(biome, v);
+ return v;
+ }
+
+ @Override
+ public boolean isBukkit() {
+ return true;
+ }
+
+ @Override
+ public int getBiomeId(Biome biome) {
+ for (World i : Bukkit.getWorlds()) {
+ if (i.getEnvironment().equals(World.Environment.NORMAL)) {
+ Registry registry = ((CraftWorld) i).getHandle().registryAccess().registry(Registry.BIOME_REGISTRY).orElse(null);
+ return registry.getId((net.minecraft.world.level.biome.Biome) getBiomeBase(registry, biome));
+ }
+ }
+
+ return biome.ordinal();
+ }
+
+ private MCAIdMap getBiomeMapping() {
+ return biomeMapCache.aquire(() -> new MCAIdMap<>() {
+ @NotNull
+ @Override
+ public Iterator iterator() {
+ return getCustomBiomeRegistry().iterator();
+ }
+
+ @Override
+ public int getId(net.minecraft.world.level.biome.Biome paramT) {
+ return getCustomBiomeRegistry().getId(paramT);
+ }
+
+ @Override
+ public net.minecraft.world.level.biome.Biome byId(int paramInt) {
+ return (net.minecraft.world.level.biome.Biome) getBiomeBaseFromId(paramInt);
+ }
+ });
+ }
+
+ @NotNull
+ private MCABiomeContainer getBiomeContainerInterface(MCAIdMap biomeMapping, MCAChunkBiomeContainer base) {
+ return new MCABiomeContainer() {
+ @Override
+ public int[] getData() {
+ return base.writeBiomes();
+ }
+
+ @Override
+ public void setBiome(int x, int y, int z, int id) {
+ base.setBiome(x, y, z, biomeMapping.byId(id));
+ }
+
+ @Override
+ public int getBiome(int x, int y, int z) {
+ return biomeMapping.getId(base.getBiome(x, y, z));
+ }
+ };
+ }
+
+ @Override
+ public MCABiomeContainer newBiomeContainer(int min, int max) {
+ MCAChunkBiomeContainer base = new MCAChunkBiomeContainer<>(getBiomeMapping(), min, max);
+ return getBiomeContainerInterface(getBiomeMapping(), base);
+ }
+
+ @Override
+ public MCABiomeContainer newBiomeContainer(int min, int max, int[] data) {
+ MCAChunkBiomeContainer base = new MCAChunkBiomeContainer<>(getBiomeMapping(), min, max, data);
+ return getBiomeContainerInterface(getBiomeMapping(), base);
+ }
+
+ @Override
+ public int countCustomBiomes() {
+ AtomicInteger a = new AtomicInteger(0);
+
+ getCustomBiomeRegistry().keySet().forEach((i) -> {
+ if (i.getNamespace().equals("minecraft")) {
+ return;
+ }
+
+ a.incrementAndGet();
+ Iris.debug("Custom Biome: " + i);
+ });
+
+ return a.get();
+ }
+
+ public boolean supportsDataPacks() {
+ return true;
+ }
+
+ public void setBiomes(int cx, int cz, World world, Hunk