diff --git a/examples/anomalies/example.yml b/assets/examples/anomalies/example.yml
similarity index 100%
rename from examples/anomalies/example.yml
rename to assets/examples/anomalies/example.yml
diff --git a/examples/blocks/example.json b/assets/examples/blocks/example.json
similarity index 100%
rename from examples/blocks/example.json
rename to assets/examples/blocks/example.json
diff --git a/examples/discord_links.json b/assets/examples/discord_links.json
similarity index 100%
rename from examples/discord_links.json
rename to assets/examples/discord_links.json
diff --git a/examples/ids.json b/assets/examples/ids.json
similarity index 100%
rename from examples/ids.json
rename to assets/examples/ids.json
diff --git a/examples/items/example.yml b/assets/examples/items/example.yml
similarity index 100%
rename from examples/items/example.yml
rename to assets/examples/items/example.yml
diff --git a/examples/languages.yml b/assets/examples/languages.yml
similarity index 100%
rename from examples/languages.yml
rename to assets/examples/languages.yml
diff --git a/examples/muted_players.json b/assets/examples/muted_players.json
similarity index 100%
rename from examples/muted_players.json
rename to assets/examples/muted_players.json
diff --git a/examples/players/00000000-0000-0000-0000-000000000000.yml b/assets/examples/players/00000000-0000-0000-0000-000000000000.yml
similarity index 100%
rename from examples/players/00000000-0000-0000-0000-000000000000.yml
rename to assets/examples/players/00000000-0000-0000-0000-000000000000.yml
diff --git a/examples/resource-packs.yml b/assets/examples/resource-packs.yml
similarity index 100%
rename from examples/resource-packs.yml
rename to assets/examples/resource-packs.yml
diff --git a/build.gradle.kts b/build.gradle.kts
index 2fd72cd7..6dddcb8b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,77 +1,82 @@
+val utf8: String = Charsets.UTF_8.name()
+val javaVersion: Int = property("java.version").toString().toInt()
+val javaCompilerArgs: String = property("java.compilerArgs").toString()
+val projectGroup: String = property("project.group").toString()
+val projectVersion: Any = property("project.version")!!
+val projectDescription: String = property("project.description").toString()
+
plugins {
java
- alias(libs.plugins.paper.userdev)
- alias(libs.plugins.shadow)
- alias(libs.plugins.run.paper)
+ alias(libs.plugins.shadow) apply false
+ alias(libs.plugins.paper.userdev) apply false
+ alias(libs.plugins.paper.run) apply false
}
-group = "com.minersstudios"
-version = "1.0.0"
-description = "A Minecraft plugin for WhoMine"
+subprojects {
+ apply(plugin = "java")
-java {
- toolchain.languageVersion.set(JavaLanguageVersion.of(17))
-}
+ group = project.group
+ version = projectVersion
+ description = projectDescription
-repositories {
- mavenCentral()
- maven("https://repo.papermc.io/repository/maven-public/")
- maven("https://repo.codemc.org/repository/maven-public/")
- maven("https://maven.playpro.com")
-}
+ java {
+ toolchain.languageVersion.set(JavaLanguageVersion.of(javaVersion))
+ }
-dependencies {
- paperweight.paperDevBundle("1.20.4-R0.1-SNAPSHOT")
- compileOnly(libs.jetbrains.annotations)
- compileOnly(libs.jackson.annotations)
- compileOnly(libs.jda)
- compileOnly(libs.authme)
- compileOnly(libs.coreprotect)
-}
+ repositories {
+ mavenCentral()
+ maven("https://repo.papermc.io/repository/maven-public/")
+ maven("https://repo.codemc.org/repository/maven-public/")
+ maven("https://maven.playpro.com")
+ }
-sourceSets {
- test {
- java {
- srcDirs("src/main/test/java")
- }
+ dependencies {
+ compileOnly(rootProject.libs.fastutil)
+ compileOnly(rootProject.libs.google.guava)
+ compileOnly(rootProject.libs.google.gson)
+ compileOnly(rootProject.libs.google.jsr305)
+ compileOnly(rootProject.libs.jetbrains.annotations)
+ compileOnly(rootProject.libs.jackson.annotations)
+ compileOnly(rootProject.libs.jda)
}
-}
-tasks {
- val utf8 = Charsets.UTF_8.name()
+ tasks {
+ compileJava {
+ options.encoding = utf8
- assemble {
- dependsOn(reobfJar)
- }
+ options.release.set(javaVersion)
+ options.compilerArgs.add(javaCompilerArgs)
+ }
- compileJava {
- options.encoding = utf8
+ jar {
+ archiveBaseName.set("${rootProject.name}-${project.name}")
+ destinationDirectory.set(file("$rootDir/build"))
+ }
- options.release.set(17)
- options.compilerArgs.add("-Xlint:deprecation")
- }
+ javadoc {
+ enabled = false
+ options.encoding = utf8
+ setDestinationDir(file("$rootDir/builds/javadoc"))
+ }
- javadoc {
- options.encoding = utf8
+ processResources {
+ filteringCharset = utf8
+ }
}
+}
- processResources {
- filteringCharset = utf8
- val props = mapOf(
- "name" to rootProject.name,
- "version" to rootProject.version,
- "description" to "A Minecraft plugin for WhoMine",
- "author" to "MinersStudios",
- "contributors" to "p0loskun, PackmanDude",
- "website" to "https://whomine.net",
- "apiVersion" to "'1.20'",
- "coreProtectVersion" to libs.versions.coreprotect.get(),
- "authMeVersion" to libs.versions.authme.get(),
- )
-
- inputs.properties(props)
- filesMatching("paper-plugin.yml") {
- expand(props)
+tasks {
+ compileJava { enabled = false }
+ processResources { enabled = false }
+ classes { enabled = false }
+ jar {
+ doLast {
+ file("build").deleteRecursively()
}
}
+ assemble { enabled = false }
+ testClasses { enabled = false }
+ test { enabled = false }
+ check { enabled = false }
+ build { enabled = false }
}
diff --git a/common/build.gradle.kts b/common/build.gradle.kts
new file mode 100644
index 00000000..e69de29b
diff --git a/src/main/java/com/minersstudios/whomine/annotation/Key.java b/common/src/main/java/com/minersstudios/whomine/api/annotation/Key.java
similarity index 95%
rename from src/main/java/com/minersstudios/whomine/annotation/Key.java
rename to common/src/main/java/com/minersstudios/whomine/api/annotation/Key.java
index d8ed47e8..127dcdf8 100644
--- a/src/main/java/com/minersstudios/whomine/annotation/Key.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/annotation/Key.java
@@ -1,6 +1,6 @@
-package com.minersstudios.whomine.annotation;
+package com.minersstudios.whomine.api.annotation;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import org.intellij.lang.annotations.RegExp;
import org.intellij.lang.annotations.Subst;
import org.jetbrains.annotations.Contract;
diff --git a/src/main/java/com/minersstudios/whomine/annotation/Namespace.java b/common/src/main/java/com/minersstudios/whomine/api/annotation/Namespace.java
similarity index 95%
rename from src/main/java/com/minersstudios/whomine/annotation/Namespace.java
rename to common/src/main/java/com/minersstudios/whomine/api/annotation/Namespace.java
index 353c294a..0c9fea79 100644
--- a/src/main/java/com/minersstudios/whomine/annotation/Namespace.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/annotation/Namespace.java
@@ -1,6 +1,6 @@
-package com.minersstudios.whomine.annotation;
+package com.minersstudios.whomine.api.annotation;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import org.intellij.lang.annotations.RegExp;
import org.intellij.lang.annotations.Subst;
import org.jetbrains.annotations.Contract;
diff --git a/src/main/java/com/minersstudios/whomine/annotation/ResourceKey.java b/common/src/main/java/com/minersstudios/whomine/api/annotation/ResourceKey.java
similarity index 93%
rename from src/main/java/com/minersstudios/whomine/annotation/ResourceKey.java
rename to common/src/main/java/com/minersstudios/whomine/api/annotation/ResourceKey.java
index dd5e8e34..079826a0 100644
--- a/src/main/java/com/minersstudios/whomine/annotation/ResourceKey.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/annotation/ResourceKey.java
@@ -1,7 +1,6 @@
-package com.minersstudios.whomine.annotation;
+package com.minersstudios.whomine.api.annotation;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
-import org.bukkit.NamespacedKey;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import org.intellij.lang.annotations.RegExp;
import org.intellij.lang.annotations.Subst;
import org.jetbrains.annotations.Contract;
@@ -15,7 +14,7 @@
import static java.lang.annotation.ElementType.*;
/**
- * Annotation used to mark the {@link NamespacedKey namespaced-key}.
+ * Annotation used to mark the {@code namespaced-key}.
*
* The namespaced-key must match the {@link #REGEX regex} pattern.
*
diff --git a/src/main/java/com/minersstudios/whomine/annotation/StatusKey.java b/common/src/main/java/com/minersstudios/whomine/api/annotation/StatusKey.java
similarity index 96%
rename from src/main/java/com/minersstudios/whomine/annotation/StatusKey.java
rename to common/src/main/java/com/minersstudios/whomine/api/annotation/StatusKey.java
index 856b9c05..77c48601 100644
--- a/src/main/java/com/minersstudios/whomine/annotation/StatusKey.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/annotation/StatusKey.java
@@ -1,6 +1,6 @@
-package com.minersstudios.whomine.annotation;
+package com.minersstudios.whomine.api.annotation;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import org.intellij.lang.annotations.RegExp;
import org.intellij.lang.annotations.Subst;
import org.jetbrains.annotations.Contract;
diff --git a/src/main/java/com/minersstudios/whomine/status/FailureStatus.java b/common/src/main/java/com/minersstudios/whomine/api/status/FailureStatus.java
similarity index 92%
rename from src/main/java/com/minersstudios/whomine/status/FailureStatus.java
rename to common/src/main/java/com/minersstudios/whomine/api/status/FailureStatus.java
index 5448673e..2801281d 100644
--- a/src/main/java/com/minersstudios/whomine/status/FailureStatus.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/status/FailureStatus.java
@@ -1,6 +1,6 @@
-package com.minersstudios.whomine.status;
+package com.minersstudios.whomine.api.status;
-import com.minersstudios.whomine.annotation.StatusKey;
+import com.minersstudios.whomine.api.annotation.StatusKey;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/src/main/java/com/minersstudios/whomine/status/ImplStatus.java b/common/src/main/java/com/minersstudios/whomine/api/status/ImplStatus.java
similarity index 95%
rename from src/main/java/com/minersstudios/whomine/status/ImplStatus.java
rename to common/src/main/java/com/minersstudios/whomine/api/status/ImplStatus.java
index 7e0b00b7..e85f6dcd 100644
--- a/src/main/java/com/minersstudios/whomine/status/ImplStatus.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/status/ImplStatus.java
@@ -1,6 +1,6 @@
-package com.minersstudios.whomine.status;
+package com.minersstudios.whomine.api.status;
-import com.minersstudios.whomine.annotation.StatusKey;
+import com.minersstudios.whomine.api.annotation.StatusKey;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/src/main/java/com/minersstudios/whomine/status/Status.java b/common/src/main/java/com/minersstudios/whomine/api/status/Status.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/status/Status.java
rename to common/src/main/java/com/minersstudios/whomine/api/status/Status.java
index 075a74f2..b3c6335b 100644
--- a/src/main/java/com/minersstudios/whomine/status/Status.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/status/Status.java
@@ -1,7 +1,7 @@
-package com.minersstudios.whomine.status;
+package com.minersstudios.whomine.api.status;
-import com.minersstudios.whomine.annotation.StatusKey;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
+import com.minersstudios.whomine.api.annotation.StatusKey;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -9,7 +9,7 @@
import java.util.function.Consumer;
import java.util.function.Function;
-import static com.minersstudios.whomine.annotation.StatusKey.Validator.validate;
+import static com.minersstudios.whomine.api.annotation.StatusKey.Validator.validate;
/**
* Represents a status.
diff --git a/src/main/java/com/minersstudios/whomine/status/StatusHandler.java b/common/src/main/java/com/minersstudios/whomine/api/status/StatusHandler.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/status/StatusHandler.java
rename to common/src/main/java/com/minersstudios/whomine/api/status/StatusHandler.java
index b5d18709..886d5cab 100644
--- a/src/main/java/com/minersstudios/whomine/status/StatusHandler.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/status/StatusHandler.java
@@ -1,4 +1,4 @@
-package com.minersstudios.whomine.status;
+package com.minersstudios.whomine.api.status;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import org.jetbrains.annotations.Contract;
diff --git a/src/main/java/com/minersstudios/whomine/status/StatusWatcher.java b/common/src/main/java/com/minersstudios/whomine/api/status/StatusWatcher.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/status/StatusWatcher.java
rename to common/src/main/java/com/minersstudios/whomine/api/status/StatusWatcher.java
index 9da29e6d..dbfa3230 100644
--- a/src/main/java/com/minersstudios/whomine/status/StatusWatcher.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/status/StatusWatcher.java
@@ -1,4 +1,4 @@
-package com.minersstudios.whomine.status;
+package com.minersstudios.whomine.api.status;
import com.google.common.base.Joiner;
import com.google.common.collect.Sets;
diff --git a/src/main/java/com/minersstudios/whomine/status/SuccessStatus.java b/common/src/main/java/com/minersstudios/whomine/api/status/SuccessStatus.java
similarity index 95%
rename from src/main/java/com/minersstudios/whomine/status/SuccessStatus.java
rename to common/src/main/java/com/minersstudios/whomine/api/status/SuccessStatus.java
index 1d2070db..077426bf 100644
--- a/src/main/java/com/minersstudios/whomine/status/SuccessStatus.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/status/SuccessStatus.java
@@ -1,6 +1,6 @@
-package com.minersstudios.whomine.status;
+package com.minersstudios.whomine.api.status;
-import com.minersstudios.whomine.annotation.StatusKey;
+import com.minersstudios.whomine.api.annotation.StatusKey;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
diff --git a/common/src/main/java/com/minersstudios/whomine/api/status/package-info.java b/common/src/main/java/com/minersstudios/whomine/api/status/package-info.java
new file mode 100644
index 00000000..21ddabe0
--- /dev/null
+++ b/common/src/main/java/com/minersstudios/whomine/api/status/package-info.java
@@ -0,0 +1,10 @@
+/**
+ * This package contains classes and interfaces related to statuses and their
+ * management. They are thread-safe and can be safely used to manage plugin
+ * statuses in a multithreading environment.
+ *
+ * @see com.minersstudios.whomine.api.status.Status
+ * @see com.minersstudios.whomine.api.status.StatusWatcher
+ * @see com.minersstudios.whomine.api.status.StatusHandler
+ */
+package com.minersstudios.whomine.api.status;
diff --git a/src/main/java/com/minersstudios/whomine/throwable/ConfigurationException.java b/common/src/main/java/com/minersstudios/whomine/api/throwable/ConfigurationException.java
similarity index 94%
rename from src/main/java/com/minersstudios/whomine/throwable/ConfigurationException.java
rename to common/src/main/java/com/minersstudios/whomine/api/throwable/ConfigurationException.java
index 892f05bb..1c6cfad7 100644
--- a/src/main/java/com/minersstudios/whomine/throwable/ConfigurationException.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/throwable/ConfigurationException.java
@@ -1,6 +1,5 @@
-package com.minersstudios.whomine.throwable;
+package com.minersstudios.whomine.api.throwable;
-import com.minersstudios.whomine.Config;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -8,12 +7,10 @@
* Checked configuration exception.
*
* Thrown when a configuration error occurs while working with the
- * {@link Config} class.
+ * {@code Config} class.
*
* This exception is used to indicate problems encountered during configuration
* operations.
- *
- * @see Config
*/
public class ConfigurationException extends Exception {
diff --git a/src/main/java/com/minersstudios/whomine/throwable/InvalidRegexException.java b/common/src/main/java/com/minersstudios/whomine/api/throwable/InvalidRegexException.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/throwable/InvalidRegexException.java
rename to common/src/main/java/com/minersstudios/whomine/api/throwable/InvalidRegexException.java
index c383427c..ea790f58 100644
--- a/src/main/java/com/minersstudios/whomine/throwable/InvalidRegexException.java
+++ b/common/src/main/java/com/minersstudios/whomine/api/throwable/InvalidRegexException.java
@@ -1,4 +1,4 @@
-package com.minersstudios.whomine.throwable;
+package com.minersstudios.whomine.api.throwable;
import org.jetbrains.annotations.Nullable;
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 00000000..a186dbac
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,12 @@
+java.version=17
+java.compilerArgs=-Xlint:deprecation
+
+paper.version=1.20.4-R0.1-SNAPSHOT
+
+project.group=com.minersstudios
+project.name=WhoMine
+project.version=1.0.0
+project.description=A Minecraft plugin for WhoMine
+project.author=MinersStudios
+project.contributors=p0loskun, PackmanDude
+project.website=https://whomine.net
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 1c1bf9bd..93d7d50e 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,24 +1,32 @@
[versions]
# libraries
+fastutil = "8.5.13"
+google-guava = "33.2.1-jre"
+google-gson = "2.11.0"
+google-jsr305 = "3.0.2"
jetbrains-annotations = "24.0.1"
-jackson-annotations = "2.16.0"
-jda = "5.0.0-beta.23"
-authme = "5.6.0-SNAPSHOT"
-coreprotect = "22.2"
+jackson-annotations = "2.16.0"
+jda = "5.0.0-beta.23"
+authme = "5.6.0-SNAPSHOT"
+coreprotect = "22.2"
# plugins
paper-userdev = "1.5.11"
-shadow = "8.1.1"
-run-paper = "2.2.3"
+shadow = "8.1.1"
+paper-run = "2.2.3"
[libraries]
+fastutil = { group = "it.unimi.dsi", name = "fastutil", version.ref = "fastutil" }
+google-guava = { group = "com.google.guava", name = "guava", version.ref = "google-guava" }
+google-gson = { group = "com.google.code.gson", name = "gson", version.ref = "google-gson" }
+google-jsr305 = { group = "com.google.code.findbugs", name = "jsr305", version.ref = "google-jsr305" }
jetbrains-annotations = { group = "org.jetbrains", name = "annotations", version.ref = "jetbrains-annotations" }
-jackson-annotations = { group = "com.fasterxml.jackson.core", name = "jackson-annotations", version.ref = "jackson-annotations" }
-jda = { group = "net.dv8tion", name = "JDA", version.ref = "jda" }
-authme = { group = "fr.xephi", name = "authme", version.ref = "authme" }
-coreprotect = { group = "net.coreprotect", name = "coreprotect", version.ref = "coreprotect" }
+jackson-annotations = { group = "com.fasterxml.jackson.core", name = "jackson-annotations", version.ref = "jackson-annotations" }
+jda = { group = "net.dv8tion", name = "JDA", version.ref = "jda" }
+authme = { group = "fr.xephi", name = "authme", version.ref = "authme" }
+coreprotect = { group = "net.coreprotect", name = "coreprotect", version.ref = "coreprotect" }
[plugins]
paper-userdev = { id = "io.papermc.paperweight.userdev", version.ref = "paper-userdev" }
-shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
-run-paper = { id = "xyz.jpenilla.run-paper", version.ref = "run-paper" }
+paper-run = { id = "xyz.jpenilla.run-paper", version.ref = "paper-run" }
+shadow = { id = "com.github.johnrengelman.shadow", version.ref = "shadow" }
diff --git a/paper/build.gradle.kts b/paper/build.gradle.kts
new file mode 100644
index 00000000..5b90d6e6
--- /dev/null
+++ b/paper/build.gradle.kts
@@ -0,0 +1,60 @@
+val paperVersion: String = rootProject.property("paper.version").toString()
+val author: String = rootProject.property("project.author").toString()
+val contributors: String = rootProject.property("project.contributors").toString()
+val website: String = rootProject.property("project.website").toString()
+val coreProtectVersion: String = libs.versions.coreprotect.get()
+val authMeVersion: String = libs.versions.authme.get()
+val apiVersion: String
+ get() {
+ val minecraftVersion = paperweight.minecraftVersion.get()
+ val parts = minecraftVersion.split('.')
+
+ return if (parts.size < 2) {
+ throw IllegalStateException("Invalid Minecraft version: '$minecraftVersion'")
+ } else {
+ "'${parts[0]}.${parts[1]}'"
+ }
+ }
+
+plugins {
+ alias(libs.plugins.paper.userdev)
+ alias(libs.plugins.paper.run)
+ alias(libs.plugins.shadow)
+}
+
+dependencies {
+ paperweight.paperDevBundle(paperVersion)
+
+ implementation(project(":common"))
+ compileOnly(libs.authme)
+ compileOnly(libs.coreprotect)
+}
+
+tasks {
+ reobfJar {
+ outputJar.set(file("$rootDir/build/${jar.get().archiveBaseName.get()}-$version.jar"))
+ }
+
+ assemble {
+ dependsOn(reobfJar)
+ }
+
+ processResources {
+ val props = mapOf(
+ "name" to project.name,
+ "version" to project.version,
+ "description" to project.description,
+ "author" to author,
+ "contributors" to contributors,
+ "website" to website,
+ "apiVersion" to apiVersion,
+ "coreProtectVersion" to coreProtectVersion,
+ "authMeVersion" to libs.versions.authme.get(),
+ )
+
+ inputs.properties(props)
+ filesMatching("paper-plugin.yml") {
+ expand(props)
+ }
+ }
+}
diff --git a/src/main/java/com/minersstudios/whomine/Cache.java b/paper/src/main/java/com/minersstudios/whomine/Cache.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/Cache.java
rename to paper/src/main/java/com/minersstudios/whomine/Cache.java
index a42bb2bb..f9e8ba77 100644
--- a/src/main/java/com/minersstudios/whomine/Cache.java
+++ b/paper/src/main/java/com/minersstudios/whomine/Cache.java
@@ -14,7 +14,7 @@
import com.minersstudios.whomine.player.collection.IDMap;
import com.minersstudios.whomine.player.collection.MuteMap;
import com.minersstudios.whomine.player.collection.PlayerInfoMap;
-import com.minersstudios.whomine.status.StatusHandler;
+import com.minersstudios.whomine.api.status.StatusHandler;
import com.minersstudios.whomine.world.WorldDark;
import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
diff --git a/src/main/java/com/minersstudios/whomine/Config.java b/paper/src/main/java/com/minersstudios/whomine/Config.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/Config.java
rename to paper/src/main/java/com/minersstudios/whomine/Config.java
index 99730963..9ce5ab08 100644
--- a/src/main/java/com/minersstudios/whomine/Config.java
+++ b/paper/src/main/java/com/minersstudios/whomine/Config.java
@@ -15,9 +15,9 @@
import com.minersstudios.whomine.player.PlayerInfo;
import com.minersstudios.whomine.resourcepack.ResourcePack;
import com.minersstudios.whomine.resourcepack.throwable.FatalPackLoadException;
-import com.minersstudios.whomine.status.StatusHandler;
-import com.minersstudios.whomine.status.StatusWatcher;
-import com.minersstudios.whomine.throwable.ConfigurationException;
+import com.minersstudios.whomine.api.status.StatusHandler;
+import com.minersstudios.whomine.api.status.StatusWatcher;
+import com.minersstudios.whomine.api.throwable.ConfigurationException;
import com.minersstudios.whomine.utility.ChatUtils;
import com.minersstudios.whomine.utility.MSLogger;
import com.minersstudios.whomine.utility.SharedConstants;
diff --git a/src/main/java/com/minersstudios/whomine/WhoMine.java b/paper/src/main/java/com/minersstudios/whomine/WhoMine.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/WhoMine.java
rename to paper/src/main/java/com/minersstudios/whomine/WhoMine.java
index cf952573..224e0c3e 100644
--- a/src/main/java/com/minersstudios/whomine/WhoMine.java
+++ b/paper/src/main/java/com/minersstudios/whomine/WhoMine.java
@@ -5,9 +5,9 @@
import com.minersstudios.whomine.inventory.holder.AbstractInventoryHolder;
import com.minersstudios.whomine.listener.api.ListenerManager;
import com.minersstudios.whomine.scheduler.TaskExecutor;
-import com.minersstudios.whomine.status.FailureStatus;
-import com.minersstudios.whomine.status.StatusHandler;
-import com.minersstudios.whomine.status.SuccessStatus;
+import com.minersstudios.whomine.api.status.FailureStatus;
+import com.minersstudios.whomine.api.status.StatusHandler;
+import com.minersstudios.whomine.api.status.SuccessStatus;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
@@ -21,7 +21,7 @@
import java.util.Map;
import java.util.Optional;
-import static com.minersstudios.whomine.status.Status.*;
+import static com.minersstudios.whomine.api.status.Status.*;
/**
* Represents a WhoMine plugin
diff --git a/src/main/java/com/minersstudios/whomine/WhoMineImpl.java b/paper/src/main/java/com/minersstudios/whomine/WhoMineImpl.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/WhoMineImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/WhoMineImpl.java
index b991d3e3..0292c53f 100644
--- a/src/main/java/com/minersstudios/whomine/WhoMineImpl.java
+++ b/paper/src/main/java/com/minersstudios/whomine/WhoMineImpl.java
@@ -22,8 +22,8 @@
import com.minersstudios.whomine.scheduler.task.MuteMapTask;
import com.minersstudios.whomine.scheduler.task.PlayerListTask;
import com.minersstudios.whomine.scheduler.task.SeatsTask;
-import com.minersstudios.whomine.status.StatusHandler;
-import com.minersstudios.whomine.status.StatusWatcher;
+import com.minersstudios.whomine.api.status.StatusHandler;
+import com.minersstudios.whomine.api.status.StatusWatcher;
import com.minersstudios.whomine.utility.*;
import com.minersstudios.whomine.world.WorldDark;
import com.minersstudios.whomine.world.sound.SoundAdapter;
diff --git a/src/main/java/com/minersstudios/whomine/WhoMineLoader.java b/paper/src/main/java/com/minersstudios/whomine/WhoMineLoader.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/WhoMineLoader.java
rename to paper/src/main/java/com/minersstudios/whomine/WhoMineLoader.java
diff --git a/src/main/java/com/minersstudios/whomine/chat/ChatBuffer.java b/paper/src/main/java/com/minersstudios/whomine/chat/ChatBuffer.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/chat/ChatBuffer.java
rename to paper/src/main/java/com/minersstudios/whomine/chat/ChatBuffer.java
diff --git a/src/main/java/com/minersstudios/whomine/chat/ChatType.java b/paper/src/main/java/com/minersstudios/whomine/chat/ChatType.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/chat/ChatType.java
rename to paper/src/main/java/com/minersstudios/whomine/chat/ChatType.java
diff --git a/src/main/java/com/minersstudios/whomine/collection/DiggingMap.java b/paper/src/main/java/com/minersstudios/whomine/collection/DiggingMap.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/collection/DiggingMap.java
rename to paper/src/main/java/com/minersstudios/whomine/collection/DiggingMap.java
diff --git a/src/main/java/com/minersstudios/whomine/collection/StepMap.java b/paper/src/main/java/com/minersstudios/whomine/collection/StepMap.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/collection/StepMap.java
rename to paper/src/main/java/com/minersstudios/whomine/collection/StepMap.java
diff --git a/src/main/java/com/minersstudios/whomine/command/api/CommandManager.java b/paper/src/main/java/com/minersstudios/whomine/command/api/CommandManager.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/command/api/CommandManager.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/CommandManager.java
index 77507088..9ae2fded 100644
--- a/src/main/java/com/minersstudios/whomine/command/api/CommandManager.java
+++ b/paper/src/main/java/com/minersstudios/whomine/command/api/CommandManager.java
@@ -28,7 +28,7 @@
import com.minersstudios.whomine.command.impl.minecraft.player.ResourcePackCommand;
import com.minersstudios.whomine.command.impl.minecraft.player.SkinsCommand;
import com.minersstudios.whomine.command.impl.minecraft.player.roleplay.*;
-import com.minersstudios.whomine.status.StatusWatcher;
+import com.minersstudios.whomine.api.status.StatusWatcher;
import com.minersstudios.whomine.utility.ChatUtils;
import com.mojang.brigadier.tree.LiteralCommandNode;
import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
diff --git a/src/main/java/com/minersstudios/whomine/command/api/PluginCommandExecutor.java b/paper/src/main/java/com/minersstudios/whomine/command/api/PluginCommandExecutor.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/api/PluginCommandExecutor.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/PluginCommandExecutor.java
diff --git a/src/main/java/com/minersstudios/whomine/command/api/SlashCommandExecutor.java b/paper/src/main/java/com/minersstudios/whomine/command/api/SlashCommandExecutor.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/api/SlashCommandExecutor.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/SlashCommandExecutor.java
diff --git a/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/AbstractInteractionHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/AbstractInteractionHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/api/discord/interaction/AbstractInteractionHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/AbstractInteractionHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/CommandHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/CommandHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/api/discord/interaction/CommandHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/CommandHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/TabCompleterHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/TabCompleterHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/api/discord/interaction/TabCompleterHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/discord/interaction/TabCompleterHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/api/minecraft/CommandData.java b/paper/src/main/java/com/minersstudios/whomine/command/api/minecraft/CommandData.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/api/minecraft/CommandData.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/minecraft/CommandData.java
diff --git a/src/main/java/com/minersstudios/whomine/command/api/minecraft/Commodore.java b/paper/src/main/java/com/minersstudios/whomine/command/api/minecraft/Commodore.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/command/api/minecraft/Commodore.java
rename to paper/src/main/java/com/minersstudios/whomine/command/api/minecraft/Commodore.java
index f86482dc..5f4e83f0 100644
--- a/src/main/java/com/minersstudios/whomine/command/api/minecraft/Commodore.java
+++ b/paper/src/main/java/com/minersstudios/whomine/command/api/minecraft/Commodore.java
@@ -2,7 +2,7 @@
import com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent;
import com.minersstudios.whomine.WhoMine;
-import com.minersstudios.whomine.status.StatusWatcher;
+import com.minersstudios.whomine.api.status.StatusWatcher;
import com.mojang.brigadier.suggestion.SuggestionProvider;
import com.mojang.brigadier.tree.ArgumentCommandNode;
import com.mojang.brigadier.tree.CommandNode;
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/discord/AddSkinCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/discord/AddSkinCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/discord/AddSkinCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/discord/AddSkinCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/discord/EditSkinCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/discord/EditSkinCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/discord/EditSkinCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/discord/EditSkinCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/discord/HelpCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/discord/HelpCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/discord/HelpCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/discord/HelpCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/discord/RemoveSkinCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/discord/RemoveSkinCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/discord/RemoveSkinCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/discord/RemoveSkinCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/discord/SkinListCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/discord/SkinListCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/discord/SkinListCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/discord/SkinListCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/discord/UnlinkCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/discord/UnlinkCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/discord/UnlinkCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/discord/UnlinkCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/CraftsCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/CraftsCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/CraftsCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/CraftsCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/MSCoreCommandHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/MSCoreCommandHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/MSCoreCommandHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/MSCoreCommandHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/ReloadConfigCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/ReloadConfigCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/ReloadConfigCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/ReloadConfigCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/GetMapLocationCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/GetMapLocationCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/GetMapLocationCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/GetMapLocationCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/KickCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/KickCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/KickCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/KickCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/SetServerSpawn.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/SetServerSpawn.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/SetServerSpawn.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/SetServerSpawn.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/WhitelistCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/WhitelistCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/WhitelistCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/WhitelistCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/BanCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/BanCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/BanCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/BanCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/UnBanCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/UnBanCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/UnBanCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/ban/UnBanCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/MSEssentialsCommandHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/MSEssentialsCommandHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/MSEssentialsCommandHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/MSEssentialsCommandHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/ReloadCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/ReloadCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/ReloadCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/ReloadCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateIdsCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateIdsCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateIdsCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateIdsCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateMutesCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateMutesCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateMutesCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/msessentials/UpdateMutesCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/MuteCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/MuteCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/MuteCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/MuteCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/UnMuteCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/UnMuteCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/UnMuteCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/mute/UnMuteCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminBanInfoCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminBanInfoCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminBanInfoCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminBanInfoCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminFirstJoinCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminFirstJoinCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminFirstJoinCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminFirstJoinCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminGameParamsCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminGameParamsCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminGameParamsCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminGameParamsCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminInfoCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminInfoCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminInfoCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminInfoCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminMuteInfoCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminMuteInfoCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminMuteInfoCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminMuteInfoCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminNameCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminNameCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminNameCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminNameCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPlayerCommandHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPlayerCommandHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPlayerCommandHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPlayerCommandHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPronounsCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPronounsCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPronounsCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminPronounsCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminSettingsCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminSettingsCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminSettingsCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminSettingsCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminUpdateCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminUpdateCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminUpdateCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/player/AdminUpdateCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/TeleportToLastDeathLocationCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/TeleportToLastDeathLocationCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/TeleportToLastDeathLocationCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/TeleportToLastDeathLocationCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/WorldTeleportCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/WorldTeleportCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/WorldTeleportCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/admin/teleport/WorldTeleportCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/GiveCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/GiveCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/GiveCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/GiveCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/MSBlockCommandHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/MSBlockCommandHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/MSBlockCommandHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/MSBlockCommandHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/ReloadCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/ReloadCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/ReloadCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/block/ReloadCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/GiveCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/GiveCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/GiveCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/GiveCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/MSDecorCommandHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/MSDecorCommandHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/MSDecorCommandHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/decor/MSDecorCommandHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/GiveCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/GiveCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/GiveCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/GiveCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/MSItemCommandHandler.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/MSItemCommandHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/MSItemCommandHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/MSItemCommandHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/ReloadCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/ReloadCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/ReloadCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/ReloadCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/RenamesCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/RenamesCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/RenamesCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/item/RenamesCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/DiscordCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/DiscordCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/DiscordCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/DiscordCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/PrivateMessageCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/PrivateMessageCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/PrivateMessageCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/PrivateMessageCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/ResourcePackCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/ResourcePackCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/ResourcePackCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/ResourcePackCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/SkinsCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/SkinsCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/SkinsCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/SkinsCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/DoCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/DoCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/DoCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/DoCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/FartCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/FartCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/FartCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/FartCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/ItCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/ItCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/ItCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/ItCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/MeCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/MeCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/MeCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/MeCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SitCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SitCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SitCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SitCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SpitCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SpitCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SpitCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/SpitCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TodoCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TodoCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TodoCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TodoCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TryCommand.java b/paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TryCommand.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TryCommand.java
rename to paper/src/main/java/com/minersstudios/whomine/command/impl/minecraft/player/roleplay/TryCommand.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/Anomaly.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/Anomaly.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/Anomaly.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/Anomaly.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyAction.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyAction.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyAction.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyBoundingBox.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyBoundingBox.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyBoundingBox.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyBoundingBox.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyIgnorableItems.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyIgnorableItems.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyIgnorableItems.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/AnomalyIgnorableItems.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/action/AddPotionAction.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/action/AddPotionAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/action/AddPotionAction.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/action/AddPotionAction.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/action/SpawnParticlesAction.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/action/SpawnParticlesAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/action/SpawnParticlesAction.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/action/SpawnParticlesAction.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/task/AnomalyParticleTask.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/task/AnomalyParticleTask.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/task/AnomalyParticleTask.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/task/AnomalyParticleTask.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/anomaly/task/MainAnomalyActionTask.java b/paper/src/main/java/com/minersstudios/whomine/custom/anomaly/task/MainAnomalyActionTask.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/anomaly/task/MainAnomalyActionTask.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/anomaly/task/MainAnomalyActionTask.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/CustomBlock.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/CustomBlock.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/CustomBlock.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/CustomBlock.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/CustomBlockData.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/CustomBlockData.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/CustomBlockData.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/CustomBlockData.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/CustomBlockRegistry.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/CustomBlockRegistry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/CustomBlockRegistry.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/CustomBlockRegistry.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockBreakEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockBreakEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockBreakEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockBreakEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockDamageEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockDamageEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockDamageEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockDamageEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockPlaceEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockPlaceEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockPlaceEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockPlaceEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockRightClickEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockRightClickEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockRightClickEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/event/CustomBlockRightClickEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/CustomBlockFile.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/CustomBlockFile.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/CustomBlockFile.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/CustomBlockFile.java
index 7131fa9c..d6b9f71f 100644
--- a/src/main/java/com/minersstudios/whomine/custom/block/file/CustomBlockFile.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/CustomBlockFile.java
@@ -10,7 +10,7 @@
import com.minersstudios.whomine.custom.block.params.ToolType;
import com.minersstudios.whomine.custom.block.params.settings.Placing;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
-import com.minersstudios.whomine.throwable.ConfigurationException;
+import com.minersstudios.whomine.api.throwable.ConfigurationException;
import com.minersstudios.whomine.utility.SharedConstants;
import com.minersstudios.whomine.world.sound.Sound;
import com.minersstudios.whomine.world.sound.SoundAdapter;
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/EnumAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/EnumAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/EnumAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/EnumAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/ItemStackAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/ItemStackAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/ItemStackAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/ItemStackAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NamespacedKeyAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NamespacedKeyAdapter.java
similarity index 96%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NamespacedKeyAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NamespacedKeyAdapter.java
index 3218e43b..fc93675a 100644
--- a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NamespacedKeyAdapter.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NamespacedKeyAdapter.java
@@ -1,7 +1,7 @@
package com.minersstudios.whomine.custom.block.file.adapter;
import com.google.gson.*;
-import com.minersstudios.whomine.annotation.ResourceKey;
+import com.minersstudios.whomine.api.annotation.ResourceKey;
import org.bukkit.NamespacedKey;
import org.jetbrains.annotations.NotNull;
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NoteBlockDataAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NoteBlockDataAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NoteBlockDataAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/NoteBlockDataAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingTypeAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingTypeAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingTypeAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/PlacingTypeAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeChoiceAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeChoiceAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeChoiceAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeChoiceAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeEntryAdapter.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeEntryAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeEntryAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/file/adapter/RecipeEntryAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/BlockSettings.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/BlockSettings.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/BlockSettings.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/BlockSettings.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/DropSettings.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/DropSettings.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/DropSettings.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/DropSettings.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/NoteBlockData.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/NoteBlockData.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/NoteBlockData.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/NoteBlockData.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/PlacingType.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/PlacingType.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/PlacingType.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/PlacingType.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/RecipeType.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/RecipeType.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/RecipeType.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/RecipeType.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/ToolTier.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/ToolTier.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/ToolTier.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/ToolTier.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/ToolType.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/ToolType.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/ToolType.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/ToolType.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/settings/Placing.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/settings/Placing.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/settings/Placing.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/settings/Placing.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/block/params/settings/Tool.java b/paper/src/main/java/com/minersstudios/whomine/custom/block/params/settings/Tool.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/block/params/settings/Tool.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/block/params/settings/Tool.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecor.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecor.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/CustomDecor.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecor.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorData.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorData.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorData.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorData.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorDataImpl.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorDataImpl.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorDataImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorDataImpl.java
index fe067dcc..547ad789 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorDataImpl.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorDataImpl.java
@@ -1,7 +1,7 @@
package com.minersstudios.whomine.custom.decor;
import com.minersstudios.whomine.WhoMine;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.action.DecorBreakAction;
import com.minersstudios.whomine.custom.decor.action.DecorClickAction;
import com.minersstudios.whomine.custom.decor.action.DecorPlaceAction;
@@ -9,7 +9,7 @@
import com.minersstudios.whomine.world.location.MSBoundingBox;
import com.minersstudios.whomine.world.location.MSPosition;
import com.minersstudios.whomine.world.location.MSVector;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import com.minersstudios.whomine.custom.decor.event.CustomDecorBreakEvent;
import com.minersstudios.whomine.custom.decor.event.CustomDecorClickEvent;
import com.minersstudios.whomine.custom.decor.event.CustomDecorPlaceEvent;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorType.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorType.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorType.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorType.java
index 804cefde..1f8ac163 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorType.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/CustomDecorType.java
@@ -1,7 +1,7 @@
package com.minersstudios.whomine.custom.decor;
import com.minersstudios.whomine.WhoMine;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.registry.christmas.*;
import com.minersstudios.whomine.custom.decor.registry.decoration.home.*;
import com.minersstudios.whomine.custom.decor.registry.furniture.chair.*;
@@ -23,8 +23,8 @@
import com.minersstudios.whomine.custom.decor.registry.furniture.table.BigTable;
import com.minersstudios.whomine.custom.decor.registry.furniture.table.SmallTable;
import com.minersstudios.whomine.custom.decor.registry.other.Poop;
-import com.minersstudios.whomine.status.StatusHandler;
-import com.minersstudios.whomine.status.StatusWatcher;
+import com.minersstudios.whomine.api.status.StatusHandler;
+import com.minersstudios.whomine.api.status.StatusWatcher;
import com.minersstudios.whomine.utility.ChatUtils;
import com.minersstudios.whomine.utility.SharedConstants;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/DecorHitBox.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/DecorHitBox.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/DecorHitBox.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/DecorHitBox.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/DecorParameter.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/DecorParameter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/DecorParameter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/DecorParameter.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/Facing.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/Facing.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/Facing.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/Facing.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorBreakAction.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorBreakAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/action/DecorBreakAction.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorBreakAction.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorClickAction.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorClickAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/action/DecorClickAction.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorClickAction.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorPlaceAction.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorPlaceAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/action/DecorPlaceAction.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/action/DecorPlaceAction.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorBreakEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorBreakEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorBreakEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorBreakEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorClickEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorClickEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorClickEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorClickEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorPlaceEvent.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorPlaceEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorPlaceEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/event/CustomDecorPlaceEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasBall.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasBall.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasBall.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasBall.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasTallBall.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasTallBall.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasTallBall.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/ChristmasTallBall.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SantaSock.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SantaSock.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SantaSock.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SantaSock.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowflakeOnString.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowflakeOnString.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowflakeOnString.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowflakeOnString.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/Snowman.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/Snowman.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/Snowman.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/Snowman.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowmanBall.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowmanBall.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowmanBall.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/SnowmanBall.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/StarOnString.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/StarOnString.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/StarOnString.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/StarOnString.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/TreeStar.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/TreeStar.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/TreeStar.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/christmas/TreeStar.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Cell.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Cell.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Cell.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Cell.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/CookingPot.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/CookingPot.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/CookingPot.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/CookingPot.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/OldCamera.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/OldCamera.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/OldCamera.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/OldCamera.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Patefon.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Patefon.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Patefon.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Patefon.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Piggybank.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Piggybank.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Piggybank.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Piggybank.java
index 36209d9f..34c8123b 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Piggybank.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Piggybank.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.decoration.home;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallClock.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallClock.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallClock.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallClock.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallGlobe.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallGlobe.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallGlobe.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/SmallGlobe.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Whocintosh.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Whocintosh.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Whocintosh.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/Whocintosh.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/DeerHead.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/DeerHead.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/DeerHead.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/DeerHead.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/HoglinHead.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/HoglinHead.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/HoglinHead.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/HoglinHead.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/ZoglinHead.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/ZoglinHead.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/ZoglinHead.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/head/ZoglinHead.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BMOPlush.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BMOPlush.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BMOPlush.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BMOPlush.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BrownBearPlush.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BrownBearPlush.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BrownBearPlush.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/BrownBearPlush.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/RacoonPlush.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/RacoonPlush.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/RacoonPlush.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/RacoonPlush.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/WhocintoshMini.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/WhocintoshMini.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/WhocintoshMini.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/home/plush/WhocintoshMini.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/ATM.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/ATM.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/ATM.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/ATM.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Brazier.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Brazier.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Brazier.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Brazier.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/FireHydrant.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/FireHydrant.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/FireHydrant.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/FireHydrant.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/IronTrashcan.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/IronTrashcan.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/IronTrashcan.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/IronTrashcan.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Wheelbarrow.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Wheelbarrow.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Wheelbarrow.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/decoration/street/Wheelbarrow.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/Nightstand.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/Nightstand.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/Nightstand.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/Nightstand.java
index ce57df7e..a0ba445c 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/Nightstand.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/Nightstand.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.*;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Armchair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Armchair.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Armchair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Armchair.java
index 852c1ff3..fbacb711 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Armchair.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Armchair.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.chair;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.*;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/BarStool.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/BarStool.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/BarStool.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/BarStool.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Chair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Chair.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Chair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Chair.java
index ca120274..179f6b9e 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Chair.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/Chair.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.chair;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.*;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolArmchair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolArmchair.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolArmchair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolArmchair.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolChair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolChair.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolChair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/CoolChair.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/PaintableRockingChair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/PaintableRockingChair.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/PaintableRockingChair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/PaintableRockingChair.java
index ecf2fe42..ff1063ef 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/PaintableRockingChair.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/PaintableRockingChair.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.chair;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.*;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/RockingChair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/RockingChair.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/RockingChair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/RockingChair.java
index 8adcd09e..6cb14e8f 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/RockingChair.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/RockingChair.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.chair;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.*;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallArmchair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallArmchair.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallArmchair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallArmchair.java
index a38b5f91..732b0d83 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallArmchair.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallArmchair.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.chair;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.*;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallChair.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallChair.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallChair.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallChair.java
index 9f3dcc8f..44427cac 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallChair.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/chair/SmallChair.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.chair;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.decor.*;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/BigLamp.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/BigLamp.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/BigLamp.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/BigLamp.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/SmallLamp.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/SmallLamp.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/SmallLamp.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/lamp/SmallLamp.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/BigTable.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/BigTable.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/BigTable.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/BigTable.java
index 4c777d5e..c4c8c9f1 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/BigTable.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/BigTable.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.table;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/SmallTable.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/SmallTable.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/SmallTable.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/SmallTable.java
index 8c50e42c..0eaa10d6 100644
--- a/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/SmallTable.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/furniture/table/SmallTable.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.decor.registry.furniture.table;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/decor/registry/other/Poop.java b/paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/other/Poop.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/decor/registry/other/Poop.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/decor/registry/other/Poop.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/CustomItem.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItem.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/CustomItem.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItem.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/CustomItemImpl.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItemImpl.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/CustomItemImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItemImpl.java
index 70dd21ce..9859ae13 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/CustomItemImpl.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItemImpl.java
@@ -1,9 +1,9 @@
package com.minersstudios.whomine.custom.item;
import com.minersstudios.whomine.WhoMine;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import com.minersstudios.whomine.utility.SharedConstants;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import org.bukkit.Keyed;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/CustomItemType.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItemType.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/item/CustomItemType.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItemType.java
index c6732317..907878fe 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/CustomItemType.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/CustomItemType.java
@@ -10,8 +10,8 @@
import com.minersstudios.whomine.custom.item.registry.hazmat.HazmatLeggings;
import com.minersstudios.whomine.custom.item.registry.cards.CardsBicycle;
import com.minersstudios.whomine.custom.item.registry.cosmetics.LeatherHat;
-import com.minersstudios.whomine.status.StatusHandler;
-import com.minersstudios.whomine.status.StatusWatcher;
+import com.minersstudios.whomine.api.status.StatusHandler;
+import com.minersstudios.whomine.api.status.StatusWatcher;
import com.minersstudios.whomine.utility.ChatUtils;
import com.minersstudios.whomine.utility.SharedConstants;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/Wearable.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/Wearable.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/Wearable.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/Wearable.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/damageable/Damageable.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/damageable/Damageable.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/damageable/Damageable.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/damageable/Damageable.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/damageable/DamageableItem.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/damageable/DamageableItem.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/damageable/DamageableItem.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/damageable/DamageableItem.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/AntiRadiationTextile.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/AntiRadiationTextile.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/AntiRadiationTextile.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/AntiRadiationTextile.java
index 756cd80a..a15cb978 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/AntiRadiationTextile.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/AntiRadiationTextile.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/BanSword.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/BanSword.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/BanSword.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/BanSword.java
index ee297155..6eaeb25f 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/BanSword.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/BanSword.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.utility.ChatUtils;
import com.minersstudios.whomine.custom.item.CustomItemImpl;
import net.kyori.adventure.text.format.NamedTextColor;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/Cocaine.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Cocaine.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/Cocaine.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Cocaine.java
index 481c646b..4fea8243 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/Cocaine.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Cocaine.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/Dosimeter.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Dosimeter.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/Dosimeter.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Dosimeter.java
index 6728dcfd..6d795934 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/Dosimeter.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Dosimeter.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/PlumbumIngot.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/PlumbumIngot.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/PlumbumIngot.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/PlumbumIngot.java
index 9ad3a2bf..ee7dedf0 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/PlumbumIngot.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/PlumbumIngot.java
@@ -1,7 +1,7 @@
package com.minersstudios.whomine.custom.item.registry;
import com.minersstudios.whomine.utility.MSLogger;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/RawPlumbum.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/RawPlumbum.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/RawPlumbum.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/RawPlumbum.java
index 30bc60f2..653c3fae 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/RawPlumbum.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/RawPlumbum.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/Wrench.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Wrench.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/Wrench.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Wrench.java
index 452874b7..d73fc213 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/Wrench.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/Wrench.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/cards/CardsBicycle.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/cards/CardsBicycle.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/cards/CardsBicycle.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/cards/CardsBicycle.java
index 8e1b6ddc..ae9f5fea 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/cards/CardsBicycle.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/cards/CardsBicycle.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry.cards;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/cosmetics/LeatherHat.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/cosmetics/LeatherHat.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/cosmetics/LeatherHat.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/cosmetics/LeatherHat.java
index c19339e0..467fc4e8 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/cosmetics/LeatherHat.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/cosmetics/LeatherHat.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry.cosmetics;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatBoots.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatBoots.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatBoots.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatBoots.java
index 2d4f784f..e29bd295 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatBoots.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatBoots.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry.hazmat;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatChestplate.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatChestplate.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatChestplate.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatChestplate.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatHelmet.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatHelmet.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatHelmet.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatHelmet.java
index 1336755c..253f561a 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatHelmet.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatHelmet.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry.hazmat;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatLeggings.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatLeggings.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatLeggings.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatLeggings.java
index 56a579ad..6b53ba57 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatLeggings.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/registry/hazmat/HazmatLeggings.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.custom.item.registry.hazmat;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.inventory.recipe.builder.RecipeBuilder;
import com.minersstudios.whomine.inventory.recipe.choice.RecipeChoiceEntry;
import com.minersstudios.whomine.inventory.recipe.entry.RecipeEntry;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameCollection.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameCollection.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameCollection.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameCollection.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameEntry.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameEntry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameEntry.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameEntry.java
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItem.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItem.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItem.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItem.java
index e0d4eba3..6db1d365 100644
--- a/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItem.java
+++ b/paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItem.java
@@ -1,7 +1,7 @@
package com.minersstudios.whomine.custom.item.renameable;
import com.minersstudios.whomine.WhoMine;
-import com.minersstudios.whomine.annotation.ResourceKey;
+import com.minersstudios.whomine.api.annotation.ResourceKey;
import com.minersstudios.whomine.utility.MSCustomUtils;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
diff --git a/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItemRegistry.java b/paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItemRegistry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItemRegistry.java
rename to paper/src/main/java/com/minersstudios/whomine/custom/item/renameable/RenameableItemRegistry.java
diff --git a/src/main/java/com/minersstudios/whomine/discord/Attempt.java b/paper/src/main/java/com/minersstudios/whomine/discord/Attempt.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/discord/Attempt.java
rename to paper/src/main/java/com/minersstudios/whomine/discord/Attempt.java
diff --git a/src/main/java/com/minersstudios/whomine/discord/BotHandler.java b/paper/src/main/java/com/minersstudios/whomine/discord/BotHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/discord/BotHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/discord/BotHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/discord/DiscordManager.java b/paper/src/main/java/com/minersstudios/whomine/discord/DiscordManager.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/discord/DiscordManager.java
rename to paper/src/main/java/com/minersstudios/whomine/discord/DiscordManager.java
index e0dbc149..5348b671 100644
--- a/src/main/java/com/minersstudios/whomine/discord/DiscordManager.java
+++ b/paper/src/main/java/com/minersstudios/whomine/discord/DiscordManager.java
@@ -3,7 +3,7 @@
import com.minersstudios.whomine.Config;
import com.minersstudios.whomine.WhoMine;
import com.minersstudios.whomine.chat.ChatType;
-import com.minersstudios.whomine.status.StatusHandler;
+import com.minersstudios.whomine.api.status.StatusHandler;
import com.minersstudios.whomine.utility.ChatUtils;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
diff --git a/src/main/java/com/minersstudios/whomine/discord/DiscordMap.java b/paper/src/main/java/com/minersstudios/whomine/discord/DiscordMap.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/discord/DiscordMap.java
rename to paper/src/main/java/com/minersstudios/whomine/discord/DiscordMap.java
diff --git a/src/main/java/com/minersstudios/whomine/discord/WaitingReplyTask.java b/paper/src/main/java/com/minersstudios/whomine/discord/WaitingReplyTask.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/discord/WaitingReplyTask.java
rename to paper/src/main/java/com/minersstudios/whomine/discord/WaitingReplyTask.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/CustomInventory.java b/paper/src/main/java/com/minersstudios/whomine/inventory/CustomInventory.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/CustomInventory.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/CustomInventory.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/CustomInventoryImpl.java b/paper/src/main/java/com/minersstudios/whomine/inventory/CustomInventoryImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/CustomInventoryImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/CustomInventoryImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/ElementPagedInventory.java b/paper/src/main/java/com/minersstudios/whomine/inventory/ElementPagedInventory.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/ElementPagedInventory.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/ElementPagedInventory.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/ElementSingleInventory.java b/paper/src/main/java/com/minersstudios/whomine/inventory/ElementSingleInventory.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/ElementSingleInventory.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/ElementSingleInventory.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/InventoryButton.java b/paper/src/main/java/com/minersstudios/whomine/inventory/InventoryButton.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/InventoryButton.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/InventoryButton.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventory.java b/paper/src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventory.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventory.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventory.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventoryImpl.java b/paper/src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventoryImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventoryImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/PagedCustomInventoryImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/PagedInventory.java b/paper/src/main/java/com/minersstudios/whomine/inventory/PagedInventory.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/PagedInventory.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/PagedInventory.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/ShulkerBoxMenu.java b/paper/src/main/java/com/minersstudios/whomine/inventory/ShulkerBoxMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/ShulkerBoxMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/ShulkerBoxMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/SignMenu.java b/paper/src/main/java/com/minersstudios/whomine/inventory/SignMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/SignMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/SignMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/SingleInventory.java b/paper/src/main/java/com/minersstudios/whomine/inventory/SingleInventory.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/SingleInventory.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/SingleInventory.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/StaticInventoryButton.java b/paper/src/main/java/com/minersstudios/whomine/inventory/StaticInventoryButton.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/StaticInventoryButton.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/StaticInventoryButton.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/action/ButtonClickAction.java b/paper/src/main/java/com/minersstudios/whomine/inventory/action/ButtonClickAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/action/ButtonClickAction.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/action/ButtonClickAction.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/action/InventoryAction.java b/paper/src/main/java/com/minersstudios/whomine/inventory/action/InventoryAction.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/action/InventoryAction.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/action/InventoryAction.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/holder/AbstractInventoryHolder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/holder/AbstractInventoryHolder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/holder/AbstractInventoryHolder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/holder/AbstractInventoryHolder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/holder/InventoryHolder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/holder/InventoryHolder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/holder/InventoryHolder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/holder/InventoryHolder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/BlastingRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/BlastingRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/BlastingRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/BlastingRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CampfireRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CampfireRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CampfireRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CampfireRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CategorizedRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CategorizedRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CategorizedRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CategorizedRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilderImpl.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilderImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilderImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CookingRecipeBuilderImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilderImpl.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilderImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilderImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/CraftingRecipeBuilderImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/FurnaceRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/FurnaceRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/FurnaceRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/FurnaceRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/GroupedRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/GroupedRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/GroupedRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/GroupedRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/RecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/RecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/RecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/RecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapedRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapedRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapedRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapedRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapelessRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapelessRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapelessRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/ShapelessRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilderImpl.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilderImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilderImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingRecipeBuilderImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTransformRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTransformRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTransformRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTransformRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTrimRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTrimRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTrimRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmithingTrimRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmokingRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmokingRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmokingRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/SmokingRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/StonecuttingRecipeBuilder.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/StonecuttingRecipeBuilder.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/builder/StonecuttingRecipeBuilder.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/builder/StonecuttingRecipeBuilder.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/CustomChoice.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/CustomChoice.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/choice/CustomChoice.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/CustomChoice.java
index 9633cff5..bf036fc8 100644
--- a/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/CustomChoice.java
+++ b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/CustomChoice.java
@@ -2,8 +2,8 @@
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
-import com.minersstudios.whomine.annotation.ResourceKey;
-import com.minersstudios.whomine.throwable.InvalidRegexException;
+import com.minersstudios.whomine.api.annotation.ResourceKey;
+import com.minersstudios.whomine.api.throwable.InvalidRegexException;
import com.minersstudios.whomine.utility.MSCustomUtils;
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/RecipeChoiceEntry.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/RecipeChoiceEntry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/choice/RecipeChoiceEntry.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/choice/RecipeChoiceEntry.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/BuilderRecipeEntry.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/BuilderRecipeEntry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/entry/BuilderRecipeEntry.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/BuilderRecipeEntry.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntry.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntry.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntry.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntryImpl.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntryImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntryImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/RecipeEntryImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/SimpleRecipeEntry.java b/paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/SimpleRecipeEntry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/inventory/recipe/entry/SimpleRecipeEntry.java
rename to paper/src/main/java/com/minersstudios/whomine/inventory/recipe/entry/SimpleRecipeEntry.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/api/DiscordListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/api/DiscordListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/api/DiscordListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/api/DiscordListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/api/EventListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/api/EventListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/api/EventListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/api/EventListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/api/ListenerManager.java b/paper/src/main/java/com/minersstudios/whomine/listener/api/ListenerManager.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/listener/api/ListenerManager.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/api/ListenerManager.java
index aa1e7531..95f1557e 100644
--- a/src/main/java/com/minersstudios/whomine/listener/api/ListenerManager.java
+++ b/paper/src/main/java/com/minersstudios/whomine/listener/api/ListenerManager.java
@@ -19,7 +19,7 @@
import com.minersstudios.whomine.listener.impl.packet.player.SwingArmListener;
import com.minersstudios.whomine.packet.PacketEvent;
import com.minersstudios.whomine.packet.PacketType;
-import com.minersstudios.whomine.status.StatusWatcher;
+import com.minersstudios.whomine.api.status.StatusWatcher;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import org.jetbrains.annotations.*;
diff --git a/src/main/java/com/minersstudios/whomine/listener/api/PacketListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/api/PacketListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/api/PacketListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/api/PacketListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/discord/CommandAutoCompleteInteractionListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/discord/CommandAutoCompleteInteractionListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/discord/CommandAutoCompleteInteractionListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/discord/CommandAutoCompleteInteractionListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/discord/MessageReceivedListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/discord/MessageReceivedListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/discord/MessageReceivedListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/discord/MessageReceivedListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/discord/SlashCommandInteractionListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/discord/SlashCommandInteractionListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/discord/SlashCommandInteractionListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/discord/SlashCommandInteractionListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockBreakListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockBreakListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockBreakListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockBreakListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDamageListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDamageListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDamageListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDamageListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDropItemListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDropItemListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDropItemListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockDropItemListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockExplodeListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockExplodeListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockExplodeListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockExplodeListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonExtendListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonExtendListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonExtendListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonExtendListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonRetractListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonRetractListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonRetractListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPistonRetractListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPlaceListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPlaceListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPlaceListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/BlockPlaceListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/block/NotePlayListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/NotePlayListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/block/NotePlayListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/block/NotePlayListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/chat/AsyncChatListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/chat/AsyncChatListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/chat/AsyncChatListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/chat/AsyncChatListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/command/UnknownCommandListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/command/UnknownCommandListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/command/UnknownCommandListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/command/UnknownCommandListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityChangeBlockListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityChangeBlockListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityChangeBlockListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityChangeBlockListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageByEntityListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageByEntityListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageByEntityListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageByEntityListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDamageListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDismountListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDismountListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDismountListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityDismountListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityExplodeListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityExplodeListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityExplodeListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/entity/EntityExplodeListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/hanging/HangingBreakByEntityListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/hanging/HangingBreakByEntityListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/hanging/HangingBreakByEntityListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/hanging/HangingBreakByEntityListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryClickListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryClickListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryClickListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryClickListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCloseListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCloseListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCloseListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCloseListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCreativeListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCreativeListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCreativeListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryCreativeListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryDragListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryDragListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryDragListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryDragListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryOpenListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryOpenListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryOpenListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/InventoryOpenListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareAnvilListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareAnvilListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareAnvilListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareAnvilListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareItemCraftListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareItemCraftListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareItemCraftListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/inventory/PrepareItemCraftListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/BanSwordMechanic.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/BanSwordMechanic.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/BanSwordMechanic.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/BanSwordMechanic.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CardBoxMechanic.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CardBoxMechanic.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CardBoxMechanic.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CardBoxMechanic.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CocaineMechanic.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CocaineMechanic.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CocaineMechanic.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/CocaineMechanic.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DamageableItemMechanic.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DamageableItemMechanic.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DamageableItemMechanic.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DamageableItemMechanic.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DosimeterMechanic.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DosimeterMechanic.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DosimeterMechanic.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/DosimeterMechanic.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/PoopMechanic.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/PoopMechanic.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/PoopMechanic.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/mechanic/PoopMechanic.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/AsyncPlayerPreLoginListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/AsyncPlayerPreLoginListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/AsyncPlayerPreLoginListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/AsyncPlayerPreLoginListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerAdvancementDoneListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerAdvancementDoneListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerAdvancementDoneListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerAdvancementDoneListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerBucketEmptyListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerBucketEmptyListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerBucketEmptyListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerBucketEmptyListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerChangedWorldListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerChangedWorldListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerChangedWorldListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerChangedWorldListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerCommandPreprocessListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerCommandPreprocessListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerCommandPreprocessListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerCommandPreprocessListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDeathListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDeathListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDeathListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDeathListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDropItemListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDropItemListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDropItemListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerDropItemListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerEditBookListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerEditBookListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerEditBookListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerEditBookListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerGameModeChangeListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerGameModeChangeListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerGameModeChangeListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerGameModeChangeListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractAtEntityListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractAtEntityListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractAtEntityListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractAtEntityListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractEntityListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractEntityListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractEntityListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractEntityListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerInteractListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerJoinListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerJoinListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerJoinListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerJoinListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerKickListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerKickListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerKickListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerKickListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerMoveListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerMoveListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerMoveListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerMoveListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerQuitListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerQuitListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerQuitListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerQuitListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerResourcePackStatusListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerResourcePackStatusListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerResourcePackStatusListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerResourcePackStatusListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerSpawnLocationListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerSpawnLocationListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerSpawnLocationListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerSpawnLocationListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerStopSpectatingEntityListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerStopSpectatingEntityListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerStopSpectatingEntityListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerStopSpectatingEntityListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerTeleportListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerTeleportListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerTeleportListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/player/PlayerTeleportListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/event/server/ServerCommandListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/event/server/ServerCommandListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/event/server/ServerCommandListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/event/server/ServerCommandListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerActionListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerActionListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerActionListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerActionListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerUpdateSignListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerUpdateSignListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerUpdateSignListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/PlayerUpdateSignListener.java
diff --git a/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/SwingArmListener.java b/paper/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/SwingArmListener.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/listener/impl/packet/player/SwingArmListener.java
rename to paper/src/main/java/com/minersstudios/whomine/listener/impl/packet/player/SwingArmListener.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/LanguageFile.java b/paper/src/main/java/com/minersstudios/whomine/locale/LanguageFile.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/LanguageFile.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/LanguageFile.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/Translation.java b/paper/src/main/java/com/minersstudios/whomine/locale/Translation.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/Translation.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/Translation.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/TranslationRegistry.java b/paper/src/main/java/com/minersstudios/whomine/locale/TranslationRegistry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/TranslationRegistry.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/TranslationRegistry.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/TranslationRegistryImpl.java b/paper/src/main/java/com/minersstudios/whomine/locale/TranslationRegistryImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/TranslationRegistryImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/TranslationRegistryImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/Translations.java b/paper/src/main/java/com/minersstudios/whomine/locale/Translations.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/Translations.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/Translations.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/resource/FileTranslationResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/locale/resource/FileTranslationResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/resource/FileTranslationResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/resource/FileTranslationResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/resource/GitHubTranslationResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/locale/resource/GitHubTranslationResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/resource/GitHubTranslationResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/resource/GitHubTranslationResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/resource/TranslationResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/locale/resource/TranslationResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/resource/TranslationResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/resource/TranslationResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/locale/resource/URITranslationResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/locale/resource/URITranslationResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/locale/resource/URITranslationResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/locale/resource/URITranslationResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/menu/CraftsMenu.java b/paper/src/main/java/com/minersstudios/whomine/menu/CraftsMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/menu/CraftsMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/menu/CraftsMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/menu/DiscordLinkCodeMenu.java b/paper/src/main/java/com/minersstudios/whomine/menu/DiscordLinkCodeMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/menu/DiscordLinkCodeMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/menu/DiscordLinkCodeMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/menu/PronounMenu.java b/paper/src/main/java/com/minersstudios/whomine/menu/PronounMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/menu/PronounMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/menu/PronounMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/menu/RenamesMenu.java b/paper/src/main/java/com/minersstudios/whomine/menu/RenamesMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/menu/RenamesMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/menu/RenamesMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/menu/ResourcePackMenu.java b/paper/src/main/java/com/minersstudios/whomine/menu/ResourcePackMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/menu/ResourcePackMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/menu/ResourcePackMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/menu/SkinsMenu.java b/paper/src/main/java/com/minersstudios/whomine/menu/SkinsMenu.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/menu/SkinsMenu.java
rename to paper/src/main/java/com/minersstudios/whomine/menu/SkinsMenu.java
diff --git a/src/main/java/com/minersstudios/whomine/packet/ChannelHandler.java b/paper/src/main/java/com/minersstudios/whomine/packet/ChannelHandler.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/packet/ChannelHandler.java
rename to paper/src/main/java/com/minersstudios/whomine/packet/ChannelHandler.java
diff --git a/src/main/java/com/minersstudios/whomine/packet/PacketContainer.java b/paper/src/main/java/com/minersstudios/whomine/packet/PacketContainer.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/packet/PacketContainer.java
rename to paper/src/main/java/com/minersstudios/whomine/packet/PacketContainer.java
diff --git a/src/main/java/com/minersstudios/whomine/packet/PacketEvent.java b/paper/src/main/java/com/minersstudios/whomine/packet/PacketEvent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/packet/PacketEvent.java
rename to paper/src/main/java/com/minersstudios/whomine/packet/PacketEvent.java
diff --git a/src/main/java/com/minersstudios/whomine/packet/PacketProtocol.java b/paper/src/main/java/com/minersstudios/whomine/packet/PacketProtocol.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/packet/PacketProtocol.java
rename to paper/src/main/java/com/minersstudios/whomine/packet/PacketProtocol.java
diff --git a/src/main/java/com/minersstudios/whomine/packet/PacketRegistry.java b/paper/src/main/java/com/minersstudios/whomine/packet/PacketRegistry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/packet/PacketRegistry.java
rename to paper/src/main/java/com/minersstudios/whomine/packet/PacketRegistry.java
diff --git a/src/main/java/com/minersstudios/whomine/packet/PacketType.java b/paper/src/main/java/com/minersstudios/whomine/packet/PacketType.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/packet/PacketType.java
rename to paper/src/main/java/com/minersstudios/whomine/packet/PacketType.java
diff --git a/src/main/java/com/minersstudios/whomine/player/PlayerFile.java b/paper/src/main/java/com/minersstudios/whomine/player/PlayerFile.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/PlayerFile.java
rename to paper/src/main/java/com/minersstudios/whomine/player/PlayerFile.java
diff --git a/src/main/java/com/minersstudios/whomine/player/PlayerInfo.java b/paper/src/main/java/com/minersstudios/whomine/player/PlayerInfo.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/PlayerInfo.java
rename to paper/src/main/java/com/minersstudios/whomine/player/PlayerInfo.java
diff --git a/src/main/java/com/minersstudios/whomine/player/PlayerName.java b/paper/src/main/java/com/minersstudios/whomine/player/PlayerName.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/PlayerName.java
rename to paper/src/main/java/com/minersstudios/whomine/player/PlayerName.java
diff --git a/src/main/java/com/minersstudios/whomine/player/PlayerSettings.java b/paper/src/main/java/com/minersstudios/whomine/player/PlayerSettings.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/PlayerSettings.java
rename to paper/src/main/java/com/minersstudios/whomine/player/PlayerSettings.java
diff --git a/src/main/java/com/minersstudios/whomine/player/Pronouns.java b/paper/src/main/java/com/minersstudios/whomine/player/Pronouns.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/Pronouns.java
rename to paper/src/main/java/com/minersstudios/whomine/player/Pronouns.java
diff --git a/src/main/java/com/minersstudios/whomine/player/RegistrationProcess.java b/paper/src/main/java/com/minersstudios/whomine/player/RegistrationProcess.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/RegistrationProcess.java
rename to paper/src/main/java/com/minersstudios/whomine/player/RegistrationProcess.java
diff --git a/src/main/java/com/minersstudios/whomine/player/ResourcePack.java b/paper/src/main/java/com/minersstudios/whomine/player/ResourcePack.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/ResourcePack.java
rename to paper/src/main/java/com/minersstudios/whomine/player/ResourcePack.java
diff --git a/src/main/java/com/minersstudios/whomine/player/collection/IDMap.java b/paper/src/main/java/com/minersstudios/whomine/player/collection/IDMap.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/collection/IDMap.java
rename to paper/src/main/java/com/minersstudios/whomine/player/collection/IDMap.java
diff --git a/src/main/java/com/minersstudios/whomine/player/collection/MuteMap.java b/paper/src/main/java/com/minersstudios/whomine/player/collection/MuteMap.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/collection/MuteMap.java
rename to paper/src/main/java/com/minersstudios/whomine/player/collection/MuteMap.java
diff --git a/src/main/java/com/minersstudios/whomine/player/collection/PlayerInfoMap.java b/paper/src/main/java/com/minersstudios/whomine/player/collection/PlayerInfoMap.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/collection/PlayerInfoMap.java
rename to paper/src/main/java/com/minersstudios/whomine/player/collection/PlayerInfoMap.java
diff --git a/src/main/java/com/minersstudios/whomine/player/skin/MineSkinDelayErrorJson.java b/paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinDelayErrorJson.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/skin/MineSkinDelayErrorJson.java
rename to paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinDelayErrorJson.java
diff --git a/src/main/java/com/minersstudios/whomine/player/skin/MineSkinErrorJson.java b/paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinErrorJson.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/skin/MineSkinErrorJson.java
rename to paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinErrorJson.java
diff --git a/src/main/java/com/minersstudios/whomine/player/skin/MineSkinJson.java b/paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinJson.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/skin/MineSkinJson.java
rename to paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinJson.java
diff --git a/src/main/java/com/minersstudios/whomine/player/skin/MineSkinResponse.java b/paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinResponse.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/skin/MineSkinResponse.java
rename to paper/src/main/java/com/minersstudios/whomine/player/skin/MineSkinResponse.java
diff --git a/src/main/java/com/minersstudios/whomine/player/skin/Skin.java b/paper/src/main/java/com/minersstudios/whomine/player/skin/Skin.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/player/skin/Skin.java
rename to paper/src/main/java/com/minersstudios/whomine/player/skin/Skin.java
diff --git a/src/main/java/com/minersstudios/whomine/plugin/AbstractPluginComponent.java b/paper/src/main/java/com/minersstudios/whomine/plugin/AbstractPluginComponent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/plugin/AbstractPluginComponent.java
rename to paper/src/main/java/com/minersstudios/whomine/plugin/AbstractPluginComponent.java
diff --git a/src/main/java/com/minersstudios/whomine/plugin/PluginComponent.java b/paper/src/main/java/com/minersstudios/whomine/plugin/PluginComponent.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/plugin/PluginComponent.java
rename to paper/src/main/java/com/minersstudios/whomine/plugin/PluginComponent.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/ResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resource/ResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/ResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/ResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/file/AbstractFileResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resource/file/AbstractFileResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/file/AbstractFileResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/file/AbstractFileResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/file/FileResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resource/file/FileResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/file/FileResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/file/FileResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/github/AbstractGithubResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resource/github/AbstractGithubResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/github/AbstractGithubResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/github/AbstractGithubResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/github/GithubResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resource/github/GithubResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/github/GithubResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/github/GithubResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/github/Tag.java b/paper/src/main/java/com/minersstudios/whomine/resource/github/Tag.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/github/Tag.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/github/Tag.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/uri/AbstractURIResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resource/uri/AbstractURIResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/uri/AbstractURIResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/uri/AbstractURIResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resource/uri/URIResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resource/uri/URIResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resource/uri/URIResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resource/uri/URIResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePack.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePack.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/ResourcePack.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePack.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackApplier.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackApplier.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackApplier.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackApplier.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackLoader.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackLoader.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackLoader.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackLoader.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackRegistry.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackRegistry.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackRegistry.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/ResourcePackRegistry.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/data/EmptyResourcePackData.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/data/EmptyResourcePackData.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/data/EmptyResourcePackData.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/data/EmptyResourcePackData.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackData.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackData.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackData.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackData.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackDataImpl.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackDataImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackDataImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/data/ResourcePackDataImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/resource/GitHubPackResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/resource/GitHubPackResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/resource/GitHubPackResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/resource/GitHubPackResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/resource/PackResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/resource/PackResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/resource/PackResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/resource/PackResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/resource/URIPackResourceManager.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/resource/URIPackResourceManager.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/resource/URIPackResourceManager.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/resource/URIPackResourceManager.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/throwable/FatalPackLoadException.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/throwable/FatalPackLoadException.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/throwable/FatalPackLoadException.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/throwable/FatalPackLoadException.java
diff --git a/src/main/java/com/minersstudios/whomine/resourcepack/throwable/PackLoadException.java b/paper/src/main/java/com/minersstudios/whomine/resourcepack/throwable/PackLoadException.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/resourcepack/throwable/PackLoadException.java
rename to paper/src/main/java/com/minersstudios/whomine/resourcepack/throwable/PackLoadException.java
diff --git a/src/main/java/com/minersstudios/whomine/scheduler/TaskExecutor.java b/paper/src/main/java/com/minersstudios/whomine/scheduler/TaskExecutor.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/scheduler/TaskExecutor.java
rename to paper/src/main/java/com/minersstudios/whomine/scheduler/TaskExecutor.java
diff --git a/src/main/java/com/minersstudios/whomine/scheduler/task/BanListTask.java b/paper/src/main/java/com/minersstudios/whomine/scheduler/task/BanListTask.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/scheduler/task/BanListTask.java
rename to paper/src/main/java/com/minersstudios/whomine/scheduler/task/BanListTask.java
diff --git a/src/main/java/com/minersstudios/whomine/scheduler/task/MuteMapTask.java b/paper/src/main/java/com/minersstudios/whomine/scheduler/task/MuteMapTask.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/scheduler/task/MuteMapTask.java
rename to paper/src/main/java/com/minersstudios/whomine/scheduler/task/MuteMapTask.java
diff --git a/src/main/java/com/minersstudios/whomine/scheduler/task/PlayerListTask.java b/paper/src/main/java/com/minersstudios/whomine/scheduler/task/PlayerListTask.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/scheduler/task/PlayerListTask.java
rename to paper/src/main/java/com/minersstudios/whomine/scheduler/task/PlayerListTask.java
diff --git a/src/main/java/com/minersstudios/whomine/scheduler/task/SeatsTask.java b/paper/src/main/java/com/minersstudios/whomine/scheduler/task/SeatsTask.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/scheduler/task/SeatsTask.java
rename to paper/src/main/java/com/minersstudios/whomine/scheduler/task/SeatsTask.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/BlockUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/BlockUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/BlockUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/BlockUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/ChatUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/ChatUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/ChatUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/ChatUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/CoreProtectUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/CoreProtectUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/CoreProtectUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/CoreProtectUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/DateUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/DateUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/DateUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/DateUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/Font.java b/paper/src/main/java/com/minersstudios/whomine/utility/Font.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/Font.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/Font.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/IDUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/IDUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/IDUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/IDUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/ItemUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/ItemUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/ItemUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/ItemUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/LocationUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/LocationUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/LocationUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/LocationUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/MSBlockUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/MSBlockUtils.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/utility/MSBlockUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/MSBlockUtils.java
index 0d4c7c3e..59e56427 100644
--- a/src/main/java/com/minersstudios/whomine/utility/MSBlockUtils.java
+++ b/paper/src/main/java/com/minersstudios/whomine/utility/MSBlockUtils.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.utility;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.block.CustomBlockData;
import com.minersstudios.whomine.custom.block.CustomBlockRegistry;
import org.bukkit.inventory.ItemStack;
diff --git a/src/main/java/com/minersstudios/whomine/utility/MSCustomUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/MSCustomUtils.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/utility/MSCustomUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/MSCustomUtils.java
index 4eb816fc..5eca470b 100644
--- a/src/main/java/com/minersstudios/whomine/utility/MSCustomUtils.java
+++ b/paper/src/main/java/com/minersstudios/whomine/utility/MSCustomUtils.java
@@ -1,8 +1,8 @@
package com.minersstudios.whomine.utility;
-import com.minersstudios.whomine.annotation.Key;
-import com.minersstudios.whomine.annotation.Namespace;
-import com.minersstudios.whomine.annotation.ResourceKey;
+import com.minersstudios.whomine.api.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Namespace;
+import com.minersstudios.whomine.api.annotation.ResourceKey;
import com.minersstudios.whomine.custom.block.CustomBlockData;
import com.minersstudios.whomine.custom.block.CustomBlockRegistry;
import com.minersstudios.whomine.custom.decor.CustomDecorData;
diff --git a/src/main/java/com/minersstudios/whomine/utility/MSDecorUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/MSDecorUtils.java
similarity index 99%
rename from src/main/java/com/minersstudios/whomine/utility/MSDecorUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/MSDecorUtils.java
index 28e14484..d01cf903 100644
--- a/src/main/java/com/minersstudios/whomine/utility/MSDecorUtils.java
+++ b/paper/src/main/java/com/minersstudios/whomine/utility/MSDecorUtils.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.utility;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.world.location.MSBoundingBox;
import com.minersstudios.whomine.world.location.MSPosition;
import com.minersstudios.whomine.custom.decor.CustomDecorData;
diff --git a/src/main/java/com/minersstudios/whomine/utility/MSItemUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/MSItemUtils.java
similarity index 98%
rename from src/main/java/com/minersstudios/whomine/utility/MSItemUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/MSItemUtils.java
index 1cfe7024..4972df94 100644
--- a/src/main/java/com/minersstudios/whomine/utility/MSItemUtils.java
+++ b/paper/src/main/java/com/minersstudios/whomine/utility/MSItemUtils.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.utility;
-import com.minersstudios.whomine.annotation.Key;
+import com.minersstudios.whomine.api.annotation.Key;
import com.minersstudios.whomine.custom.item.CustomItem;
import com.minersstudios.whomine.custom.item.CustomItemType;
import org.bukkit.inventory.ItemStack;
diff --git a/src/main/java/com/minersstudios/whomine/utility/MSLogger.java b/paper/src/main/java/com/minersstudios/whomine/utility/MSLogger.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/MSLogger.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/MSLogger.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/MSPlayerUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/MSPlayerUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/MSPlayerUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/MSPlayerUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/MessageUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/MessageUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/MessageUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/MessageUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/PaperUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/PaperUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/PaperUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/PaperUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/PlayerUtils.java b/paper/src/main/java/com/minersstudios/whomine/utility/PlayerUtils.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/PlayerUtils.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/PlayerUtils.java
diff --git a/src/main/java/com/minersstudios/whomine/utility/SharedConstants.java b/paper/src/main/java/com/minersstudios/whomine/utility/SharedConstants.java
similarity index 97%
rename from src/main/java/com/minersstudios/whomine/utility/SharedConstants.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/SharedConstants.java
index e0404c81..6efa5cb4 100644
--- a/src/main/java/com/minersstudios/whomine/utility/SharedConstants.java
+++ b/paper/src/main/java/com/minersstudios/whomine/utility/SharedConstants.java
@@ -1,6 +1,6 @@
package com.minersstudios.whomine.utility;
-import com.minersstudios.whomine.annotation.Namespace;
+import com.minersstudios.whomine.api.annotation.Namespace;
import net.kyori.adventure.translation.Translator;
import org.jetbrains.annotations.Contract;
diff --git a/src/main/java/com/minersstudios/whomine/utility/UseBucketsAndSpawnableItems.java b/paper/src/main/java/com/minersstudios/whomine/utility/UseBucketsAndSpawnableItems.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/utility/UseBucketsAndSpawnableItems.java
rename to paper/src/main/java/com/minersstudios/whomine/utility/UseBucketsAndSpawnableItems.java
diff --git a/src/main/java/com/minersstudios/whomine/world/WorldDark.java b/paper/src/main/java/com/minersstudios/whomine/world/WorldDark.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/WorldDark.java
rename to paper/src/main/java/com/minersstudios/whomine/world/WorldDark.java
diff --git a/src/main/java/com/minersstudios/whomine/world/location/MSBoundingBox.java b/paper/src/main/java/com/minersstudios/whomine/world/location/MSBoundingBox.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/location/MSBoundingBox.java
rename to paper/src/main/java/com/minersstudios/whomine/world/location/MSBoundingBox.java
diff --git a/src/main/java/com/minersstudios/whomine/world/location/MSPosition.java b/paper/src/main/java/com/minersstudios/whomine/world/location/MSPosition.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/location/MSPosition.java
rename to paper/src/main/java/com/minersstudios/whomine/world/location/MSPosition.java
diff --git a/src/main/java/com/minersstudios/whomine/world/location/MSVector.java b/paper/src/main/java/com/minersstudios/whomine/world/location/MSVector.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/location/MSVector.java
rename to paper/src/main/java/com/minersstudios/whomine/world/location/MSVector.java
diff --git a/src/main/java/com/minersstudios/whomine/world/sound/EmptySound.java b/paper/src/main/java/com/minersstudios/whomine/world/sound/EmptySound.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/sound/EmptySound.java
rename to paper/src/main/java/com/minersstudios/whomine/world/sound/EmptySound.java
diff --git a/src/main/java/com/minersstudios/whomine/world/sound/Sound.java b/paper/src/main/java/com/minersstudios/whomine/world/sound/Sound.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/sound/Sound.java
rename to paper/src/main/java/com/minersstudios/whomine/world/sound/Sound.java
diff --git a/src/main/java/com/minersstudios/whomine/world/sound/SoundAdapter.java b/paper/src/main/java/com/minersstudios/whomine/world/sound/SoundAdapter.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/sound/SoundAdapter.java
rename to paper/src/main/java/com/minersstudios/whomine/world/sound/SoundAdapter.java
diff --git a/src/main/java/com/minersstudios/whomine/world/sound/SoundGroup.java b/paper/src/main/java/com/minersstudios/whomine/world/sound/SoundGroup.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/sound/SoundGroup.java
rename to paper/src/main/java/com/minersstudios/whomine/world/sound/SoundGroup.java
diff --git a/src/main/java/com/minersstudios/whomine/world/sound/SoundImpl.java b/paper/src/main/java/com/minersstudios/whomine/world/sound/SoundImpl.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/sound/SoundImpl.java
rename to paper/src/main/java/com/minersstudios/whomine/world/sound/SoundImpl.java
diff --git a/src/main/java/com/minersstudios/whomine/world/sound/package-info.java b/paper/src/main/java/com/minersstudios/whomine/world/sound/package-info.java
similarity index 100%
rename from src/main/java/com/minersstudios/whomine/world/sound/package-info.java
rename to paper/src/main/java/com/minersstudios/whomine/world/sound/package-info.java
diff --git a/src/main/resources/paper-plugin.yml b/paper/src/main/resources/paper-plugin.yml
similarity index 100%
rename from src/main/resources/paper-plugin.yml
rename to paper/src/main/resources/paper-plugin.yml
diff --git a/src/main/resources/players/console.yml b/paper/src/main/resources/players/console.yml
similarity index 100%
rename from src/main/resources/players/console.yml
rename to paper/src/main/resources/players/console.yml
diff --git a/src/main/test/java/com/minersstudios/whomine/Main.java b/paper/src/test/java/com/minersstudios/whomine/test/Main.java
similarity index 77%
rename from src/main/test/java/com/minersstudios/whomine/Main.java
rename to paper/src/test/java/com/minersstudios/whomine/test/Main.java
index 2f6d5001..43a4e799 100644
--- a/src/main/test/java/com/minersstudios/whomine/Main.java
+++ b/paper/src/test/java/com/minersstudios/whomine/test/Main.java
@@ -1,4 +1,4 @@
-package com.minersstudios.whomine;
+package com.minersstudios.whomine.test;
public final class Main {
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 2fcf68e8..23dfa0c3 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1 +1,6 @@
rootProject.name = "WhoMine"
+
+include(
+ "paper",
+ "common"
+)
diff --git a/src/main/java/com/minersstudios/whomine/status/package-info.java b/src/main/java/com/minersstudios/whomine/status/package-info.java
deleted file mode 100644
index 98e08614..00000000
--- a/src/main/java/com/minersstudios/whomine/status/package-info.java
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * This package contains classes and interfaces related to statuses and their
- * management. They are thread-safe and can be safely used to manage plugin
- * statuses in a multithreading environment.
- *
- * @see com.minersstudios.whomine.status.Status
- * @see com.minersstudios.whomine.status.StatusWatcher
- * @see com.minersstudios.whomine.status.StatusHandler
- */
-package com.minersstudios.whomine.status;