diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 30b5b942..a7cb9e94 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -17,26 +17,30 @@ jobs:
fetch-depth: 0
- name: Set BUILD_VERSION
- run: echo "BUILD_VERSION=$(git describe --tags $(git rev-list --tags --max-count=1))-b$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
+ run: |
+ echo "BUILD_VERSION=$(
+ git describe --tags $(git rev-list --tags --max-count=1) 2>/dev/null \
+ || echo "5.0.0"
+ )-b$GITHUB_RUN_NUMBER" >> "$GITHUB_ENV"
- - name: Restore Maven cache
+ - name: Restore cache
id: cache-restore
uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ secrets.CACHE_VERSION }}-${{ hashFiles('./.github/workflows/buildtools.sh') }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('./.github/workflows/buildtools.sh') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ secrets.CACHE_VERSION }}-
+ ${{ runner.os }}-maven
- - name: Set up JDK 17/21
+ - name: Set up JDK 17/21/25
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: |
- 8
17
21
25
+ cache: gradle
- name: Run BuildTools
run: |
@@ -44,10 +48,10 @@ jobs:
- name: Build
run: |
- mvn clean package --batch-mode -Drevision=$BUILD_VERSION
- mv orebfuscator-plugin/target/orebfuscator-*.jar ./
+ ./gradlew build -PbuildVersion="$BUILD_VERSION"
+ mv orebfuscator-bukkit/build/libs/orebfuscator-*.jar ./
- - name: Save Maven cache
+ - name: Save cache
if: always() && steps.cache-restore.outputs.cache-hit != 'true'
uses: actions/cache/save@v4
with:
@@ -57,5 +61,5 @@ jobs:
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
- name: orebfuscator-plugin
+ name: orebfuscator-bukkit
path: ./orebfuscator-*.jar
diff --git a/.github/workflows/buildtools.sh b/.github/workflows/buildtools.sh
index f01ac45f..c31f9769 100644
--- a/.github/workflows/buildtools.sh
+++ b/.github/workflows/buildtools.sh
@@ -19,27 +19,27 @@ build () {
checkVersion () {
echo Checking version $1
- if [ ! -d ~/.m2/repository/org/spigotmc/spigot/$1-R0.1-SNAPSHOT ]; then
- build $1 $2
+ if [ ! -d ~/.m2/repository/org/spigotmc/spigot/$1-$2-SNAPSHOT ]; then
+ build $1 $3
fi
}
-checkVersion "1.16.5" "8"
-checkVersion "1.17.1" "17"
-checkVersion "1.18.1" "17"
-checkVersion "1.18.2" "17"
-checkVersion "1.19.2" "17"
-checkVersion "1.19.3" "17"
-checkVersion "1.19.4" "17"
-checkVersion "1.20.1" "17"
-checkVersion "1.20.2" "17"
-checkVersion "1.20.4" "17"
-checkVersion "1.20.6" "21"
-checkVersion "1.21.1" "21"
-checkVersion "1.21.3" "21"
-checkVersion "1.21.4" "21"
-checkVersion "1.21.5" "21"
-checkVersion "1.21.8" "21"
-checkVersion "1.21.10" "21"
-checkVersion "1.21.11" "21"
-checkVersion "26.1" "25"
+checkVersion "1.16.5" "R0.1" "8"
+checkVersion "1.17.1" "R0.1" "17"
+checkVersion "1.18.1" "R0.1" "17"
+checkVersion "1.18.2" "R0.1" "17"
+checkVersion "1.19.2" "R0.1" "17"
+checkVersion "1.19.3" "R0.1" "17"
+checkVersion "1.19.4" "R0.1" "17"
+checkVersion "1.20.1" "R0.1" "17"
+checkVersion "1.20.2" "R0.1" "17"
+checkVersion "1.20.4" "R0.1" "17"
+checkVersion "1.20.6" "R0.1" "21"
+checkVersion "1.21.1" "R0.1" "21"
+checkVersion "1.21.3" "R0.1" "21"
+checkVersion "1.21.4" "R0.1" "21"
+checkVersion "1.21.5" "R0.1" "21"
+checkVersion "1.21.8" "R0.1" "21"
+checkVersion "1.21.10" "R0.1" "21"
+checkVersion "1.21.11" "R0.2" "21"
+checkVersion "26.1.1" "R0.1" "25"
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index fe4f6439..82cee4ad 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -14,31 +14,45 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
+
- name: Set RELEASE_VERSION
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- - name: Maven cache
- uses: actions/cache@v4
+
+ - name: Restore cache
+ id: cache-restore
+ uses: actions/cache/restore@v4
with:
path: ~/.m2/repository
- key: ${{ runner.os }}-maven-${{ secrets.CACHE_VERSION }}-${{ hashFiles('./.github/workflows/buildtools.sh') }}
+ key: ${{ runner.os }}-maven-${{ hashFiles('./.github/workflows/buildtools.sh') }}
restore-keys: |
- ${{ runner.os }}-maven-${{ secrets.CACHE_VERSION }}-
- - name: Set up JDK 8/17/21
+ ${{ runner.os }}-maven
+
+ - name: Set up JDK 17/21/25
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: |
- 8
17
21
25
+ cache: gradle
+
- name: Run BuildTools
run: |
bash ./.github/workflows/buildtools.sh
+
- name: Build
run: |
- mvn clean package --batch-mode -Drevision=$RELEASE_VERSION
- mv orebfuscator-plugin/target/orebfuscator-*.jar ./
+ ./gradlew build -PbuildVersion="$RELEASE_VERSION"
+ mv orebfuscator-bukkit/build/libs/orebfuscator-*.jar ./
+
+ - name: Save cache
+ if: always() && steps.cache-restore.outputs.cache-hit != 'true'
+ uses: actions/cache/save@v4
+ with:
+ path: ~/.m2/repository
+ key: ${{ steps.cache-restore.outputs.cache-primary-key }}
+
- name: Release artifacts
uses: ncipollo/release-action@v1
with:
diff --git a/.gitignore b/.gitignore
index 712b9cbb..08053aaa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -53,3 +53,12 @@ out/
# ---- VS Code (optional) ----
.vscode/
+
+# ---- Gradle ----
+.gradle
+**/build/
+!**/src/**/build/
+gradle-app.setting
+!gradle-wrapper.jar
+!gradle-wrapper.properties
+.gradletasknamecache
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 00000000..ef252cff
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,48 @@
+allprojects {
+ group = "dev.imprex"
+ version = findProperty("buildVersion") ?: "5.0.0-b0"
+ description = "High-Performance Anti X-Ray"
+}
+
+subprojects {
+ apply plugin: 'java'
+ apply plugin: 'java-library'
+
+ repositories {
+ mavenCentral()
+ maven {
+ name = 'spigot'
+ url = 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
+ }
+ maven {
+ name = 'papermc'
+ url = 'https://repo.papermc.io/repository/maven-public/'
+ }
+ maven {
+ name = 'codemc'
+ url = 'https://repo.codemc.io/repository/maven-releases/'
+ }
+ mavenLocal()
+ }
+
+ dependencies {
+ compileOnly(libs.jspecify)
+ compileOnly(libs.annotations)
+
+ testImplementation(platform(libs.junit.bom))
+ testImplementation(libs.junit.jupiter)
+ testRuntimeOnly(libs.junit.platform)
+ }
+
+ java {
+ toolchain.languageVersion = JavaLanguageVersion.of(17)
+ }
+
+ tasks.withType(JavaCompile).configureEach {
+ options.encoding = 'UTF-8'
+ }
+
+ tasks.test {
+ useJUnitPlatform()
+ }
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 00000000..8d41b3cb
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,7 @@
+# Done to increase the memory available to gradle.
+org.gradle.parallel=true
+org.gradle.daemon=true
+
+org.gradle.configuration-cache=false
+org.gradle.vfs.watch=false
+org.gradle.jvmargs=-Xmx4G -Dfile.encoding=UTF-8
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
new file mode 100644
index 00000000..3c8710a2
--- /dev/null
+++ b/gradle/libs.versions.toml
@@ -0,0 +1,55 @@
+[versions]
+# gradle plugins
+shadow = "9.4.1"
+
+# test
+junit = "5.13.4"
+
+# common
+jspecify = "1.0.0"
+annotations = "26.0.2"
+
+# core
+netty = "4.1.90.Final"
+guava = "33.5.0-jre"
+gson = "2.13.2"
+snakeyaml = "2.5"
+joml = "1.10.8"
+lz4 = "1.10.2"
+
+# bukkit
+spigot = "1.16.1-R0.1-SNAPSHOT"
+paper = "1.20.1-R0.1-SNAPSHOT"
+folia = "1.20.1-R0.1-SNAPSHOT"
+bstats = "3.1.0"
+protocollib = "5.3.0"
+
+[plugins]
+shadow = { id = "com.gradleup.shadow", version.ref = "shadow" }
+
+[libraries]
+
+# test
+junit-bom = { module = "org.junit:junit-bom", version.ref = "junit" }
+junit-jupiter = { module = "org.junit.jupiter:junit-jupiter" }
+junit-platform = { module = "org.junit.platform:junit-platform-launcher" }
+
+# common
+jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" }
+annotations = { module = "org.jetbrains:annotations", version.ref = "annotations" }
+
+# core
+netty-bom = { module = "io.netty:netty-bom", version.ref = "netty" }
+netty-buffer = { module = "io.netty:netty-buffer" }
+guava = { module = "com.google.guava:guava", version.ref = "guava" }
+gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
+snakeyaml = { module = "org.yaml:snakeyaml", version.ref = "snakeyaml" }
+joml = { module = "org.joml:joml", version.ref = "joml" }
+lz4 = { module = "at.yawk.lz4:lz4-java", version.ref = "lz4" }
+
+# bukkit
+spigot = { module = "org.spigotmc:spigot-api", version.ref = "spigot" }
+paper = { module = "io.papermc.paper:paper-api", version.ref = "paper" }
+folia = { module = "dev.folia:folia-api", version.ref = "folia" }
+bstats = { module = "org.bstats:bstats-bukkit", version.ref = "bstats" }
+protocollib = { module = "net.dmulloy2:ProtocolLib", version.ref = "protocollib" }
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..249e5832
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..e3794de4
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Jan 28 20:48:32 CET 2026
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 00000000..1b6c7873
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,234 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..107acd32
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/orebfuscator-api-example/pom.xml b/orebfuscator-api-example/pom.xml
deleted file mode 100644
index 141f6fce..00000000
--- a/orebfuscator-api-example/pom.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator
- ${revision}
-
-
- orebfuscator-api-example
- jar
-
-
-
- net.imprex
- orebfuscator-api
- ${revision}
- provided
-
-
- dev.folia
- folia-api
- 1.21.4-R0.1-SNAPSHOT
- provided
-
-
-
-
-
-
- src/main/resources
- true
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-api/pom.xml b/orebfuscator-api/pom.xml
deleted file mode 100644
index c3a1c185..00000000
--- a/orebfuscator-api/pom.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator
- ${revision}
-
-
- orebfuscator-api
- jar
-
-
-
- org.spigotmc
- spigot-api
- ${dependency.bukkit.version}
- provided
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-bukkit/build.gradle b/orebfuscator-bukkit/build.gradle
new file mode 100644
index 00000000..2e513546
--- /dev/null
+++ b/orebfuscator-bukkit/build.gradle
@@ -0,0 +1,78 @@
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+
+plugins {
+ alias(libs.plugins.shadow)
+}
+
+dependencies {
+ compileOnly(libs.spigot)
+ compileOnly(libs.protocollib)
+ implementation(libs.bstats)
+
+ api(project(":orebfuscator-bukkit:orebfuscator-bukkit-api"))
+
+ implementation(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility"))
+ implementation(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-spigot"))
+ implementation(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-paper"))
+ implementation(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-folia"))
+
+ implementation(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+ implementation(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_16_R3"))
+
+ def nmsModules = [
+ // spigot-only
+ [ver: "v1_17_R1", cfgs: ["spigotMapped"]],
+ [ver: "v1_18_R1", cfgs: ["spigotMapped"]],
+ [ver: "v1_18_R2", cfgs: ["spigotMapped"]],
+
+ // mojmap + spigot
+ [ver: "v1_19_R1", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_19_R2", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_19_R3", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_20_R1", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_20_R2", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_20_R3", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_20_R4", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_21_R1", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_21_R2", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_21_R3", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_21_R4", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_21_R5", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_21_R6", cfgs: ["mojangMapped", "spigotMapped"]],
+ [ver: "v1_21_R7", cfgs: ["mojangMapped", "spigotMapped"]],
+ ]
+
+ nmsModules.each { m ->
+ m.cfgs.each { cfg ->
+ implementation(project(
+ path: ":orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-${m.ver}",
+ configuration: cfg
+ ))
+ }
+ }
+
+ implementation(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v26_1"))
+}
+
+tasks.named("jar", Jar) {
+ manifest {
+ attributes(
+ 'paperweight-mappings-namespace': 'mojang'
+ )
+ }
+}
+
+tasks.named('shadowJar', ShadowJar) {
+ archiveClassifier = ''
+ relocate 'org.bstats', 'net.imprex.shaded.org.bstats'
+}
+
+tasks.processResources {
+ filesMatching("plugin.yml") {
+ expand(
+ name: rootProject.name,
+ version: project.version,
+ description: (rootProject.description ?: "")
+ )
+ }
+}
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-api-example/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-api-example/build.gradle
new file mode 100644
index 00000000..a26b2e6a
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-api-example/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-api"))
+ compileOnly(libs.folia)
+}
diff --git a/orebfuscator-api-example/src/main/java/net/imprex/api/example/Example.java b/orebfuscator-bukkit/orebfuscator-bukkit-api-example/src/main/java/net/imprex/api/example/Example.java
similarity index 93%
rename from orebfuscator-api-example/src/main/java/net/imprex/api/example/Example.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-api-example/src/main/java/net/imprex/api/example/Example.java
index 2a0a4502..8331e0a6 100644
--- a/orebfuscator-api-example/src/main/java/net/imprex/api/example/Example.java
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-api-example/src/main/java/net/imprex/api/example/Example.java
@@ -1,10 +1,9 @@
package net.imprex.api.example;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.logging.Logger;
-
+import net.imprex.orebfuscator.api.OrebfuscatorService;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
@@ -17,8 +16,6 @@
import org.bukkit.plugin.ServicesManager;
import org.bukkit.plugin.java.JavaPlugin;
-import net.imprex.orebfuscator.api.OrebfuscatorService;
-
public class Example extends JavaPlugin implements Listener {
private static final Logger LOGGER = Logger.getLogger("bukkit.orebfuscator-api-example");
@@ -44,13 +41,13 @@ public void onPlayerInteract(PlayerInteractEvent event) {
Block block = event.getClickedBlock();
if (item.getType() == Material.DIAMOND_PICKAXE) {
- List blocks = this.getBlocks(block, 2);
+ List blocks = this.getBlocks(block, (int) Math.floor(2 + Math.random() * 2));
blocks.forEach(b -> b.setType(Material.AIR));
this.orebfuscatorService.deobfuscate(blocks);
event.setCancelled(true);
} else if (item.getType() == Material.WOODEN_PICKAXE) {
block.setType(Material.AIR);
- this.orebfuscatorService.deobfuscate(Arrays.asList(block));
+ this.orebfuscatorService.deobfuscate(List.of(block));
event.setCancelled(true);
}
}
@@ -74,4 +71,4 @@ private List getBlocks(Block origin, int size) {
return blocks;
}
-}
+}
\ No newline at end of file
diff --git a/orebfuscator-api-example/src/main/resources/plugin.yml b/orebfuscator-bukkit/orebfuscator-bukkit-api-example/src/main/resources/plugin.yml
similarity index 74%
rename from orebfuscator-api-example/src/main/resources/plugin.yml
rename to orebfuscator-bukkit/orebfuscator-bukkit-api-example/src/main/resources/plugin.yml
index 66624985..ebb83d16 100644
--- a/orebfuscator-api-example/src/main/resources/plugin.yml
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-api-example/src/main/resources/plugin.yml
@@ -1,8 +1,8 @@
api-version: 1.21
folia-supported: true
-name: ${project.name}
-version: ${project.version}
+name: orebfuscator-bukkit-api-example
+version: ${version}
main: net.imprex.api.example.Example
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-api/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-api/build.gradle
new file mode 100644
index 00000000..3f0e665c
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-api/build.gradle
@@ -0,0 +1,3 @@
+dependencies {
+ compileOnly(libs.spigot)
+}
diff --git a/orebfuscator-api/src/main/java/net/imprex/orebfuscator/api/OrebfuscatorService.java b/orebfuscator-bukkit/orebfuscator-bukkit-api/src/main/java/net/imprex/orebfuscator/api/OrebfuscatorService.java
similarity index 100%
rename from orebfuscator-api/src/main/java/net/imprex/orebfuscator/api/OrebfuscatorService.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-api/src/main/java/net/imprex/orebfuscator/api/OrebfuscatorService.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/build.gradle
new file mode 100644
index 00000000..41d36c1c
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+ compileOnly(libs.spigot)
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+}
\ No newline at end of file
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-folia/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-folia/build.gradle
new file mode 100644
index 00000000..fd87b781
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-folia/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+ compileOnly(libs.folia)
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility"))
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-paper"))
+}
\ No newline at end of file
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaCompatibilityLayer.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaCompatibilityLayer.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaCompatibilityLayer.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaCompatibilityLayer.java
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaScheduler.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaScheduler.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaScheduler.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-folia/src/main/java/net/imprex/orebfuscator/compatibility/folia/FoliaScheduler.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-paper/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-paper/build.gradle
new file mode 100644
index 00000000..ac317910
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-paper/build.gradle
@@ -0,0 +1,6 @@
+dependencies {
+ compileOnly(libs.paper)
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility"))
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-spigot"))
+}
\ No newline at end of file
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-paper/src/main/java/net/imprex/orebfuscator/compatibility/paper/PaperCompatibilityLayer.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-paper/src/main/java/net/imprex/orebfuscator/compatibility/paper/PaperCompatibilityLayer.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-paper/src/main/java/net/imprex/orebfuscator/compatibility/paper/PaperCompatibilityLayer.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-paper/src/main/java/net/imprex/orebfuscator/compatibility/paper/PaperCompatibilityLayer.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-spigot/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-spigot/build.gradle
new file mode 100644
index 00000000..a9e5982b
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-spigot/build.gradle
@@ -0,0 +1,5 @@
+dependencies {
+ compileOnly(libs.spigot)
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-compatibility"))
+}
\ No newline at end of file
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-bukkit/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotCompatibilityLayer.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-spigot/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotCompatibilityLayer.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-bukkit/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotCompatibilityLayer.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-spigot/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotCompatibilityLayer.java
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-bukkit/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotScheduler.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-spigot/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotScheduler.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-bukkit/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotScheduler.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/orebfuscator-bukkit-compatibility-spigot/src/main/java/net/imprex/orebfuscator/compatibility/spigot/SpigotScheduler.java
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-api/src/main/java/net/imprex/orebfuscator/OrebfuscatorCompatibility.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/src/main/java/net/imprex/orebfuscator/OrebfuscatorCompatibility.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-api/src/main/java/net/imprex/orebfuscator/OrebfuscatorCompatibility.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/src/main/java/net/imprex/orebfuscator/OrebfuscatorCompatibility.java
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-api/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityLayer.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityLayer.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-api/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityLayer.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityLayer.java
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-api/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityScheduler.java b/orebfuscator-bukkit/orebfuscator-bukkit-compatibility/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityScheduler.java
similarity index 100%
rename from orebfuscator-compatibility/orebfuscator-compatibility-api/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityScheduler.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-compatibility/src/main/java/net/imprex/orebfuscator/compatibility/CompatibilityScheduler.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/build.gradle
new file mode 100644
index 00000000..2015d5b8
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/build.gradle
@@ -0,0 +1,4 @@
+dependencies {
+ compileOnly(libs.spigot)
+ api(project(path: ":orebfuscator-core", configuration: "shaded"))
+}
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle
new file mode 100644
index 00000000..52fb9adc
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle
@@ -0,0 +1,100 @@
+/*
+ * This code is adapted from the Shopkeepers:
+ * https://github.com/Shopkeepers/Shopkeepers/blob/master/modules/shared/nmsModule.gradle
+ * Copyright (C) 2014-2026 Shopkeepers (original authors and contributors)
+ * Licensed under the GNU General Public License v3.0 (GPLv3)
+ */
+
+apply plugin: "com.gradleup.shadow"
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/specialSource.gradle")
+
+if (!project.hasProperty("nmsVersion")) {
+ throw new GradleException("Property 'nmsVersion' must be defined before applying this script.")
+}
+
+if (!project.hasProperty("javaVersion")) {
+ ext.javaVersion = 17
+}
+
+def resolvedJavaVersion = project.property("javaVersion").toString().toInteger()
+
+dependencies {
+ compileOnly(libs.protocollib)
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+ compileOnly("org.spigotmc:spigot:${nmsVersion}:remapped-mojang")
+}
+
+java {
+ toolchain.languageVersion = JavaLanguageVersion.of(resolvedJavaVersion)
+}
+
+tasks.withType(JavaCompile).configureEach {
+ options.release = 17
+}
+
+configurations.named("compileClasspath") {
+ attributes {
+ attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, resolvedJavaVersion)
+ }
+}
+
+def nmsPackageToken = { ->
+ def m = (project.name =~ /(v\d+_\d+_R\d+)/)
+ if (m.find()) return m.group(1)
+ throw new GradleException("Could not determine NMS package token (e.g. v1_20_R2) for ${project.path}.")
+}.call()
+
+tasks.named("shadowJar").configure {
+ archiveClassifier.set("mojang-mapped")
+ relocate(
+ "net.imprex.orebfuscator.nms.${nmsPackageToken}",
+ "net.imprex.orebfuscator.nms.${nmsPackageToken}_mojang"
+ )
+}
+
+tasks.register("remappedJar", Jar) {
+ dependsOn jar
+ def inputJar = jar.archiveFile
+ inputs.file(inputJar)
+
+ archiveClassifier.set("spigot-mapped")
+
+ doLast {
+ def inputFile = inputJar.get().asFile
+ def intermediateFile = new File(temporaryDir, inputFile.name.replace(".jar", "-obf.jar"))
+ def outputFile = outputs.files.singleFile
+ remapMojangToSpigot(inputFile, intermediateFile, outputFile, nmsVersion)
+ }
+}
+
+def bundlingAttr = Attribute.of("dev.imprex.mapping", String)
+
+configurations {
+ create("mojangMapped") {
+ canBeConsumed = true
+ canBeResolved = false
+ attributes {
+ attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
+ attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
+ attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements, LibraryElements.JAR))
+ attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
+ attribute(bundlingAttr, "mojang-mapped")
+ }
+ }
+ create("spigotMapped") {
+ canBeConsumed = true
+ canBeResolved = false
+ attributes {
+ attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category, Category.LIBRARY))
+ attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME))
+ attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, objects.named(LibraryElements, LibraryElements.JAR))
+ attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 17)
+ attribute(bundlingAttr, "spigot-mapped")
+ }
+ }
+}
+
+artifacts {
+ mojangMapped tasks.named("shadowJar").map { it.archiveFile }
+ spigotMapped tasks.named("remappedJar").map { it.archiveFile }
+}
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/build.gradle
new file mode 100644
index 00000000..1bac30b4
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/build.gradle
@@ -0,0 +1,5 @@
+dependencies {
+ compileOnly(libs.protocollib)
+ compileOnly("org.spigotmc:spigot:1.16.5-R0.1-SNAPSHOT")
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+}
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_16_R3/src/main/java/net/imprex/orebfuscator/nms/v1_16_R3/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/build.gradle
new file mode 100644
index 00000000..bc532d56
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.17.1-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_17_R1/src/main/java/net/imprex/orebfuscator/nms/v1_17_R1/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/build.gradle
new file mode 100644
index 00000000..94840ec7
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.18.1-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R1/src/main/java/net/imprex/orebfuscator/nms/v1_18_R1/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/build.gradle
new file mode 100644
index 00000000..2d707ac5
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.18.2-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_18_R2/src/main/java/net/imprex/orebfuscator/nms/v1_18_R2/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/build.gradle
new file mode 100644
index 00000000..b3281386
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.19.2-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R1/src/main/java/net/imprex/orebfuscator/nms/v1_19_R1/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/build.gradle
new file mode 100644
index 00000000..e2b8be4b
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.19.3-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R2/src/main/java/net/imprex/orebfuscator/nms/v1_19_R2/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/build.gradle
new file mode 100644
index 00000000..eaaa9266
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.19.4-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_19_R3/src/main/java/net/imprex/orebfuscator/nms/v1_19_R3/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/build.gradle
new file mode 100644
index 00000000..fc9a72cb
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.20.1-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R1/src/main/java/net/imprex/orebfuscator/nms/v1_20_R1/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/build.gradle
new file mode 100644
index 00000000..84631a1c
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/build.gradle
@@ -0,0 +1,5 @@
+ext {
+ nmsVersion = "1.20.2-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R2/src/main/java/net/imprex/orebfuscator/nms/v1_20_R2/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/build.gradle
new file mode 100644
index 00000000..bcbb2069
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.20.4-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R3/src/main/java/net/imprex/orebfuscator/nms/v1_20_R3/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/build.gradle
new file mode 100644
index 00000000..576fcfad
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.20.6-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_20_R4/src/main/java/net/imprex/orebfuscator/nms/v1_20_R4/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/build.gradle
new file mode 100644
index 00000000..6341b2fd
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.21.1-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R1/src/main/java/net/imprex/orebfuscator/nms/v1_21_R1/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/build.gradle
new file mode 100644
index 00000000..6b020d8a
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.21.3-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R2/src/main/java/net/imprex/orebfuscator/nms/v1_21_R2/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/build.gradle
new file mode 100644
index 00000000..c3376626
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.21.4-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R3/src/main/java/net/imprex/orebfuscator/nms/v1_21_R3/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/build.gradle
new file mode 100644
index 00000000..80a68e2c
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.21.5-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R4/src/main/java/net/imprex/orebfuscator/nms/v1_21_R4/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/build.gradle
new file mode 100644
index 00000000..d7ef04db
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.21.8-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R5/src/main/java/net/imprex/orebfuscator/nms/v1_21_R5/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/build.gradle
new file mode 100644
index 00000000..f929d02c
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.21.10-R0.1-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R6/src/main/java/net/imprex/orebfuscator/nms/v1_21_R6/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/build.gradle
new file mode 100644
index 00000000..f5deffd4
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/build.gradle
@@ -0,0 +1,6 @@
+ext {
+ javaVersion = 21
+ nmsVersion = "1.21.11-R0.2-SNAPSHOT"
+}
+
+apply from: rootProject.file("orebfuscator-bukkit/orebfuscator-bukkit-nms/nms.gradle")
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v1_21_R7/src/main/java/net/imprex/orebfuscator/nms/v1_21_R7/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/build.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/build.gradle
new file mode 100644
index 00000000..73d952d8
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/build.gradle
@@ -0,0 +1,19 @@
+dependencies {
+ compileOnly(libs.protocollib)
+ compileOnly(project(":orebfuscator-bukkit:orebfuscator-bukkit-nms"))
+ compileOnly("org.spigotmc:spigot:26.1.1-R0.1-SNAPSHOT")
+}
+
+java {
+ toolchain.languageVersion = JavaLanguageVersion.of(25)
+}
+
+tasks.withType(JavaCompile).configureEach {
+ options.release = 17
+}
+
+configurations.named("compileClasspath") {
+ attributes {
+ attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 25)
+ }
+}
diff --git a/orebfuscator-nms/orebfuscator-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/DefaultChunkAccessor.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/DefaultChunkAccessor.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/DefaultChunkAccessor.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/DefaultChunkAccessor.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/RegionFileCache.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/RegionFileCache.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/RegionFileCache.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/orebfuscator-bukkit-nms-v26_1/src/main/java/net/imprex/orebfuscator/nms/v26_1/RegionFileCache.java
diff --git a/orebfuscator-bukkit/orebfuscator-bukkit-nms/specialSource.gradle b/orebfuscator-bukkit/orebfuscator-bukkit-nms/specialSource.gradle
new file mode 100644
index 00000000..d0e893ae
--- /dev/null
+++ b/orebfuscator-bukkit/orebfuscator-bukkit-nms/specialSource.gradle
@@ -0,0 +1,65 @@
+/*
+ * This code is adapted from the Shopkeepers:
+ * https://github.com/Shopkeepers/Shopkeepers/blob/master/modules/shared/specialSource.gradle
+ * Copyright (C) 2014-2026 Shopkeepers (original authors and contributors)
+ * Licensed under the GNU General Public License v3.0 (GPLv3)
+ */
+
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+}
+
+def specialSourceConfig = buildscript.configurations.detachedConfiguration(
+ buildscript.dependencies.create("net.md-5:SpecialSource:1.11.5:shaded")
+)
+
+// Spigot server code remapping: https://www.spigotmc.org/threads/spigot-bungeecord-1-17-1-17-1.510208/
+// These dependencies and mappings are installed into the local Maven repository when BuildTools builds the Spigot dependencies.
+def m2Repo = new File(repositories.mavenLocal().url.path)
+def remappedMojang = new File(m2Repo, "org/spigotmc/spigot/{nmsVersion}/spigot-{nmsVersion}-remapped-mojang.jar").path
+def remappedObf = new File(m2Repo, "org/spigotmc/spigot/{nmsVersion}/spigot-{nmsVersion}-remapped-obf.jar").path
+def mojangMappings = new File(m2Repo, "org/spigotmc/minecraft-server/{nmsVersion}/minecraft-server-{nmsVersion}-maps-mojang.txt").path
+def spigotMappings = new File(m2Repo, "org/spigotmc/minecraft-server/{nmsVersion}/minecraft-server-{nmsVersion}-maps-spigot.csrg").path
+
+def specialSource = specialSourceConfig.incoming.artifactView {
+ componentFilter {
+ it.group == "net.md-5" && it.module == "SpecialSource"
+ }
+}.files.first().path
+
+// Converts from Mojang"s mappings to Minecraft"s obfuscated mappings.
+ext.remapMojangToObfuscated = { inputFile, outputFile, nmsVersion ->
+ def classpathSeparator = System.properties["path.separator"]
+ providers.exec {
+ commandLine "java",
+ "-cp", "${specialSource}${classpathSeparator}${remappedMojang}".replace("{nmsVersion}", nmsVersion),
+ "net.md_5.specialsource.SpecialSource",
+ "--live",
+ "-i", inputFile.path,
+ "-o", outputFile.path,
+ "-m", mojangMappings.replace("{nmsVersion}", nmsVersion),
+ "--reverse"
+ }.result.get() // Trigger
+}
+
+// Converts from Minecraft"s obfuscated mappings to Spigot"s mappings.
+ext.remapObfuscatedToSpigot = { inputFile, outputFile, nmsVersion ->
+ def classpathSeparator = System.properties["path.separator"]
+ providers.exec {
+ commandLine "java",
+ "-cp", "${specialSource}${classpathSeparator}${remappedObf}".replace("{nmsVersion}", nmsVersion),
+ "net.md_5.specialsource.SpecialSource",
+ "--live",
+ "-i", inputFile.path,
+ "-o", outputFile.path,
+ "-m", spigotMappings.replace("{nmsVersion}", nmsVersion)
+ }.result.get() // Trigger
+}
+
+// Converts from Mojang"s mappings to Spigot"s mappings.
+ext.remapMojangToSpigot = { inputFile, intermediateFile, outputFile, nmsVersion ->
+ remapMojangToObfuscated(inputFile, intermediateFile, nmsVersion)
+ remapObfuscatedToSpigot(intermediateFile, outputFile, nmsVersion)
+}
diff --git a/orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/OrebfuscatorNms.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/OrebfuscatorNms.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/OrebfuscatorNms.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/OrebfuscatorNms.java
diff --git a/orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/nms/AbstractNmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/nms/AbstractNmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/nms/AbstractNmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/nms/AbstractNmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/nms/NmsManager.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/nms/NmsManager.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/nms/NmsManager.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/nms/NmsManager.java
diff --git a/orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/util/MinecraftVersion.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/util/MinecraftVersion.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/util/MinecraftVersion.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/util/MinecraftVersion.java
diff --git a/orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/util/ServerVersion.java b/orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/util/ServerVersion.java
similarity index 100%
rename from orebfuscator-nms/orebfuscator-nms-api/src/main/java/net/imprex/orebfuscator/util/ServerVersion.java
rename to orebfuscator-bukkit/orebfuscator-bukkit-nms/src/main/java/net/imprex/orebfuscator/util/ServerVersion.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/DefaultOrebfuscatorService.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/DefaultOrebfuscatorService.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/DefaultOrebfuscatorService.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/DefaultOrebfuscatorService.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/MetricsSystem.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/MetricsSystem.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/MetricsSystem.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/MetricsSystem.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/Orebfuscator.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/Orebfuscator.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/Orebfuscator.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/Orebfuscator.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/OrebfuscatorCommand.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/OrebfuscatorCommand.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/OrebfuscatorCommand.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/OrebfuscatorCommand.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitChunkPacketAccessor.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitChunkPacketAccessor.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitChunkPacketAccessor.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitChunkPacketAccessor.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitLoggerAccessor.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitLoggerAccessor.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitLoggerAccessor.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitLoggerAccessor.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessor.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessor.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessor.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessor.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessorManager.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessorManager.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessorManager.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitPlayerAccessorManager.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessor.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessor.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessor.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessor.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessorManager.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessorManager.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessorManager.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/iterop/BukkitWorldAccessorManager.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/DeobfuscationListener.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/DeobfuscationListener.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/DeobfuscationListener.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/DeobfuscationListener.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationAsyncListener.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationAsyncListener.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationAsyncListener.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationAsyncListener.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSyncListener.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSyncListener.java
similarity index 99%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSyncListener.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSyncListener.java
index 825686d6..a7c64779 100644
--- a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSyncListener.java
+++ b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSyncListener.java
@@ -24,6 +24,7 @@
@NullMarked
public class ObfuscationSyncListener extends PacketAdapter {
+ @SuppressWarnings("deprecation")
public static final List PACKET_TYPES_RESPAWN = Stream.of(
// 1.16.5
PacketType.Play.Server.RESPAWN,
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSystem.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSystem.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSystem.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/ObfuscationSystem.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/PendingChunkBatch.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/PendingChunkBatch.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/obfuscation/PendingChunkBatch.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/obfuscation/PendingChunkBatch.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/proximity/ProximityPacketListener.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/proximity/ProximityPacketListener.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/proximity/ProximityPacketListener.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/proximity/ProximityPacketListener.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/PermissionUtil.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/util/PermissionUtil.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/PermissionUtil.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/util/PermissionUtil.java
diff --git a/orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/WrappedClientboundLevelChunkPacketData.java b/orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/util/WrappedClientboundLevelChunkPacketData.java
similarity index 100%
rename from orebfuscator-plugin/src/main/java/net/imprex/orebfuscator/util/WrappedClientboundLevelChunkPacketData.java
rename to orebfuscator-bukkit/src/main/java/net/imprex/orebfuscator/util/WrappedClientboundLevelChunkPacketData.java
diff --git a/orebfuscator-plugin/src/main/resources/plugin.yml b/orebfuscator-bukkit/src/main/resources/plugin.yml
similarity index 88%
rename from orebfuscator-plugin/src/main/resources/plugin.yml
rename to orebfuscator-bukkit/src/main/resources/plugin.yml
index 8d21b340..d4272bc2 100644
--- a/orebfuscator-plugin/src/main/resources/plugin.yml
+++ b/orebfuscator-bukkit/src/main/resources/plugin.yml
@@ -1,9 +1,9 @@
api-version: 1.16
folia-supported: true
-name: ${project.parent.name}
-version: ${project.version}
-description: '${project.parent.description}'
+name: ${name}
+version: ${version}
+description: '${description}'
author: Ingrim4
authors: [NgLoader, lishid, SydMontague, ProgrammerDan, Aleksey-Terzi]
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-api/pom.xml b/orebfuscator-compatibility/orebfuscator-compatibility-api/pom.xml
deleted file mode 100644
index ba3671b0..00000000
--- a/orebfuscator-compatibility/orebfuscator-compatibility-api/pom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-compatibility
- ${revision}
-
-
- orebfuscator-compatibility-api
- jar
-
-
-
- org.spigotmc
- spigot-api
- ${dependency.bukkit.version}
- provided
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- compile
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-bukkit/pom.xml b/orebfuscator-compatibility/orebfuscator-compatibility-bukkit/pom.xml
deleted file mode 100644
index 0b0b5746..00000000
--- a/orebfuscator-compatibility/orebfuscator-compatibility-bukkit/pom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-compatibility
- ${revision}
-
-
- orebfuscator-compatibility-bukkit
- jar
-
-
-
- net.imprex
- orebfuscator-compatibility-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot-api
- ${dependency.bukkit.version}
- provided
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-folia/pom.xml b/orebfuscator-compatibility/orebfuscator-compatibility-folia/pom.xml
deleted file mode 100644
index 123b4d4e..00000000
--- a/orebfuscator-compatibility/orebfuscator-compatibility-folia/pom.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-compatibility
- ${revision}
-
-
- orebfuscator-compatibility-folia
- jar
-
-
-
- net.imprex
- orebfuscator-compatibility-api
- ${revision}
- provided
-
-
- net.imprex
- orebfuscator-compatibility-paper
- ${revision}
- provided
-
-
- dev.folia
- folia-api
- ${dependency.folia.version}
- provided
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-compatibility/orebfuscator-compatibility-paper/pom.xml b/orebfuscator-compatibility/orebfuscator-compatibility-paper/pom.xml
deleted file mode 100644
index 98cf6f51..00000000
--- a/orebfuscator-compatibility/orebfuscator-compatibility-paper/pom.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-compatibility
- ${revision}
-
-
- orebfuscator-compatibility-paper
- jar
-
-
-
- net.imprex
- orebfuscator-compatibility-api
- ${revision}
- provided
-
-
- net.imprex
- orebfuscator-compatibility-bukkit
- ${revision}
- provided
-
-
- io.papermc.paper
- paper-api
- ${dependency.paper.version}
- provided
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-compatibility/pom.xml b/orebfuscator-compatibility/pom.xml
deleted file mode 100644
index 9f2d263b..00000000
--- a/orebfuscator-compatibility/pom.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator
- ${revision}
-
-
- orebfuscator-compatibility
- pom
-
-
- orebfuscator-compatibility-api
- orebfuscator-compatibility-bukkit
- orebfuscator-compatibility-folia
- orebfuscator-compatibility-paper
-
-
\ No newline at end of file
diff --git a/orebfuscator-core/build.gradle b/orebfuscator-core/build.gradle
new file mode 100644
index 00000000..928ea442
--- /dev/null
+++ b/orebfuscator-core/build.gradle
@@ -0,0 +1,35 @@
+import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
+
+plugins {
+ alias(libs.plugins.shadow)
+}
+
+dependencies {
+ implementation(platform(libs.netty.bom))
+ implementation(libs.netty.buffer)
+ implementation(libs.guava)
+ implementation(libs.gson)
+ implementation(libs.snakeyaml)
+ implementation(libs.joml)
+ implementation(libs.lz4)
+}
+
+configurations {
+ shaded
+}
+
+artifacts {
+ shaded(tasks.named("shadowJar"))
+}
+
+tasks.named('shadowJar', ShadowJar) {
+ enableAutoRelocation = true
+ relocationPrefix = "dev.imprex.shaded"
+
+ minimize {
+ exclude { dep ->
+ dep.moduleGroup == "net.imprex" || dep.moduleGroup == "dev.imprex"
+ }
+ exclude(dependency("at.yawk.lz4:lz4-java:.*"))
+ }
+}
diff --git a/orebfuscator-core/pom.xml b/orebfuscator-core/pom.xml
deleted file mode 100644
index a8d6a708..00000000
--- a/orebfuscator-core/pom.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator
- ${revision}
-
-
- dev.imprex.orebfuscator
- orebfuscator-core
- jar
-
-
-
-
- io.netty
- netty-buffer
- ${dependency.netty.version}
- provided
-
-
- io.netty
- netty-transport
- ${dependency.netty.version}
- provided
-
-
-
-
- com.google.guava
- guava
- ${dependency.guava.version}
- compile
- true
-
-
- com.google.code.gson
- gson
- ${dependency.gson.version}
- compile
- true
-
-
- org.yaml
- snakeyaml
- ${dependency.snakeyaml.version}
- compile
- true
-
-
- org.joml
- joml
- ${dependency.joml.version}
- compile
- true
-
-
- at.yawk.lz4
- lz4-java
- ${dependency.lz4.version}
- compile
- true
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
-
-
- *:lz4-java
-
- **
-
-
-
-
-
- com.google
- dev.imprex.shaded.com.google
-
-
- net.jpountz
- dev.imprex.shaded.net.jpountz
-
-
- org.joml
- dev.imprex.shaded.org.joml
-
-
- org.yaml.snakeyaml
- dev.imprex.shaded.org.yaml.snakeyaml
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-api/pom.xml b/orebfuscator-nms/orebfuscator-nms-api/pom.xml
deleted file mode 100644
index efdcd2fb..00000000
--- a/orebfuscator-nms/orebfuscator-nms-api/pom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-api
- jar
-
-
-
- org.spigotmc
- spigot-api
- ${dependency.bukkit.version}
- provided
-
-
- dev.imprex.orebfuscator
- orebfuscator-core
- ${revision}
- compile
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_16_R3/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_16_R3/pom.xml
deleted file mode 100644
index 49c6c5e1..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_16_R3/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_16_R3
- jar
-
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- net.dmulloy2
- ProtocolLib
- ${dependency.protocollib.version}
- provided
-
-
- org.spigotmc
- spigot
- 1.16.5-R0.1-SNAPSHOT
- provided
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_17_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_17_R1/pom.xml
deleted file mode 100644
index fac01d20..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_17_R1/pom.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_17_R1
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- net.dmulloy2
- ProtocolLib
- ${dependency.protocollib.version}
- provided
-
-
- org.spigotmc
- spigot
- 1.17.1-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.17.1-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.17.1-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.17.1-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.17.1-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_18_R1/pom.xml
deleted file mode 100644
index bf640fc4..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_18_R1/pom.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_18_R1
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- net.dmulloy2
- ProtocolLib
- ${dependency.protocollib.version}
- provided
-
-
- org.spigotmc
- spigot
- 1.18.1-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.18.1-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.18.1-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.18.1-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.18.1-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_18_R2/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_18_R2/pom.xml
deleted file mode 100644
index 4b700546..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_18_R2/pom.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_18_R2
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- net.dmulloy2
- ProtocolLib
- ${dependency.protocollib.version}
- provided
-
-
- org.spigotmc
- spigot
- 1.18.2-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.18.2-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.18.2-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.18.2-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.18.2-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_19_R1/pom.xml
deleted file mode 100644
index bdfd6516..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_19_R1/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_19_R1
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.19.2-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_19_R1
- net.imprex.orebfuscator.nms.v1_19_R1_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.19.2-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.19.2-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.19.2-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.19.2-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R2/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_19_R2/pom.xml
deleted file mode 100644
index ceb5e96c..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_19_R2/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_19_R2
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.19.3-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_19_R2
- net.imprex.orebfuscator.nms.v1_19_R2_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.19.3-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.19.3-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.19.3-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.19.3-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_19_R3/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_19_R3/pom.xml
deleted file mode 100644
index c5995a3b..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_19_R3/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_19_R3
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.19.4-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_19_R3
- net.imprex.orebfuscator.nms.v1_19_R3_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.19.4-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.19.4-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.19.4-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.19.4-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_20_R1/pom.xml
deleted file mode 100644
index 566e02e7..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_20_R1/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_20_R1
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.20.1-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_20_R1
- net.imprex.orebfuscator.nms.v1_20_R1_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.20.1-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.20.1-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.20.1-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.20.1-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R2/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_20_R2/pom.xml
deleted file mode 100644
index 20c47448..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_20_R2/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_20_R2
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.20.2-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_20_R2
- net.imprex.orebfuscator.nms.v1_20_R2_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.20.2-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.20.2-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.20.2-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.20.2-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R3/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_20_R3/pom.xml
deleted file mode 100644
index 28317631..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_20_R3/pom.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_20_R3
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.20.4-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_20_R3
- net.imprex.orebfuscator.nms.v1_20_R3_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.20.4-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.20.4-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.20.4-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.20.4-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_20_R4/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_20_R4/pom.xml
deleted file mode 100644
index 04f2d171..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_20_R4/pom.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_20_R4
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.20.6-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_20_R4
- net.imprex.orebfuscator.nms.v1_20_R4_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.20.6-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.20.6-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.20.6-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.20.6-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_21_R1/pom.xml
deleted file mode 100644
index 98581a52..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_21_R1/pom.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_21_R1
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.21.1-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_21_R1
- net.imprex.orebfuscator.nms.v1_21_R1_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.21.1-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.21.1-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.21.1-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.21.1-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R2/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_21_R2/pom.xml
deleted file mode 100644
index b086f040..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_21_R2/pom.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_21_R2
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.21.3-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_21_R2
- net.imprex.orebfuscator.nms.v1_21_R2_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.21.3-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.21.3-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.21.3-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.21.3-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R3/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_21_R3/pom.xml
deleted file mode 100644
index bd78548d..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_21_R3/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_21_R3
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.21.4-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_21_R3
-
- net.imprex.orebfuscator.nms.v1_21_R3_mojang
-
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
-
- org.spigotmc:minecraft-server:1.21.4-R0.1-SNAPSHOT:txt:maps-mojang
-
- true
-
- org.spigotmc:spigot:1.21.4-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
-
- org.spigotmc:minecraft-server:1.21.4-R0.1-SNAPSHOT:csrg:maps-spigot
-
-
- org.spigotmc:spigot:1.21.4-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R4/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_21_R4/pom.xml
deleted file mode 100644
index 6627da58..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_21_R4/pom.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_21_R4
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.21.5-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_21_R4
- net.imprex.orebfuscator.nms.v1_21_R4_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.21.5-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.21.5-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.21.5-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.21.5-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R5/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_21_R5/pom.xml
deleted file mode 100644
index f20d1e41..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_21_R5/pom.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_21_R5
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.21.8-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_21_R5
- net.imprex.orebfuscator.nms.v1_21_R5_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.21.8-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.21.8-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.21.8-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.21.8-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R6/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_21_R6/pom.xml
deleted file mode 100644
index 19686ccd..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_21_R6/pom.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_21_R6
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.21.10-R0.1-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_21_R6
- net.imprex.orebfuscator.nms.v1_21_R6_mojang
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
- org.spigotmc:minecraft-server:1.21.10-R0.1-SNAPSHOT:txt:maps-mojang
- true
- org.spigotmc:spigot:1.21.10-R0.1-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
- org.spigotmc:minecraft-server:1.21.10-R0.1-SNAPSHOT:csrg:maps-spigot
- org.spigotmc:spigot:1.21.10-R0.1-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v1_21_R7/pom.xml b/orebfuscator-nms/orebfuscator-nms-v1_21_R7/pom.xml
deleted file mode 100644
index 99b06ef0..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v1_21_R7/pom.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v1_21_R7
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 1.21.11-R0.2-SNAPSHOT
- remapped-mojang
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
- mojang-mapped
-
-
- net.imprex.orebfuscator.nms.v1_21_R7
-
- net.imprex.orebfuscator.nms.v1_21_R7_mojang
-
-
-
-
-
-
- net.md-5
- specialsource-maven-plugin
- ${plugin.specialsource.version}
-
-
- package
-
- remap
-
- remap-obf
-
-
- org.spigotmc:minecraft-server:1.21.11-R0.2-SNAPSHOT:txt:maps-mojang
-
- true
-
- org.spigotmc:spigot:1.21.11-R0.2-SNAPSHOT:jar:remapped-mojang
-
- true
- remapped-obf
-
-
-
- package
-
- remap
-
- remap-spigot
-
-
- ${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar
-
-
- org.spigotmc:minecraft-server:1.21.11-R0.2-SNAPSHOT:csrg:maps-spigot
-
-
- org.spigotmc:spigot:1.21.11-R0.2-SNAPSHOT:jar:remapped-obf
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/orebfuscator-nms-v26_1/pom.xml b/orebfuscator-nms/orebfuscator-nms-v26_1/pom.xml
deleted file mode 100644
index 4fcbf095..00000000
--- a/orebfuscator-nms/orebfuscator-nms-v26_1/pom.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- 4.0.0
-
-
- net.imprex
- orebfuscator-nms
- ${revision}
-
-
- orebfuscator-nms-v26_1
- jar
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- provided
-
-
- org.spigotmc
- spigot
- 26.1-R0.1-SNAPSHOT
- provided
-
-
-
-
\ No newline at end of file
diff --git a/orebfuscator-nms/pom.xml b/orebfuscator-nms/pom.xml
deleted file mode 100644
index 4929fd63..00000000
--- a/orebfuscator-nms/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator
- ${revision}
-
-
- orebfuscator-nms
- pom
-
-
- orebfuscator-nms-api
- orebfuscator-nms-v1_16_R3
- orebfuscator-nms-v1_17_R1
- orebfuscator-nms-v1_18_R1
- orebfuscator-nms-v1_18_R2
- orebfuscator-nms-v1_19_R1
- orebfuscator-nms-v1_19_R2
- orebfuscator-nms-v1_19_R3
- orebfuscator-nms-v1_20_R1
- orebfuscator-nms-v1_20_R2
- orebfuscator-nms-v1_20_R3
- orebfuscator-nms-v1_20_R4
- orebfuscator-nms-v1_21_R1
- orebfuscator-nms-v1_21_R2
- orebfuscator-nms-v1_21_R3
- orebfuscator-nms-v1_21_R4
- orebfuscator-nms-v1_21_R5
- orebfuscator-nms-v1_21_R6
- orebfuscator-nms-v1_21_R7
- orebfuscator-nms-v26_1
-
-
\ No newline at end of file
diff --git a/orebfuscator-plugin/pom.xml b/orebfuscator-plugin/pom.xml
deleted file mode 100644
index 2a7b2f93..00000000
--- a/orebfuscator-plugin/pom.xml
+++ /dev/null
@@ -1,352 +0,0 @@
-
- 4.0.0
-
-
- net.imprex
- orebfuscator
- ${revision}
-
-
- orebfuscator-plugin
- jar
-
-
-
-
- src/main/resources
- true
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
-
- true
-
-
- *:*
- false
-
- net/imprex/orebfuscator/**
- dev/imprex/shaded/**
-
-
-
-
-
- org.bstats
- net.imprex.shaded.org.bstats
-
-
- org.jetbrains
- net.imprex.shaded.org.jetbrains
-
-
- org.jspecify
- net.imprex.shaded.org.jspecify
-
-
-
-
-
-
-
-
-
-
- io.netty
- netty-buffer
- ${dependency.netty.version}
- provided
-
-
- org.spigotmc
- spigot-api
- ${dependency.bukkit.version}
- provided
-
-
- net.dmulloy2
- ProtocolLib
- ${dependency.protocollib.version}
- provided
-
-
-
-
- org.bstats
- bstats-bukkit
- ${dependency.bstats.version}
- compile
-
-
- org.jetbrains
- annotations
- ${dependency.jetannotations.version}
- compile
-
-
-
-
- net.imprex
- orebfuscator-api
- ${revision}
- compile
-
-
- dev.imprex.orebfuscator
- orebfuscator-core
- ${revision}
- compile
-
-
-
-
- net.imprex
- orebfuscator-compatibility-api
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-compatibility-bukkit
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-compatibility-folia
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-compatibility-paper
- ${revision}
- compile
-
-
-
-
- net.imprex
- orebfuscator-nms-api
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_16_R3
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_17_R1
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_18_R1
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_18_R2
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_19_R1
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_19_R1
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_19_R2
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_19_R2
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_19_R3
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_19_R3
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R1
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R1
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R2
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R2
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R3
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R3
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R4
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_20_R4
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R1
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R1
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R2
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R2
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R3
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R3
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R4
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R4
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R5
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R5
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R6
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R6
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R7
- ${revision}
- mojang-mapped
- compile
-
-
- net.imprex
- orebfuscator-nms-v1_21_R7
- ${revision}
- compile
-
-
- net.imprex
- orebfuscator-nms-v26_1
- ${revision}
- compile
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 32b519c4..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,232 +0,0 @@
-
- 4.0.0
-
- net.imprex
- orebfuscator
- ${revision}
- pom
-
- Orebfuscator
- https://github.com/Imprex-Development/Orebfuscator
- High-Performance Anti X-Ray
- 2020
-
-
- GitHub
- https://github.com/Imprex-Development/Orebfuscator/issues
-
-
-
- 5.0.0-b0
-
- 1.16.1-R0.1-SNAPSHOT
- 1.20.1-R0.1-SNAPSHOT
- 1.20.1-R0.1-SNAPSHOT
- 3.1.0
- 5.3.0
-
-
- 4.1.90.Final
- 33.5.0-jre
- 2.13.2
- 2.5
- 1.10.8
- 1.10.2
-
-
- 5.13.4
- 5.19.0
- 26.0.2
- 1.0.0
-
- 3.15.0
- 3.6.2
- 3.5.0
- 3.5.3
- 1.7.2
- 2.0.4
-
- UTF-8
-
-
-
-
- spigot-repo
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
-
-
- papermc
- https://repo.papermc.io/repository/maven-public/
-
-
-
-
- orebfuscator-api
- orebfuscator-api-example
- orebfuscator-core
- orebfuscator-compatibility
- orebfuscator-nms
- orebfuscator-plugin
-
-
-
-
- codemc
-
-
-
- nms-repo
- https://repo.codemc.io/repository/nms/
-
-
-
-
-
- codemc-releases
- https://repo.codemc.io/repository/maven-releases/
-
-
- codemc-snapshots
- https://repo.codemc.io/repository/maven-snapshots/
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- ${plugin.shade.version}
-
-
- package
-
- shade
-
-
-
-
-
-
- *:*
-
-
- META-INF/*.SF
- META-INF/*.DSA
- META-INF/*.RSA
-
-
- META-INF/MANIFEST.MF
- META-INF/LICENSE*
- META-INF/NOTICE*
- META-INF/maven/**
-
-
- module-info.class
- META-INF/versions/**/module-info.class
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- ${plugin.jar.version}
-
-
-
- mojang
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- ${plugin.sunfire.version}
-
- org.junit.jupiter:junit-jupiter
- false
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- ${plugin.compile.version}
-
- 17
-
-
-
- org.codehaus.mojo
- flatten-maven-plugin
- ${plugin.flatten.version}
-
-
- flatten
- package
-
- flatten
-
-
-
- flatten.clean
- clean
-
- clean
-
-
-
-
- true
- clean
-
-
-
-
-
-
-
-
- org.junit.jupiter
- junit-jupiter-engine
- ${dependency.junit.version}
- test
-
-
- org.mockito
- mockito-core
- ${dependency.mockito.version}
- test
-
-
-
- org.jetbrains
- annotations
- ${dependency.jetannotations.version}
- provided
-
-
- org.jspecify
- jspecify
- ${dependency.jspecify.version}
- compile
-
-
-
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 00000000..e625a060
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,41 @@
+pluginManagement {
+ repositories {
+ mavenCentral()
+ gradlePluginPortal()
+ maven {
+ name = "papermc"
+ url = "https://repo.papermc.io/repository/maven-public/"
+ }
+ }
+}
+
+rootProject.name = "orebfuscator"
+
+include "orebfuscator-core"
+include "orebfuscator-bukkit"
+include "orebfuscator-bukkit:orebfuscator-bukkit-api"
+include "orebfuscator-bukkit:orebfuscator-bukkit-api-example"
+include "orebfuscator-bukkit:orebfuscator-bukkit-compatibility"
+include "orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-spigot"
+include "orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-paper"
+include "orebfuscator-bukkit:orebfuscator-bukkit-compatibility:orebfuscator-bukkit-compatibility-folia"
+include "orebfuscator-bukkit:orebfuscator-bukkit-nms"
+include "orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_16_R3"
+include "orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_17_R1"
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_18_R1'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_18_R2'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_19_R1'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_19_R2'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_19_R3'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_20_R1'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_20_R2'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_20_R3'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_20_R4'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_21_R1'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_21_R2'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_21_R3'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_21_R4'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_21_R5'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_21_R6'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v1_21_R7'
+include 'orebfuscator-bukkit:orebfuscator-bukkit-nms:orebfuscator-bukkit-nms-v26_1'