diff --git a/.gitignore b/.gitignore
index cec61a97..d4414a71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -175,4 +175,8 @@ pip-log.txt
.DS_Store
# Log4J files
+logs/
+
+.gradle/
+build/
logs/
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 53ce18e4..55785c82 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,7 @@
language: java
jdk:
- oraclejdk8
-script: mvn clean test
-#before_install: cd ProtocolLib
+script: gradle clean compileJava compileTestJava test
install: true
notifications:
email:
diff --git a/Readme.md b/Readme.md
index 8470eb77..2214356c 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,169 +1,169 @@
-# ProtocolLib [![Travis Status](https://travis-ci.org/dmulloy2/ProtocolLib.svg?branch=master)](https://travis-ci.org/dmulloy2/ProtocolLib)
-
-Certain tasks are impossible to perform with the standard Bukkit API, and may require
-working with and even modify Minecraft directly. A common technique is to modify incoming
-and outgoing [packets](http://www.wiki.vg/Protocol), or inject custom packets into the
-stream. This is quite cumbersome to do, however, and most implementations will break
-as soon as a new version of Minecraft has been released, mostly due to obfuscation.
-
-Critically, different plugins that use this approach may _hook_ into the same classes,
-with unpredictable outcomes. More than often this causes plugins to crash, but it may also
-lead to more subtle bugs.
-
-Currently maintained by dmulloy2 on behalf of [Spigot](http://www.spigotmc.org/).
-
-### Resources
-
-* [Resource Page](http://www.spigotmc.org/resources/protocollib.1997/)
-* [Dev Builds](http://ci.dmulloy2.net/job/ProtocolLib)
-* [JavaDoc](http://ci.dmulloy2.net/job/ProtocolLib/javadoc)
-
-### Compilation
-
-ProtocolLib is built with Maven and requires Spigot and SpigotAPI, which can be found [here](http://www.spigotmc.org/wiki/buildtools/).
-
-### A new API
-
-__ProtocolLib__ attempts to solve this problem by providing a event API, much like Bukkit,
-that allows plugins to monitor, modify, or cancel packets sent and received. But, more importantly,
-the API also hides all the gritty, obfuscated classes with a simple index based read/write system.
-You no longer have to reference CraftBukkit!
-
-### Using ProtocolLib
-
-To use this library, first add ProtocolLib.jar to your Java build path. Then, add ProtocolLib
-as a dependency or soft dependency to your plugin.yml file like any other plugin:
-
-````yml
-depend: [ProtocolLib]
-````
-
-You can also add ProtocolLib as a Maven dependency:
-
-````xml
-
-
- dmulloy2-repo
- http://repo.dmulloy2.net/nexus/repository/public/
-
- ...
-
-
-
-
- com.comphenix.protocol
- ProtocolLib-API
- 4.4.0
-
-
-````
-
-Or use the maven dependency with gradle:
-
-```gradle
-repositories {
- maven { url "http://repo.dmulloy2.net/nexus/repository/public/" }
-}
-
-dependencies {
- compileOnly group: "com.comphenix.protocol", name: "ProtocolLib", version: "4.4.0";
-}
-```
-
-Then get a reference to ProtocolManager in onLoad() or onEnable() and you're good to go.
-
-````java
-private ProtocolManager protocolManager;
-
-public void onLoad() {
- protocolManager = ProtocolLibrary.getProtocolManager();
-}
-````
-
-To listen for packets sent by the server to a client, add a server-side listener:
-
-````java
-// Disable all sound effects
-protocolManager.addPacketListener(
- new PacketAdapter(this, ListenerPriority.NORMAL,
- PacketType.Play.Server.NAMED_SOUND_EFFECT) {
- @Override
- public void onPacketSending(PacketEvent event) {
- // Item packets (id: 0x29)
- if (event.getPacketType() ==
- PacketType.Play.Server.NAMED_SOUND_EFFECT) {
- event.setCancelled(true);
- }
- }
-});
-````
-
-It's also possible to read and modify the content of these packets. For instance, you can create a global
-censor by listening for Packet3Chat events:
-
-````java
-// Censor
-protocolManager.addPacketListener(new PacketAdapter(this,
- ListenerPriority.NORMAL,
- PacketType.Play.Client.CHAT) {
- @Override
- public void onPacketReceiving(PacketEvent event) {
- if (event.getPacketType() == PacketType.Play.Client.CHAT) {
- PacketContainer packet = event.getPacket();
- String message = packet.getStrings().read(0);
-
- if (message.contains("shit")
- || message.contains("damn")) {
- event.setCancelled(true);
- event.getPlayer().sendMessage("Bad manners!");
- }
- }
- }
-});
-````
-
-### Sending packets
-
-Normally, you might have to do something ugly like the following:
-
-````java
-Packet60Explosion fakeExplosion = new Packet60Explosion();
-
-fakeExplosion.a = player.getLocation().getX();
-fakeExplosion.b = player.getLocation().getY();
-fakeExplosion.c = player.getLocation().getZ();
-fakeExplosion.d = 3.0F;
-fakeExplosion.e = new ArrayList();
-
-((CraftPlayer) player).getHandle().netServerHandler.sendPacket(fakeExplosion);
-````
-
-But with ProtocolLib, you can turn that into something more manageable. Notice that
-you don't have to create an ArrayList with this version:
-
-````java
-
-PacketContainer fakeExplosion = new PacketContainer(PacketType.Play.Server.EXPLOSION);
-fakeExplosion.getDoubles().
- write(0, player.getLocation().getX()).
- write(1, player.getLocation().getY()).
- write(2, player.getLocation().getZ());
-fakeExplosion.getFloat().write(0, 3.0F);
-
-try {
- protocolManager.sendServerPacket(player, fakeExplosion);
-} catch (InvocationTargetException e) {
- throw new RuntimeException(
- "Cannot send packet " + fakeExplosion, e);
-}
-````
-
-### Compatibility
-
-One of the main goals of this project was to achieve maximum compatibility with CraftBukkit. And the end
-result is quite flexible. Aside from netty package changes, it should be resilient against future changes.
-It's likely that I won't have to update ProtocolLib for anything but bug fixes and new features.
-
-How is this possible? It all comes down to reflection in the end. Essentially, no name is hard coded -
-every field, method and class is deduced by looking at field types, package names or parameter
-types. It's remarkably consistent across different versions.
+# ProtocolLib [![Travis Status](https://travis-ci.org/dmulloy2/ProtocolLib.svg?branch=master)](https://travis-ci.org/dmulloy2/ProtocolLib)
+
+Certain tasks are impossible to perform with the standard Bukkit API, and may require
+working with and even modify Minecraft directly. A common technique is to modify incoming
+and outgoing [packets](http://www.wiki.vg/Protocol), or inject custom packets into the
+stream. This is quite cumbersome to do, however, and most implementations will break
+as soon as a new version of Minecraft has been released, mostly due to obfuscation.
+
+Critically, different plugins that use this approach may _hook_ into the same classes,
+with unpredictable outcomes. More than often this causes plugins to crash, but it may also
+lead to more subtle bugs.
+
+Currently maintained by dmulloy2 on behalf of [Spigot](http://www.spigotmc.org/).
+
+### Resources
+
+* [Resource Page](http://www.spigotmc.org/resources/protocollib.1997/)
+* [Dev Builds](http://ci.dmulloy2.net/job/ProtocolLib)
+* [JavaDoc](http://ci.dmulloy2.net/job/ProtocolLib/javadoc)
+
+### Compilation
+
+ProtocolLib is built with Maven and requires Spigot and SpigotAPI, which can be found [here](http://www.spigotmc.org/wiki/buildtools/).
+
+### A new API
+
+__ProtocolLib__ attempts to solve this problem by providing a event API, much like Bukkit,
+that allows plugins to monitor, modify, or cancel packets sent and received. But, more importantly,
+the API also hides all the gritty, obfuscated classes with a simple index based read/write system.
+You no longer have to reference CraftBukkit!
+
+### Using ProtocolLib
+
+To use this library, first add ProtocolLib.jar to your Java build path. Then, add ProtocolLib
+as a dependency or soft dependency to your plugin.yml file like any other plugin:
+
+````yml
+depend: [ProtocolLib]
+````
+
+You can also add ProtocolLib as a Maven dependency:
+
+````xml
+
+
+ dmulloy2-repo
+ http://repo.dmulloy2.net/nexus/repository/public/
+
+ ...
+
+
+
+
+ com.comphenix.protocol
+ ProtocolLib-API
+ 4.4.0
+
+
+````
+
+Or use the maven dependency with gradle:
+
+```gradle
+repositories {
+ maven { url "http://repo.dmulloy2.net/nexus/repository/public/" }
+}
+
+dependencies {
+ compileOnly group: "com.comphenix.protocol", name: "ProtocolLib", version: "4.4.0";
+}
+```
+
+Then get a reference to ProtocolManager in onLoad() or onEnable() and you're good to go.
+
+````java
+private ProtocolManager protocolManager;
+
+public void onLoad() {
+ protocolManager = ProtocolLibrary.getProtocolManager();
+}
+````
+
+To listen for packets sent by the server to a client, add a server-side listener:
+
+````java
+// Disable all sound effects
+protocolManager.addPacketListener(
+ new PacketAdapter(this, ListenerPriority.NORMAL,
+ PacketType.Play.Server.NAMED_SOUND_EFFECT) {
+ @Override
+ public void onPacketSending(PacketEvent event) {
+ // Item packets (id: 0x29)
+ if (event.getPacketType() ==
+ PacketType.Play.Server.NAMED_SOUND_EFFECT) {
+ event.setCancelled(true);
+ }
+ }
+});
+````
+
+It's also possible to read and modify the content of these packets. For instance, you can create a global
+censor by listening for Packet3Chat events:
+
+````java
+// Censor
+protocolManager.addPacketListener(new PacketAdapter(this,
+ ListenerPriority.NORMAL,
+ PacketType.Play.Client.CHAT) {
+ @Override
+ public void onPacketReceiving(PacketEvent event) {
+ if (event.getPacketType() == PacketType.Play.Client.CHAT) {
+ PacketContainer packet = event.getPacket();
+ String message = packet.getStrings().read(0);
+
+ if (message.contains("shit")
+ || message.contains("damn")) {
+ event.setCancelled(true);
+ event.getPlayer().sendMessage("Bad manners!");
+ }
+ }
+ }
+});
+````
+
+### Sending packets
+
+Normally, you might have to do something ugly like the following:
+
+````java
+Packet60Explosion fakeExplosion = new Packet60Explosion();
+
+fakeExplosion.a = player.getLocation().getX();
+fakeExplosion.b = player.getLocation().getY();
+fakeExplosion.c = player.getLocation().getZ();
+fakeExplosion.d = 3.0F;
+fakeExplosion.e = new ArrayList();
+
+((CraftPlayer) player).getHandle().netServerHandler.sendPacket(fakeExplosion);
+````
+
+But with ProtocolLib, you can turn that into something more manageable. Notice that
+you don't have to create an ArrayList with this version:
+
+````java
+
+PacketContainer fakeExplosion = new PacketContainer(PacketType.Play.Server.EXPLOSION);
+fakeExplosion.getDoubles().
+ write(0, player.getLocation().getX()).
+ write(1, player.getLocation().getY()).
+ write(2, player.getLocation().getZ());
+fakeExplosion.getFloat().write(0, 3.0F);
+
+try {
+ protocolManager.sendServerPacket(player, fakeExplosion);
+} catch (InvocationTargetException e) {
+ throw new RuntimeException(
+ "Cannot send packet " + fakeExplosion, e);
+}
+````
+
+### Compatibility
+
+One of the main goals of this project was to achieve maximum compatibility with CraftBukkit. And the end
+result is quite flexible. Aside from netty package changes, it should be resilient against future changes.
+It's likely that I won't have to update ProtocolLib for anything but bug fixes and new features.
+
+How is this possible? It all comes down to reflection in the end. Essentially, no name is hard coded -
+every field, method and class is deduced by looking at field types, package names or parameter
+types. It's remarkably consistent across different versions.
diff --git a/modules/TinyProtocol/pom.xml b/TinyProtocol/pom.xml
similarity index 100%
rename from modules/TinyProtocol/pom.xml
rename to TinyProtocol/pom.xml
diff --git a/modules/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/ExamplePlugin.java b/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/ExamplePlugin.java
similarity index 100%
rename from modules/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/ExamplePlugin.java
rename to TinyProtocol/src/main/java/com/comphenix/tinyprotocol/ExamplePlugin.java
diff --git a/modules/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/Reflection.java b/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/Reflection.java
similarity index 100%
rename from modules/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/Reflection.java
rename to TinyProtocol/src/main/java/com/comphenix/tinyprotocol/Reflection.java
diff --git a/modules/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java b/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
similarity index 100%
rename from modules/TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
rename to TinyProtocol/src/main/java/com/comphenix/tinyprotocol/TinyProtocol.java
diff --git a/modules/TinyProtocol/src/main/resources/plugin.yml b/TinyProtocol/src/main/resources/plugin.yml
similarity index 100%
rename from modules/TinyProtocol/src/main/resources/plugin.yml
rename to TinyProtocol/src/main/resources/plugin.yml
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 00000000..8121763e
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,74 @@
+import shadow.org.apache.tools.ant.filters.ReplaceTokens
+
+plugins {
+ id 'com.github.johnrengelman.shadow' version '2.0.4'
+ id 'maven-publish'
+ id 'java'
+}
+
+group 'com.comphenix.protocol'
+version '4.5.0-SNAPSHOT'
+
+sourceCompatibility = 1.8
+
+repositories {
+ mavenCentral()
+ jcenter()
+ maven { url 'http://repo.dmulloy2.net/nexus/repository/public/' }
+ maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' }
+}
+
+dependencies {
+ compile group: 'com.github.jengelman.gradle.plugins', name: 'shadow', version: '2.0.4'
+ compile group: 'io.netty', name: 'netty-all', version: '4.0.23.Final'
+ compile group: 'org.spigotmc', name: 'spigot-api', version: '1.13.1-R0.1-SNAPSHOT'
+ compile group: 'org.spigotmc', name: 'spigot', version: '1.13.1-R0.1-SNAPSHOT'
+ compile group: 'cglib', name: 'cglib-nodep', version: '3.2.5'
+ compile group: 'com.comphenix.executors', name: 'BukkitExecutors', version: '1.1-SNAPSHOT'
+ testCompile group: 'junit', name: 'junit', version: '4.12'
+ testCompile group: 'org.mockito', name: 'mockito-core', version: '2.21.0'
+ testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.7.4'
+ testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: '1.7.4'
+}
+
+shadowJar {
+ dependencies {
+ include(dependency('cglib:.*'))
+ include(dependency('com.comphenix.executors:.*'))
+ }
+ relocate 'net.sf.cglib', 'com.comphenix.net.sf.cglib'
+ archiveName = 'ProtocolLib.jar'
+}
+
+javadoc {
+ failOnError = false
+}
+
+processResources {
+ def fullVersion = version
+ if (System.getenv('BUILD_NUMBER')) {
+ fullVersion = version + '-' + System.getenv('BUILD_NUMBER')
+ }
+
+ with copySpec {
+ from 'src/main/resources'
+ filter(ReplaceTokens, tokens: ['fullVersion': fullVersion])
+ }
+}
+
+publishing {
+ publications {
+ mavenJava(MavenPublication) {
+ from components.java
+ afterEvaluate {
+ artifactId = 'ProtocolLib'
+ }
+ }
+ }
+ repositories {
+ maven {
+ url = version.endsWith('SNAPSHOT') ? 'http://repo.dmulloy2.net/nexus/repository/snapshots/' :
+ 'http://repo.dmulloy2.net/nexus/repository/releases/'
+ }
+ }
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..1948b907
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..62f3d20d
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Sep 14 19:43:24 EDT 2018
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-all.zip
diff --git a/gradlew b/gradlew
new file mode 100644
index 00000000..cccdd3d5
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$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=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# 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
+ ;;
+ 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" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..e95643d6
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@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 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=
+
+@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 init
+
+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 init
+
+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
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+: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 %CMD_LINE_ARGS%
+
+: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/modules/API/pom.xml b/modules/API/pom.xml
deleted file mode 100644
index 6fe71f47..00000000
--- a/modules/API/pom.xml
+++ /dev/null
@@ -1,193 +0,0 @@
-
- 4.0.0
- ProtocolLib-API
- ProtocolLib-API
- 4.4.0
-
- Provides read/write access to the Minecraft protocol.
- http://www.spigotmc.org/resources/protocollib.1997/
- jar
-
-
- com.comphenix.protocol
- ProtocolLib-Parent
- 4.4.0
- ../../
-
-
-
- UTF-8
-
- ${project.version}
-
-
-
- clean install
- src/main/java
-
-
- src/main/resources
- true
-
- **/*.java
-
-
-
-
-
-
- maven-compiler-plugin
- 3.7.0
-
- 1.8
- 1.8
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.1.0
-
-
-
- com.comphenix.protocol.Application
- ProtocolLib
- ${project.fullVersion}
- dmulloy2
-
-
- ProtocolLib
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.22.0
-
-
-
- projectVersion
- ${project.version}
-
-
-
-
-
-
-
-
-
- jenkins
-
-
- env.BUILD_NUMBER
-
-
-
- -b${env.BUILD_NUMBER}
- ${project.version}${project.build.number}
-
-
-
-
- release-sign-artifacts
-
-
- performRelease
- true
-
-
-
- ${project.version}
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.0.0
-
-
- attach-sources
-
- jar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.3
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
-
-
-
-
-
-
-
- scm:git:git://github.com/dmulloy2/ProtocolLib.git
- scm:git:git@github.com:dmulloy2/ProtocolLib.git
- https://github.com/dmulloy2/ProtocolLib
-
-
-
-
- GNU GENERAL PUBLIC LICENSE - Version 2, June 1991
- http://www.gnu.org/licenses/gpl-2.0.txt
- repo
-
-
-
-
-
- dmulloy2
- Dan Mulloy
- http://dmulloy2.net/
-
- developer
- maintainer
-
-
-
- aadnk
- Kristian S. Stangeland
- kr_stang@hotmail.com
- http://comphenix.net/
-
- former author
-
- 1
-
-
-
\ No newline at end of file
diff --git a/modules/ProtocolLib/pom.xml b/modules/ProtocolLib/pom.xml
deleted file mode 100644
index 62d7dc16..00000000
--- a/modules/ProtocolLib/pom.xml
+++ /dev/null
@@ -1,265 +0,0 @@
-
- 4.0.0
- ProtocolLib
- ProtocolLib
- 4.4.0
-
- Provides read/write access to the Minecraft protocol.
- http://www.spigotmc.org/resources/protocollib.1997/
- jar
-
-
- com.comphenix.protocol
- ProtocolLib-Parent
- 4.4.0
- ../../
-
-
-
- UTF-8
-
- ${project.version}
-
- 1.7.4
-
-
-
- clean install
- src/main/java
- src/test/java
-
-
- src/main/resources
- true
-
- **/*.java
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.1.1
-
-
- package
-
- shade
-
-
- false
- false
-
-
-
- net.sf
- com.comphenix.net.sf
-
-
-
-
-
- org.spigotmc:spigot
- org.spigotmc:spigot-api
- junit:junit
- io.netty:*
-
-
-
-
-
-
-
-
- maven-compiler-plugin
- 3.7.0
-
- 1.8
- 1.8
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.1.0
-
-
-
- com.comphenix.protocol.Application
- ProtocolLib
- ${project.fullVersion}
- dmulloy2
-
-
- ${project.name}
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.22.0
-
-
-
- projectVersion
- ${project.version}
-
-
-
-
-
-
-
-
-
- jenkins
-
-
- env.BUILD_NUMBER
-
-
-
- -b${env.BUILD_NUMBER}
- ${project.version}${project.build.number}
-
-
-
-
- release-sign-artifacts
-
-
- performRelease
- true
-
-
-
- ${project.version}
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.0.0
-
-
- attach-sources
-
- jar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.10.3
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
-
-
-
-
-
-
-
- scm:git:git://github.com/dmulloy2/ProtocolLib.git
- scm:git:git@github.com:dmulloy2/ProtocolLib.git
- https://github.com/dmulloy2/ProtocolLib
-
-
-
-
- GNU GENERAL PUBLIC LICENSE - Version 2, June 1991
- http://www.gnu.org/licenses/gpl-2.0.txt
- repo
-
-
-
-
-
- dmulloy2
- Dan Mulloy
- http://dmulloy2.net/
-
- developer
- maintainer
-
-
-
- aadnk
- Kristian S. Stangeland
- kr_stang@hotmail.com
- http://comphenix.net/
-
- former author
-
- 1
-
-
-
-
-
- com.comphenix.protocol
- ProtocolLib-API
- ${project.version}
- compile
-
-
-
-
- junit
- junit
- 4.12
- test
-
-
- org.mockito
- mockito-core
- 2.21.0
- test
-
-
- org.powermock
- powermock-module-junit4
- ${powermock.version}
- test
-
-
- org.powermock
- powermock-api-mockito2
- ${powermock.version}
- test
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index af28c475..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,129 +0,0 @@
-
- 4.0.0
- com.comphenix.protocol
- ProtocolLib-Parent
- 4.4.0
- ProtocolLib-Parent
-
-
- UTF-8
- 1.13.1-R0.1-SNAPSHOT
-
-
-
- modules/API
- modules/ProtocolLib
-
-
- Provides read/write access to the Minecraft protocol.
- http://www.spigotmc.org/resources/protocollib.1997/
- pom
- 2012
-
-
-
- dmulloy2-releases
- http://repo.dmulloy2.net/nexus/repository/releases/
-
-
- dmulloy2-snapshots
- http://repo.dmulloy2.net/nexus/repository/snapshots/
-
-
-
-
-
- dmulloy2-repo
- http://repo.dmulloy2.net/nexus/repository/public/
-
-
- spigot-repo
- https://hub.spigotmc.org/nexus/content/groups/public/
-
-
-
-
-
-
- io.netty
- netty-all
- 4.0.23.Final
- provided
-
-
- org.spigotmc
- spigot-api
- ${spigotVersion}
- provided
-
-
- org.spigotmc
- spigot
- ${spigotVersion}
- provided
-
-
- cglib
- cglib-nodep
- 3.2.5
- compile
-
-
- com.comphenix.executors
- BukkitExecutors
- 1.1-SNAPSHOT
- compile
-
-
-
-
- clean package install
- ${project.name}
- src/main/java
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.7.0
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 3.1.0
-
-
- maven-javadoc-plugin
- 3.0.1
-
- false
- ISO-8859-1
- ProtocolLib JavaDocs
- ProtocolLib JavaDocs
- Copyright © {inceptionYear}–{currentYear}
- Comphenix and dmulloy2. Licensed under the GNU GPL v2.
-
-
-
- install
-
- aggregate
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 00000000..a6a8fbfd
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,2 @@
+rootProject.name = 'ProtocolLib'
+
diff --git a/modules/API/src/main/java/com/comphenix/protocol/AsynchronousManager.java b/src/main/java/com/comphenix/protocol/AsynchronousManager.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/AsynchronousManager.java
rename to src/main/java/com/comphenix/protocol/AsynchronousManager.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/CleanupStaticMembers.java b/src/main/java/com/comphenix/protocol/CleanupStaticMembers.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/CleanupStaticMembers.java
rename to src/main/java/com/comphenix/protocol/CleanupStaticMembers.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandBase.java b/src/main/java/com/comphenix/protocol/CommandBase.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandBase.java
rename to src/main/java/com/comphenix/protocol/CommandBase.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandFilter.java b/src/main/java/com/comphenix/protocol/CommandFilter.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandFilter.java
rename to src/main/java/com/comphenix/protocol/CommandFilter.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandPacket.java b/src/main/java/com/comphenix/protocol/CommandPacket.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandPacket.java
rename to src/main/java/com/comphenix/protocol/CommandPacket.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandProtocol.java b/src/main/java/com/comphenix/protocol/CommandProtocol.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/CommandProtocol.java
rename to src/main/java/com/comphenix/protocol/CommandProtocol.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/MultipleLinesPrompt.java b/src/main/java/com/comphenix/protocol/MultipleLinesPrompt.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/MultipleLinesPrompt.java
rename to src/main/java/com/comphenix/protocol/MultipleLinesPrompt.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/PacketLogging.java b/src/main/java/com/comphenix/protocol/PacketLogging.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/PacketLogging.java
rename to src/main/java/com/comphenix/protocol/PacketLogging.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/PacketStream.java b/src/main/java/com/comphenix/protocol/PacketStream.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/PacketStream.java
rename to src/main/java/com/comphenix/protocol/PacketStream.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/PacketType.java b/src/main/java/com/comphenix/protocol/PacketType.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/PacketType.java
rename to src/main/java/com/comphenix/protocol/PacketType.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/PacketTypeEnum.java b/src/main/java/com/comphenix/protocol/PacketTypeEnum.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/PacketTypeEnum.java
rename to src/main/java/com/comphenix/protocol/PacketTypeEnum.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/PacketTypeLookup.java b/src/main/java/com/comphenix/protocol/PacketTypeLookup.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/PacketTypeLookup.java
rename to src/main/java/com/comphenix/protocol/PacketTypeLookup.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/PacketTypeParser.java b/src/main/java/com/comphenix/protocol/PacketTypeParser.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/PacketTypeParser.java
rename to src/main/java/com/comphenix/protocol/PacketTypeParser.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/Packets.java b/src/main/java/com/comphenix/protocol/Packets.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/Packets.java
rename to src/main/java/com/comphenix/protocol/Packets.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/ProtocolConfig.java b/src/main/java/com/comphenix/protocol/ProtocolConfig.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/ProtocolConfig.java
rename to src/main/java/com/comphenix/protocol/ProtocolConfig.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/ProtocolLib.java b/src/main/java/com/comphenix/protocol/ProtocolLib.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/ProtocolLib.java
rename to src/main/java/com/comphenix/protocol/ProtocolLib.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/ProtocolLibrary.java b/src/main/java/com/comphenix/protocol/ProtocolLibrary.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/ProtocolLibrary.java
rename to src/main/java/com/comphenix/protocol/ProtocolLibrary.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/ProtocolLogger.java b/src/main/java/com/comphenix/protocol/ProtocolLogger.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/ProtocolLogger.java
rename to src/main/java/com/comphenix/protocol/ProtocolLogger.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/ProtocolManager.java b/src/main/java/com/comphenix/protocol/ProtocolManager.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/ProtocolManager.java
rename to src/main/java/com/comphenix/protocol/ProtocolManager.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/RangeParser.java b/src/main/java/com/comphenix/protocol/RangeParser.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/RangeParser.java
rename to src/main/java/com/comphenix/protocol/RangeParser.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/AsyncFilterManager.java b/src/main/java/com/comphenix/protocol/async/AsyncFilterManager.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/AsyncFilterManager.java
rename to src/main/java/com/comphenix/protocol/async/AsyncFilterManager.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/AsyncListenerHandler.java b/src/main/java/com/comphenix/protocol/async/AsyncListenerHandler.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/AsyncListenerHandler.java
rename to src/main/java/com/comphenix/protocol/async/AsyncListenerHandler.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/AsyncMarker.java b/src/main/java/com/comphenix/protocol/async/AsyncMarker.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/AsyncMarker.java
rename to src/main/java/com/comphenix/protocol/async/AsyncMarker.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/AsyncRunnable.java b/src/main/java/com/comphenix/protocol/async/AsyncRunnable.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/AsyncRunnable.java
rename to src/main/java/com/comphenix/protocol/async/AsyncRunnable.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/NullPacketListener.java b/src/main/java/com/comphenix/protocol/async/NullPacketListener.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/NullPacketListener.java
rename to src/main/java/com/comphenix/protocol/async/NullPacketListener.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/PacketEventHolder.java b/src/main/java/com/comphenix/protocol/async/PacketEventHolder.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/PacketEventHolder.java
rename to src/main/java/com/comphenix/protocol/async/PacketEventHolder.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/PacketProcessingQueue.java b/src/main/java/com/comphenix/protocol/async/PacketProcessingQueue.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/PacketProcessingQueue.java
rename to src/main/java/com/comphenix/protocol/async/PacketProcessingQueue.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/PacketSendingQueue.java b/src/main/java/com/comphenix/protocol/async/PacketSendingQueue.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/PacketSendingQueue.java
rename to src/main/java/com/comphenix/protocol/async/PacketSendingQueue.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/PlayerSendingHandler.java b/src/main/java/com/comphenix/protocol/async/PlayerSendingHandler.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/PlayerSendingHandler.java
rename to src/main/java/com/comphenix/protocol/async/PlayerSendingHandler.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/async/Synchronization.java b/src/main/java/com/comphenix/protocol/async/Synchronization.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/async/Synchronization.java
rename to src/main/java/com/comphenix/protocol/async/Synchronization.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/collections/ExpireHashMap.java b/src/main/java/com/comphenix/protocol/collections/ExpireHashMap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/collections/ExpireHashMap.java
rename to src/main/java/com/comphenix/protocol/collections/ExpireHashMap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/collections/IntegerMap.java b/src/main/java/com/comphenix/protocol/collections/IntegerMap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/collections/IntegerMap.java
rename to src/main/java/com/comphenix/protocol/collections/IntegerMap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/concurrency/AbstractConcurrentListenerMultimap.java b/src/main/java/com/comphenix/protocol/concurrency/AbstractConcurrentListenerMultimap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/concurrency/AbstractConcurrentListenerMultimap.java
rename to src/main/java/com/comphenix/protocol/concurrency/AbstractConcurrentListenerMultimap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/concurrency/AbstractIntervalTree.java b/src/main/java/com/comphenix/protocol/concurrency/AbstractIntervalTree.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/concurrency/AbstractIntervalTree.java
rename to src/main/java/com/comphenix/protocol/concurrency/AbstractIntervalTree.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/concurrency/BlockingHashMap.java b/src/main/java/com/comphenix/protocol/concurrency/BlockingHashMap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/concurrency/BlockingHashMap.java
rename to src/main/java/com/comphenix/protocol/concurrency/BlockingHashMap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/concurrency/ConcurrentPlayerMap.java b/src/main/java/com/comphenix/protocol/concurrency/ConcurrentPlayerMap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/concurrency/ConcurrentPlayerMap.java
rename to src/main/java/com/comphenix/protocol/concurrency/ConcurrentPlayerMap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/concurrency/IntegerSet.java b/src/main/java/com/comphenix/protocol/concurrency/IntegerSet.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/concurrency/IntegerSet.java
rename to src/main/java/com/comphenix/protocol/concurrency/IntegerSet.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/concurrency/PacketTypeSet.java b/src/main/java/com/comphenix/protocol/concurrency/PacketTypeSet.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/concurrency/PacketTypeSet.java
rename to src/main/java/com/comphenix/protocol/concurrency/PacketTypeSet.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/concurrency/SortedCopyOnWriteArray.java b/src/main/java/com/comphenix/protocol/concurrency/SortedCopyOnWriteArray.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/concurrency/SortedCopyOnWriteArray.java
rename to src/main/java/com/comphenix/protocol/concurrency/SortedCopyOnWriteArray.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/BasicErrorReporter.java b/src/main/java/com/comphenix/protocol/error/BasicErrorReporter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/BasicErrorReporter.java
rename to src/main/java/com/comphenix/protocol/error/BasicErrorReporter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/DelegatedErrorReporter.java b/src/main/java/com/comphenix/protocol/error/DelegatedErrorReporter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/DelegatedErrorReporter.java
rename to src/main/java/com/comphenix/protocol/error/DelegatedErrorReporter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/DetailedErrorReporter.java b/src/main/java/com/comphenix/protocol/error/DetailedErrorReporter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/DetailedErrorReporter.java
rename to src/main/java/com/comphenix/protocol/error/DetailedErrorReporter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/ErrorReporter.java b/src/main/java/com/comphenix/protocol/error/ErrorReporter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/ErrorReporter.java
rename to src/main/java/com/comphenix/protocol/error/ErrorReporter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/PluginContext.java b/src/main/java/com/comphenix/protocol/error/PluginContext.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/PluginContext.java
rename to src/main/java/com/comphenix/protocol/error/PluginContext.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/Report.java b/src/main/java/com/comphenix/protocol/error/Report.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/Report.java
rename to src/main/java/com/comphenix/protocol/error/Report.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/ReportType.java b/src/main/java/com/comphenix/protocol/error/ReportType.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/ReportType.java
rename to src/main/java/com/comphenix/protocol/error/ReportType.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/error/RethrowErrorReporter.java b/src/main/java/com/comphenix/protocol/error/RethrowErrorReporter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/error/RethrowErrorReporter.java
rename to src/main/java/com/comphenix/protocol/error/RethrowErrorReporter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/ConnectionSide.java b/src/main/java/com/comphenix/protocol/events/ConnectionSide.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/ConnectionSide.java
rename to src/main/java/com/comphenix/protocol/events/ConnectionSide.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/ListenerOptions.java b/src/main/java/com/comphenix/protocol/events/ListenerOptions.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/ListenerOptions.java
rename to src/main/java/com/comphenix/protocol/events/ListenerOptions.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/ListenerPriority.java b/src/main/java/com/comphenix/protocol/events/ListenerPriority.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/ListenerPriority.java
rename to src/main/java/com/comphenix/protocol/events/ListenerPriority.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/ListeningWhitelist.java b/src/main/java/com/comphenix/protocol/events/ListeningWhitelist.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/ListeningWhitelist.java
rename to src/main/java/com/comphenix/protocol/events/ListeningWhitelist.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/MonitorAdapter.java b/src/main/java/com/comphenix/protocol/events/MonitorAdapter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/MonitorAdapter.java
rename to src/main/java/com/comphenix/protocol/events/MonitorAdapter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/NetworkMarker.java b/src/main/java/com/comphenix/protocol/events/NetworkMarker.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/NetworkMarker.java
rename to src/main/java/com/comphenix/protocol/events/NetworkMarker.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketAdapter.java b/src/main/java/com/comphenix/protocol/events/PacketAdapter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketAdapter.java
rename to src/main/java/com/comphenix/protocol/events/PacketAdapter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketContainer.java b/src/main/java/com/comphenix/protocol/events/PacketContainer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketContainer.java
rename to src/main/java/com/comphenix/protocol/events/PacketContainer.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketEvent.java b/src/main/java/com/comphenix/protocol/events/PacketEvent.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketEvent.java
rename to src/main/java/com/comphenix/protocol/events/PacketEvent.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketListener.java b/src/main/java/com/comphenix/protocol/events/PacketListener.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketListener.java
rename to src/main/java/com/comphenix/protocol/events/PacketListener.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketMetadata.java b/src/main/java/com/comphenix/protocol/events/PacketMetadata.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketMetadata.java
rename to src/main/java/com/comphenix/protocol/events/PacketMetadata.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketOutputAdapter.java b/src/main/java/com/comphenix/protocol/events/PacketOutputAdapter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketOutputAdapter.java
rename to src/main/java/com/comphenix/protocol/events/PacketOutputAdapter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketOutputHandler.java b/src/main/java/com/comphenix/protocol/events/PacketOutputHandler.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketOutputHandler.java
rename to src/main/java/com/comphenix/protocol/events/PacketOutputHandler.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketPostAdapter.java b/src/main/java/com/comphenix/protocol/events/PacketPostAdapter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketPostAdapter.java
rename to src/main/java/com/comphenix/protocol/events/PacketPostAdapter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/PacketPostListener.java b/src/main/java/com/comphenix/protocol/events/PacketPostListener.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/PacketPostListener.java
rename to src/main/java/com/comphenix/protocol/events/PacketPostListener.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/ScheduledPacket.java b/src/main/java/com/comphenix/protocol/events/ScheduledPacket.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/ScheduledPacket.java
rename to src/main/java/com/comphenix/protocol/events/ScheduledPacket.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/events/SerializedOfflinePlayer.java b/src/main/java/com/comphenix/protocol/events/SerializedOfflinePlayer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/events/SerializedOfflinePlayer.java
rename to src/main/java/com/comphenix/protocol/events/SerializedOfflinePlayer.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/BukkitUnwrapper.java b/src/main/java/com/comphenix/protocol/injector/BukkitUnwrapper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/BukkitUnwrapper.java
rename to src/main/java/com/comphenix/protocol/injector/BukkitUnwrapper.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/DelayedPacketManager.java b/src/main/java/com/comphenix/protocol/injector/DelayedPacketManager.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/DelayedPacketManager.java
rename to src/main/java/com/comphenix/protocol/injector/DelayedPacketManager.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/DelayedSingleTask.java b/src/main/java/com/comphenix/protocol/injector/DelayedSingleTask.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/DelayedSingleTask.java
rename to src/main/java/com/comphenix/protocol/injector/DelayedSingleTask.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/EntityUtilities.java b/src/main/java/com/comphenix/protocol/injector/EntityUtilities.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/EntityUtilities.java
rename to src/main/java/com/comphenix/protocol/injector/EntityUtilities.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/GamePhase.java b/src/main/java/com/comphenix/protocol/injector/GamePhase.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/GamePhase.java
rename to src/main/java/com/comphenix/protocol/injector/GamePhase.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/InternalManager.java b/src/main/java/com/comphenix/protocol/injector/InternalManager.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/InternalManager.java
rename to src/main/java/com/comphenix/protocol/injector/InternalManager.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/ListenerInvoker.java b/src/main/java/com/comphenix/protocol/injector/ListenerInvoker.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/ListenerInvoker.java
rename to src/main/java/com/comphenix/protocol/injector/ListenerInvoker.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/LoginPackets.java b/src/main/java/com/comphenix/protocol/injector/LoginPackets.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/LoginPackets.java
rename to src/main/java/com/comphenix/protocol/injector/LoginPackets.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/NetworkProcessor.java b/src/main/java/com/comphenix/protocol/injector/NetworkProcessor.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/NetworkProcessor.java
rename to src/main/java/com/comphenix/protocol/injector/NetworkProcessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/PacketConstructor.java b/src/main/java/com/comphenix/protocol/injector/PacketConstructor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/PacketConstructor.java
rename to src/main/java/com/comphenix/protocol/injector/PacketConstructor.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketFilterBuilder.java b/src/main/java/com/comphenix/protocol/injector/PacketFilterBuilder.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketFilterBuilder.java
rename to src/main/java/com/comphenix/protocol/injector/PacketFilterBuilder.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketFilterManager.java b/src/main/java/com/comphenix/protocol/injector/PacketFilterManager.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PacketFilterManager.java
rename to src/main/java/com/comphenix/protocol/injector/PacketFilterManager.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/PlayerInjectHooks.java b/src/main/java/com/comphenix/protocol/injector/PlayerInjectHooks.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/PlayerInjectHooks.java
rename to src/main/java/com/comphenix/protocol/injector/PlayerInjectHooks.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/PlayerLoggedOutException.java b/src/main/java/com/comphenix/protocol/injector/PlayerLoggedOutException.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/PlayerLoggedOutException.java
rename to src/main/java/com/comphenix/protocol/injector/PlayerLoggedOutException.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PluginVerifier.java b/src/main/java/com/comphenix/protocol/injector/PluginVerifier.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/PluginVerifier.java
rename to src/main/java/com/comphenix/protocol/injector/PluginVerifier.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/PrioritizedListener.java b/src/main/java/com/comphenix/protocol/injector/PrioritizedListener.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/PrioritizedListener.java
rename to src/main/java/com/comphenix/protocol/injector/PrioritizedListener.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/SortedPacketListenerList.java b/src/main/java/com/comphenix/protocol/injector/SortedPacketListenerList.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/SortedPacketListenerList.java
rename to src/main/java/com/comphenix/protocol/injector/SortedPacketListenerList.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/StructureCache.java b/src/main/java/com/comphenix/protocol/injector/StructureCache.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/StructureCache.java
rename to src/main/java/com/comphenix/protocol/injector/StructureCache.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/BootstrapList.java b/src/main/java/com/comphenix/protocol/injector/netty/BootstrapList.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/BootstrapList.java
rename to src/main/java/com/comphenix/protocol/injector/netty/BootstrapList.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ChannelInjector.java b/src/main/java/com/comphenix/protocol/injector/netty/ChannelInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ChannelInjector.java
rename to src/main/java/com/comphenix/protocol/injector/netty/ChannelInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ChannelListener.java b/src/main/java/com/comphenix/protocol/injector/netty/ChannelListener.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ChannelListener.java
rename to src/main/java/com/comphenix/protocol/injector/netty/ChannelListener.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ChannelProxy.java b/src/main/java/com/comphenix/protocol/injector/netty/ChannelProxy.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ChannelProxy.java
rename to src/main/java/com/comphenix/protocol/injector/netty/ChannelProxy.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ClosedInjector.java b/src/main/java/com/comphenix/protocol/injector/netty/ClosedInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ClosedInjector.java
rename to src/main/java/com/comphenix/protocol/injector/netty/ClosedInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/EventLoopProxy.java b/src/main/java/com/comphenix/protocol/injector/netty/EventLoopProxy.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/EventLoopProxy.java
rename to src/main/java/com/comphenix/protocol/injector/netty/EventLoopProxy.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java b/src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java
rename to src/main/java/com/comphenix/protocol/injector/netty/InjectionFactory.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/Injector.java b/src/main/java/com/comphenix/protocol/injector/netty/Injector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/Injector.java
rename to src/main/java/com/comphenix/protocol/injector/netty/Injector.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/netty/NettyByteBufAdapter.java b/src/main/java/com/comphenix/protocol/injector/netty/NettyByteBufAdapter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/netty/NettyByteBufAdapter.java
rename to src/main/java/com/comphenix/protocol/injector/netty/NettyByteBufAdapter.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/NettyNetworkMarker.java b/src/main/java/com/comphenix/protocol/injector/netty/NettyNetworkMarker.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/NettyNetworkMarker.java
rename to src/main/java/com/comphenix/protocol/injector/netty/NettyNetworkMarker.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java b/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java
rename to src/main/java/com/comphenix/protocol/injector/netty/NettyProtocolRegistry.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/PipelineProxy.java b/src/main/java/com/comphenix/protocol/injector/netty/PipelineProxy.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/PipelineProxy.java
rename to src/main/java/com/comphenix/protocol/injector/netty/PipelineProxy.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java b/src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java
rename to src/main/java/com/comphenix/protocol/injector/netty/ProtocolInjector.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/netty/ProtocolRegistry.java b/src/main/java/com/comphenix/protocol/injector/netty/ProtocolRegistry.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/netty/ProtocolRegistry.java
rename to src/main/java/com/comphenix/protocol/injector/netty/ProtocolRegistry.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/SocketAdapter.java b/src/main/java/com/comphenix/protocol/injector/netty/SocketAdapter.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/netty/SocketAdapter.java
rename to src/main/java/com/comphenix/protocol/injector/netty/SocketAdapter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/netty/WirePacket.java b/src/main/java/com/comphenix/protocol/injector/netty/WirePacket.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/netty/WirePacket.java
rename to src/main/java/com/comphenix/protocol/injector/netty/WirePacket.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/CaptureInputStream.java b/src/main/java/com/comphenix/protocol/injector/packet/CaptureInputStream.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/CaptureInputStream.java
rename to src/main/java/com/comphenix/protocol/injector/packet/CaptureInputStream.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/InterceptWritePacket.java b/src/main/java/com/comphenix/protocol/injector/packet/InterceptWritePacket.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/InterceptWritePacket.java
rename to src/main/java/com/comphenix/protocol/injector/packet/InterceptWritePacket.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/InverseMaps.java b/src/main/java/com/comphenix/protocol/injector/packet/InverseMaps.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/InverseMaps.java
rename to src/main/java/com/comphenix/protocol/injector/packet/InverseMaps.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/LegacyNetworkMarker.java b/src/main/java/com/comphenix/protocol/injector/packet/LegacyNetworkMarker.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/LegacyNetworkMarker.java
rename to src/main/java/com/comphenix/protocol/injector/packet/LegacyNetworkMarker.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/LegacyPacketRegistry.java b/src/main/java/com/comphenix/protocol/injector/packet/LegacyPacketRegistry.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/LegacyPacketRegistry.java
rename to src/main/java/com/comphenix/protocol/injector/packet/LegacyPacketRegistry.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/packet/MapContainer.java b/src/main/java/com/comphenix/protocol/injector/packet/MapContainer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/packet/MapContainer.java
rename to src/main/java/com/comphenix/protocol/injector/packet/MapContainer.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/PacketInjector.java b/src/main/java/com/comphenix/protocol/injector/packet/PacketInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/PacketInjector.java
rename to src/main/java/com/comphenix/protocol/injector/packet/PacketInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/PacketInjectorBuilder.java b/src/main/java/com/comphenix/protocol/injector/packet/PacketInjectorBuilder.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/PacketInjectorBuilder.java
rename to src/main/java/com/comphenix/protocol/injector/packet/PacketInjectorBuilder.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/packet/PacketRegistry.java b/src/main/java/com/comphenix/protocol/injector/packet/PacketRegistry.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/packet/PacketRegistry.java
rename to src/main/java/com/comphenix/protocol/injector/packet/PacketRegistry.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/ProxyPacketInjector.java b/src/main/java/com/comphenix/protocol/injector/packet/ProxyPacketInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/ProxyPacketInjector.java
rename to src/main/java/com/comphenix/protocol/injector/packet/ProxyPacketInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/ReadPacketModifier.java b/src/main/java/com/comphenix/protocol/injector/packet/ReadPacketModifier.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/ReadPacketModifier.java
rename to src/main/java/com/comphenix/protocol/injector/packet/ReadPacketModifier.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/WritePacketModifier.java b/src/main/java/com/comphenix/protocol/injector/packet/WritePacketModifier.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/packet/WritePacketModifier.java
rename to src/main/java/com/comphenix/protocol/injector/packet/WritePacketModifier.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/InjectedArrayList.java b/src/main/java/com/comphenix/protocol/injector/player/InjectedArrayList.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/InjectedArrayList.java
rename to src/main/java/com/comphenix/protocol/injector/player/InjectedArrayList.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/InjectedServerConnection.java b/src/main/java/com/comphenix/protocol/injector/player/InjectedServerConnection.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/InjectedServerConnection.java
rename to src/main/java/com/comphenix/protocol/injector/player/InjectedServerConnection.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetLoginInjector.java b/src/main/java/com/comphenix/protocol/injector/player/NetLoginInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetLoginInjector.java
rename to src/main/java/com/comphenix/protocol/injector/player/NetLoginInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetworkFieldInjector.java b/src/main/java/com/comphenix/protocol/injector/player/NetworkFieldInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetworkFieldInjector.java
rename to src/main/java/com/comphenix/protocol/injector/player/NetworkFieldInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetworkObjectInjector.java b/src/main/java/com/comphenix/protocol/injector/player/NetworkObjectInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetworkObjectInjector.java
rename to src/main/java/com/comphenix/protocol/injector/player/NetworkObjectInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetworkServerInjector.java b/src/main/java/com/comphenix/protocol/injector/player/NetworkServerInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/NetworkServerInjector.java
rename to src/main/java/com/comphenix/protocol/injector/player/NetworkServerInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/PlayerInjectionHandler.java b/src/main/java/com/comphenix/protocol/injector/player/PlayerInjectionHandler.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/PlayerInjectionHandler.java
rename to src/main/java/com/comphenix/protocol/injector/player/PlayerInjectionHandler.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/PlayerInjector.java b/src/main/java/com/comphenix/protocol/injector/player/PlayerInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/PlayerInjector.java
rename to src/main/java/com/comphenix/protocol/injector/player/PlayerInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/PlayerInjectorBuilder.java b/src/main/java/com/comphenix/protocol/injector/player/PlayerInjectorBuilder.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/PlayerInjectorBuilder.java
rename to src/main/java/com/comphenix/protocol/injector/player/PlayerInjectorBuilder.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/ProxyPlayerInjectionHandler.java b/src/main/java/com/comphenix/protocol/injector/player/ProxyPlayerInjectionHandler.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/ProxyPlayerInjectionHandler.java
rename to src/main/java/com/comphenix/protocol/injector/player/ProxyPlayerInjectionHandler.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/ReplacedArrayList.java b/src/main/java/com/comphenix/protocol/injector/player/ReplacedArrayList.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/ReplacedArrayList.java
rename to src/main/java/com/comphenix/protocol/injector/player/ReplacedArrayList.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/UnsupportedListener.java b/src/main/java/com/comphenix/protocol/injector/player/UnsupportedListener.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/player/UnsupportedListener.java
rename to src/main/java/com/comphenix/protocol/injector/player/UnsupportedListener.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/AbstractInputStreamLookup.java b/src/main/java/com/comphenix/protocol/injector/server/AbstractInputStreamLookup.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/AbstractInputStreamLookup.java
rename to src/main/java/com/comphenix/protocol/injector/server/AbstractInputStreamLookup.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/BukkitSocketInjector.java b/src/main/java/com/comphenix/protocol/injector/server/BukkitSocketInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/BukkitSocketInjector.java
rename to src/main/java/com/comphenix/protocol/injector/server/BukkitSocketInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/InputStreamLookupBuilder.java b/src/main/java/com/comphenix/protocol/injector/server/InputStreamLookupBuilder.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/InputStreamLookupBuilder.java
rename to src/main/java/com/comphenix/protocol/injector/server/InputStreamLookupBuilder.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/InputStreamReflectLookup.java b/src/main/java/com/comphenix/protocol/injector/server/InputStreamReflectLookup.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/InputStreamReflectLookup.java
rename to src/main/java/com/comphenix/protocol/injector/server/InputStreamReflectLookup.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/QueuedSendPacket.java b/src/main/java/com/comphenix/protocol/injector/server/QueuedSendPacket.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/QueuedSendPacket.java
rename to src/main/java/com/comphenix/protocol/injector/server/QueuedSendPacket.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/server/SocketInjector.java b/src/main/java/com/comphenix/protocol/injector/server/SocketInjector.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/server/SocketInjector.java
rename to src/main/java/com/comphenix/protocol/injector/server/SocketInjector.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayer.java b/src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayer.java
rename to src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayer.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayerFactory.java b/src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayerFactory.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayerFactory.java
rename to src/main/java/com/comphenix/protocol/injector/server/TemporaryPlayerFactory.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/AbstractPacketInjector.java b/src/main/java/com/comphenix/protocol/injector/spigot/AbstractPacketInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/AbstractPacketInjector.java
rename to src/main/java/com/comphenix/protocol/injector/spigot/AbstractPacketInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/AbstractPlayerHandler.java b/src/main/java/com/comphenix/protocol/injector/spigot/AbstractPlayerHandler.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/AbstractPlayerHandler.java
rename to src/main/java/com/comphenix/protocol/injector/spigot/AbstractPlayerHandler.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/DummyPacketInjector.java b/src/main/java/com/comphenix/protocol/injector/spigot/DummyPacketInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/DummyPacketInjector.java
rename to src/main/java/com/comphenix/protocol/injector/spigot/DummyPacketInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/DummyPlayerHandler.java b/src/main/java/com/comphenix/protocol/injector/spigot/DummyPlayerHandler.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/DummyPlayerHandler.java
rename to src/main/java/com/comphenix/protocol/injector/spigot/DummyPlayerHandler.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketInjector.java b/src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketInjector.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketInjector.java
rename to src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketInjector.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketListener.java b/src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketListener.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketListener.java
rename to src/main/java/com/comphenix/protocol/injector/spigot/SpigotPacketListener.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Metrics.java b/src/main/java/com/comphenix/protocol/metrics/Metrics.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Metrics.java
rename to src/main/java/com/comphenix/protocol/metrics/Metrics.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Statistics.java b/src/main/java/com/comphenix/protocol/metrics/Statistics.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/metrics/Statistics.java
rename to src/main/java/com/comphenix/protocol/metrics/Statistics.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/package-info.java b/src/main/java/com/comphenix/protocol/package-info.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/package-info.java
rename to src/main/java/com/comphenix/protocol/package-info.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/ClassAnalyser.java b/src/main/java/com/comphenix/protocol/reflect/ClassAnalyser.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/ClassAnalyser.java
rename to src/main/java/com/comphenix/protocol/reflect/ClassAnalyser.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/EquivalentConverter.java b/src/main/java/com/comphenix/protocol/reflect/EquivalentConverter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/EquivalentConverter.java
rename to src/main/java/com/comphenix/protocol/reflect/EquivalentConverter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/ExactReflection.java b/src/main/java/com/comphenix/protocol/reflect/ExactReflection.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/ExactReflection.java
rename to src/main/java/com/comphenix/protocol/reflect/ExactReflection.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/FieldAccessException.java b/src/main/java/com/comphenix/protocol/reflect/FieldAccessException.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/FieldAccessException.java
rename to src/main/java/com/comphenix/protocol/reflect/FieldAccessException.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/FieldUtils.java b/src/main/java/com/comphenix/protocol/reflect/FieldUtils.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/FieldUtils.java
rename to src/main/java/com/comphenix/protocol/reflect/FieldUtils.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/FuzzyReflection.java b/src/main/java/com/comphenix/protocol/reflect/FuzzyReflection.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/FuzzyReflection.java
rename to src/main/java/com/comphenix/protocol/reflect/FuzzyReflection.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/IntEnum.java b/src/main/java/com/comphenix/protocol/reflect/IntEnum.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/IntEnum.java
rename to src/main/java/com/comphenix/protocol/reflect/IntEnum.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/MethodInfo.java b/src/main/java/com/comphenix/protocol/reflect/MethodInfo.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/MethodInfo.java
rename to src/main/java/com/comphenix/protocol/reflect/MethodInfo.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/MethodUtils.java b/src/main/java/com/comphenix/protocol/reflect/MethodUtils.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/MethodUtils.java
rename to src/main/java/com/comphenix/protocol/reflect/MethodUtils.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/ObjectWriter.java b/src/main/java/com/comphenix/protocol/reflect/ObjectWriter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/ObjectWriter.java
rename to src/main/java/com/comphenix/protocol/reflect/ObjectWriter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/PrettyPrinter.java b/src/main/java/com/comphenix/protocol/reflect/PrettyPrinter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/PrettyPrinter.java
rename to src/main/java/com/comphenix/protocol/reflect/PrettyPrinter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/StructureModifier.java b/src/main/java/com/comphenix/protocol/reflect/StructureModifier.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/StructureModifier.java
rename to src/main/java/com/comphenix/protocol/reflect/StructureModifier.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/VolatileField.java b/src/main/java/com/comphenix/protocol/reflect/VolatileField.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/VolatileField.java
rename to src/main/java/com/comphenix/protocol/reflect/VolatileField.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/Accessors.java b/src/main/java/com/comphenix/protocol/reflect/accessors/Accessors.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/Accessors.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/Accessors.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/ConstructorAccessor.java b/src/main/java/com/comphenix/protocol/reflect/accessors/ConstructorAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/ConstructorAccessor.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/ConstructorAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultConstrutorAccessor.java b/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultConstrutorAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultConstrutorAccessor.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/DefaultConstrutorAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultFieldAccessor.java b/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultFieldAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultFieldAccessor.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/DefaultFieldAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultMethodAccessor.java b/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultMethodAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/DefaultMethodAccessor.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/DefaultMethodAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/FieldAccessor.java b/src/main/java/com/comphenix/protocol/reflect/accessors/FieldAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/FieldAccessor.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/FieldAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/MethodAccessor.java b/src/main/java/com/comphenix/protocol/reflect/accessors/MethodAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/MethodAccessor.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/MethodAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/ReadOnlyFieldAccessor.java b/src/main/java/com/comphenix/protocol/reflect/accessors/ReadOnlyFieldAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/accessors/ReadOnlyFieldAccessor.java
rename to src/main/java/com/comphenix/protocol/reflect/accessors/ReadOnlyFieldAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/AggregateCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/AggregateCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/AggregateCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/AggregateCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/BukkitCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/Cloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/Cloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/Cloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/Cloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/CollectionCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/CollectionCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/CollectionCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/CollectionCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/FieldCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/FieldCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/FieldCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/FieldCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/GuavaOptionalCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/GuavaOptionalCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/GuavaOptionalCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/GuavaOptionalCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/ImmutableDetector.java b/src/main/java/com/comphenix/protocol/reflect/cloning/ImmutableDetector.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/ImmutableDetector.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/ImmutableDetector.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/JavaOptionalCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/JavaOptionalCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/JavaOptionalCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/JavaOptionalCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/NullableCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/NullableCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/NullableCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/NullableCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/SerializableCloner.java b/src/main/java/com/comphenix/protocol/reflect/cloning/SerializableCloner.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/cloning/SerializableCloner.java
rename to src/main/java/com/comphenix/protocol/reflect/cloning/SerializableCloner.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/BackgroundCompiler.java b/src/main/java/com/comphenix/protocol/reflect/compiler/BackgroundCompiler.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/BackgroundCompiler.java
rename to src/main/java/com/comphenix/protocol/reflect/compiler/BackgroundCompiler.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/BoxingHelper.java b/src/main/java/com/comphenix/protocol/reflect/compiler/BoxingHelper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/BoxingHelper.java
rename to src/main/java/com/comphenix/protocol/reflect/compiler/BoxingHelper.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/CompileListener.java b/src/main/java/com/comphenix/protocol/reflect/compiler/CompileListener.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/CompileListener.java
rename to src/main/java/com/comphenix/protocol/reflect/compiler/CompileListener.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/CompiledStructureModifier.java b/src/main/java/com/comphenix/protocol/reflect/compiler/CompiledStructureModifier.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/CompiledStructureModifier.java
rename to src/main/java/com/comphenix/protocol/reflect/compiler/CompiledStructureModifier.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/MethodDescriptor.java b/src/main/java/com/comphenix/protocol/reflect/compiler/MethodDescriptor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/MethodDescriptor.java
rename to src/main/java/com/comphenix/protocol/reflect/compiler/MethodDescriptor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/StructureCompiler.java b/src/main/java/com/comphenix/protocol/reflect/compiler/StructureCompiler.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/compiler/StructureCompiler.java
rename to src/main/java/com/comphenix/protocol/reflect/compiler/StructureCompiler.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMatcher.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMatcher.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMatcher.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMatcher.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMember.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMember.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMember.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/AbstractFuzzyMember.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassExactMatcher.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassExactMatcher.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassExactMatcher.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassExactMatcher.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassRegexMatcher.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassRegexMatcher.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassRegexMatcher.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassRegexMatcher.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassSetMatcher.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassSetMatcher.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassSetMatcher.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/ClassSetMatcher.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyClassContract.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyClassContract.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyClassContract.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyClassContract.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyFieldContract.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyFieldContract.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyFieldContract.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyFieldContract.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMatchers.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMatchers.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMatchers.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMatchers.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMethodContract.java b/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMethodContract.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMethodContract.java
rename to src/main/java/com/comphenix/protocol/reflect/fuzzy/FuzzyMethodContract.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/instances/BannedGenerator.java b/src/main/java/com/comphenix/protocol/reflect/instances/BannedGenerator.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/instances/BannedGenerator.java
rename to src/main/java/com/comphenix/protocol/reflect/instances/BannedGenerator.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/instances/CollectionGenerator.java b/src/main/java/com/comphenix/protocol/reflect/instances/CollectionGenerator.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/instances/CollectionGenerator.java
rename to src/main/java/com/comphenix/protocol/reflect/instances/CollectionGenerator.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/instances/DefaultInstances.java b/src/main/java/com/comphenix/protocol/reflect/instances/DefaultInstances.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/instances/DefaultInstances.java
rename to src/main/java/com/comphenix/protocol/reflect/instances/DefaultInstances.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/instances/ExistingGenerator.java b/src/main/java/com/comphenix/protocol/reflect/instances/ExistingGenerator.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/instances/ExistingGenerator.java
rename to src/main/java/com/comphenix/protocol/reflect/instances/ExistingGenerator.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/instances/InstanceProvider.java b/src/main/java/com/comphenix/protocol/reflect/instances/InstanceProvider.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/instances/InstanceProvider.java
rename to src/main/java/com/comphenix/protocol/reflect/instances/InstanceProvider.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/instances/NotConstructableException.java b/src/main/java/com/comphenix/protocol/reflect/instances/NotConstructableException.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/instances/NotConstructableException.java
rename to src/main/java/com/comphenix/protocol/reflect/instances/NotConstructableException.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/reflect/instances/PrimitiveGenerator.java b/src/main/java/com/comphenix/protocol/reflect/instances/PrimitiveGenerator.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/reflect/instances/PrimitiveGenerator.java
rename to src/main/java/com/comphenix/protocol/reflect/instances/PrimitiveGenerator.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/timing/HistogramStream.java b/src/main/java/com/comphenix/protocol/timing/HistogramStream.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/timing/HistogramStream.java
rename to src/main/java/com/comphenix/protocol/timing/HistogramStream.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/timing/OnlineComputation.java b/src/main/java/com/comphenix/protocol/timing/OnlineComputation.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/timing/OnlineComputation.java
rename to src/main/java/com/comphenix/protocol/timing/OnlineComputation.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/timing/StatisticsStream.java b/src/main/java/com/comphenix/protocol/timing/StatisticsStream.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/timing/StatisticsStream.java
rename to src/main/java/com/comphenix/protocol/timing/StatisticsStream.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/timing/TimedListenerManager.java b/src/main/java/com/comphenix/protocol/timing/TimedListenerManager.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/timing/TimedListenerManager.java
rename to src/main/java/com/comphenix/protocol/timing/TimedListenerManager.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/timing/TimedTracker.java b/src/main/java/com/comphenix/protocol/timing/TimedTracker.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/timing/TimedTracker.java
rename to src/main/java/com/comphenix/protocol/timing/TimedTracker.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/timing/TimingReportGenerator.java b/src/main/java/com/comphenix/protocol/timing/TimingReportGenerator.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/timing/TimingReportGenerator.java
rename to src/main/java/com/comphenix/protocol/timing/TimingReportGenerator.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/updater/BukkitUpdater.java b/src/main/java/com/comphenix/protocol/updater/BukkitUpdater.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/updater/BukkitUpdater.java
rename to src/main/java/com/comphenix/protocol/updater/BukkitUpdater.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/updater/SpigotUpdater.java b/src/main/java/com/comphenix/protocol/updater/SpigotUpdater.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/updater/SpigotUpdater.java
rename to src/main/java/com/comphenix/protocol/updater/SpigotUpdater.java
diff --git a/modules/ProtocolLib/src/main/java/com/comphenix/protocol/updater/Updater.java b/src/main/java/com/comphenix/protocol/updater/Updater.java
similarity index 100%
rename from modules/ProtocolLib/src/main/java/com/comphenix/protocol/updater/Updater.java
rename to src/main/java/com/comphenix/protocol/updater/Updater.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/ByteBufferInputStream.java b/src/main/java/com/comphenix/protocol/utility/ByteBufferInputStream.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/ByteBufferInputStream.java
rename to src/main/java/com/comphenix/protocol/utility/ByteBufferInputStream.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/ByteBufferOutputStream.java b/src/main/java/com/comphenix/protocol/utility/ByteBufferOutputStream.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/ByteBufferOutputStream.java
rename to src/main/java/com/comphenix/protocol/utility/ByteBufferOutputStream.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/CachedPackage.java b/src/main/java/com/comphenix/protocol/utility/CachedPackage.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/CachedPackage.java
rename to src/main/java/com/comphenix/protocol/utility/CachedPackage.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/ChatExtensions.java b/src/main/java/com/comphenix/protocol/utility/ChatExtensions.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/ChatExtensions.java
rename to src/main/java/com/comphenix/protocol/utility/ChatExtensions.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/ClassSource.java b/src/main/java/com/comphenix/protocol/utility/ClassSource.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/ClassSource.java
rename to src/main/java/com/comphenix/protocol/utility/ClassSource.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/Closer.java b/src/main/java/com/comphenix/protocol/utility/Closer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/Closer.java
rename to src/main/java/com/comphenix/protocol/utility/Closer.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/Constants.java b/src/main/java/com/comphenix/protocol/utility/Constants.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/Constants.java
rename to src/main/java/com/comphenix/protocol/utility/Constants.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/EnhancerFactory.java b/src/main/java/com/comphenix/protocol/utility/EnhancerFactory.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/EnhancerFactory.java
rename to src/main/java/com/comphenix/protocol/utility/EnhancerFactory.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/HexDumper.java b/src/main/java/com/comphenix/protocol/utility/HexDumper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/HexDumper.java
rename to src/main/java/com/comphenix/protocol/utility/HexDumper.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftFields.java b/src/main/java/com/comphenix/protocol/utility/MinecraftFields.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftFields.java
rename to src/main/java/com/comphenix/protocol/utility/MinecraftFields.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftMethods.java b/src/main/java/com/comphenix/protocol/utility/MinecraftMethods.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftMethods.java
rename to src/main/java/com/comphenix/protocol/utility/MinecraftMethods.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftProtocolVersion.java b/src/main/java/com/comphenix/protocol/utility/MinecraftProtocolVersion.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftProtocolVersion.java
rename to src/main/java/com/comphenix/protocol/utility/MinecraftProtocolVersion.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java b/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java
rename to src/main/java/com/comphenix/protocol/utility/MinecraftReflection.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftVersion.java b/src/main/java/com/comphenix/protocol/utility/MinecraftVersion.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/MinecraftVersion.java
rename to src/main/java/com/comphenix/protocol/utility/MinecraftVersion.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/RemappedClassSource.java b/src/main/java/com/comphenix/protocol/utility/RemappedClassSource.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/RemappedClassSource.java
rename to src/main/java/com/comphenix/protocol/utility/RemappedClassSource.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/SafeCacheBuilder.java b/src/main/java/com/comphenix/protocol/utility/SafeCacheBuilder.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/SafeCacheBuilder.java
rename to src/main/java/com/comphenix/protocol/utility/SafeCacheBuilder.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/SnapshotVersion.java b/src/main/java/com/comphenix/protocol/utility/SnapshotVersion.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/SnapshotVersion.java
rename to src/main/java/com/comphenix/protocol/utility/SnapshotVersion.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/StreamSerializer.java b/src/main/java/com/comphenix/protocol/utility/StreamSerializer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/StreamSerializer.java
rename to src/main/java/com/comphenix/protocol/utility/StreamSerializer.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/utility/Util.java b/src/main/java/com/comphenix/protocol/utility/Util.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/utility/Util.java
rename to src/main/java/com/comphenix/protocol/utility/Util.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/AbstractWrapper.java b/src/main/java/com/comphenix/protocol/wrappers/AbstractWrapper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/AbstractWrapper.java
rename to src/main/java/com/comphenix/protocol/wrappers/AbstractWrapper.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/AutoWrapper.java b/src/main/java/com/comphenix/protocol/wrappers/AutoWrapper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/AutoWrapper.java
rename to src/main/java/com/comphenix/protocol/wrappers/AutoWrapper.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/BlockPosition.java b/src/main/java/com/comphenix/protocol/wrappers/BlockPosition.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/BlockPosition.java
rename to src/main/java/com/comphenix/protocol/wrappers/BlockPosition.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/BukkitConverters.java b/src/main/java/com/comphenix/protocol/wrappers/BukkitConverters.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/BukkitConverters.java
rename to src/main/java/com/comphenix/protocol/wrappers/BukkitConverters.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/ChunkCoordIntPair.java b/src/main/java/com/comphenix/protocol/wrappers/ChunkCoordIntPair.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/ChunkCoordIntPair.java
rename to src/main/java/com/comphenix/protocol/wrappers/ChunkCoordIntPair.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/ChunkPosition.java b/src/main/java/com/comphenix/protocol/wrappers/ChunkPosition.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/ChunkPosition.java
rename to src/main/java/com/comphenix/protocol/wrappers/ChunkPosition.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/ClonableWrapper.java b/src/main/java/com/comphenix/protocol/wrappers/ClonableWrapper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/ClonableWrapper.java
rename to src/main/java/com/comphenix/protocol/wrappers/ClonableWrapper.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/ComponentConverter.java b/src/main/java/com/comphenix/protocol/wrappers/ComponentConverter.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/ComponentConverter.java
rename to src/main/java/com/comphenix/protocol/wrappers/ComponentConverter.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/ComponentParser.java b/src/main/java/com/comphenix/protocol/wrappers/ComponentParser.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/ComponentParser.java
rename to src/main/java/com/comphenix/protocol/wrappers/ComponentParser.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/Converters.java b/src/main/java/com/comphenix/protocol/wrappers/Converters.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/Converters.java
rename to src/main/java/com/comphenix/protocol/wrappers/Converters.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/EnumWrappers.java b/src/main/java/com/comphenix/protocol/wrappers/EnumWrappers.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/EnumWrappers.java
rename to src/main/java/com/comphenix/protocol/wrappers/EnumWrappers.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/GuavaReflection.java b/src/main/java/com/comphenix/protocol/wrappers/GuavaReflection.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/GuavaReflection.java
rename to src/main/java/com/comphenix/protocol/wrappers/GuavaReflection.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/GuavaWrappers.java b/src/main/java/com/comphenix/protocol/wrappers/GuavaWrappers.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/GuavaWrappers.java
rename to src/main/java/com/comphenix/protocol/wrappers/GuavaWrappers.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/MinecraftKey.java b/src/main/java/com/comphenix/protocol/wrappers/MinecraftKey.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/MinecraftKey.java
rename to src/main/java/com/comphenix/protocol/wrappers/MinecraftKey.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/MultiBlockChangeInfo.java b/src/main/java/com/comphenix/protocol/wrappers/MultiBlockChangeInfo.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/MultiBlockChangeInfo.java
rename to src/main/java/com/comphenix/protocol/wrappers/MultiBlockChangeInfo.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/PlayerInfoData.java b/src/main/java/com/comphenix/protocol/wrappers/PlayerInfoData.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/PlayerInfoData.java
rename to src/main/java/com/comphenix/protocol/wrappers/PlayerInfoData.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/TroveWrapper.java b/src/main/java/com/comphenix/protocol/wrappers/TroveWrapper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/TroveWrapper.java
rename to src/main/java/com/comphenix/protocol/wrappers/TroveWrapper.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/Vector3F.java b/src/main/java/com/comphenix/protocol/wrappers/Vector3F.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/Vector3F.java
rename to src/main/java/com/comphenix/protocol/wrappers/Vector3F.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedAttribute.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedAttribute.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedAttribute.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedAttribute.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedAttributeModifier.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedAttributeModifier.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedAttributeModifier.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedAttributeModifier.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedBlockData.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedBlockData.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedBlockData.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedBlockData.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedChatComponent.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedChatComponent.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedChatComponent.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedChatComponent.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedChunkCoordinate.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedChunkCoordinate.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedChunkCoordinate.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedChunkCoordinate.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedDataWatcher.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedDataWatcher.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedDataWatcher.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedDataWatcher.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedGameProfile.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedGameProfile.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedGameProfile.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedGameProfile.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedIntHashMap.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedIntHashMap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedIntHashMap.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedIntHashMap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedParticle.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedParticle.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedParticle.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedParticle.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedServerPing.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedServerPing.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedServerPing.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedServerPing.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedSignedProperty.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedSignedProperty.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedSignedProperty.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedSignedProperty.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedStatistic.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedStatistic.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedStatistic.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedStatistic.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedWatchableObject.java b/src/main/java/com/comphenix/protocol/wrappers/WrappedWatchableObject.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/WrappedWatchableObject.java
rename to src/main/java/com/comphenix/protocol/wrappers/WrappedWatchableObject.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/AbstractConverted.java b/src/main/java/com/comphenix/protocol/wrappers/collection/AbstractConverted.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/AbstractConverted.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/AbstractConverted.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/BiFunction.java b/src/main/java/com/comphenix/protocol/wrappers/collection/BiFunction.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/BiFunction.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/BiFunction.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/CachedCollection.java b/src/main/java/com/comphenix/protocol/wrappers/collection/CachedCollection.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/CachedCollection.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/CachedCollection.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/CachedSet.java b/src/main/java/com/comphenix/protocol/wrappers/collection/CachedSet.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/CachedSet.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/CachedSet.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedCollection.java b/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedCollection.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedCollection.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedCollection.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedList.java b/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedList.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedList.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedList.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMap.java b/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMap.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMultimap.java b/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMultimap.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMultimap.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedMultimap.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedSet.java b/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedSet.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedSet.java
rename to src/main/java/com/comphenix/protocol/wrappers/collection/ConvertedSet.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/MemoryElement.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/MemoryElement.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/MemoryElement.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/MemoryElement.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NameProperty.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NameProperty.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NameProperty.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NameProperty.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtBase.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtBase.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtBase.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NbtBase.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtCompound.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtCompound.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtCompound.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NbtCompound.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtFactory.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtFactory.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtFactory.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NbtFactory.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtList.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtList.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtList.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NbtList.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtType.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtType.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtType.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NbtType.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtVisitor.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtVisitor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtVisitor.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NbtVisitor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtWrapper.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtWrapper.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/NbtWrapper.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/NbtWrapper.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/TileEntityAccessor.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/TileEntityAccessor.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/TileEntityAccessor.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/TileEntityAccessor.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedCompound.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedCompound.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedCompound.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedCompound.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedElement.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedElement.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedElement.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedElement.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedList.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedList.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedList.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/WrappedList.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtBinarySerializer.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtBinarySerializer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtBinarySerializer.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtBinarySerializer.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializer.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializer.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializer.java
diff --git a/modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtTextSerializer.java b/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtTextSerializer.java
similarity index 100%
rename from modules/API/src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtTextSerializer.java
rename to src/main/java/com/comphenix/protocol/wrappers/nbt/io/NbtTextSerializer.java
diff --git a/modules/ProtocolLib/src/main/resources/config.yml b/src/main/resources/config.yml
similarity index 100%
rename from modules/ProtocolLib/src/main/resources/config.yml
rename to src/main/resources/config.yml
diff --git a/modules/ProtocolLib/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
similarity index 100%
rename from modules/ProtocolLib/src/main/resources/plugin.yml
rename to src/main/resources/plugin.yml
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/integration/protocol/SimpleCraftBukkitITCase.java b/src/test/java/com/comphenix/integration/protocol/SimpleCraftBukkitITCase.java
similarity index 98%
rename from modules/ProtocolLib/src/test/java/com/comphenix/integration/protocol/SimpleCraftBukkitITCase.java
rename to src/test/java/com/comphenix/integration/protocol/SimpleCraftBukkitITCase.java
index 209f0e59..39b95a14 100644
--- a/modules/ProtocolLib/src/test/java/com/comphenix/integration/protocol/SimpleCraftBukkitITCase.java
+++ b/src/test/java/com/comphenix/integration/protocol/SimpleCraftBukkitITCase.java
@@ -30,6 +30,7 @@ import com.comphenix.protocol.reflect.FieldUtils;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
+// TODO Migrate this to Gradle if necessary
// Damn final classes ...
@RunWith(org.powermock.modules.junit4.PowerMockRunner.class)
@PowerMockIgnore({ "org.apache.log4j.*", "org.apache.logging.*", "org.bukkit.craftbukkit.libs.jline.*" })
@@ -51,7 +52,7 @@ public class SimpleCraftBukkitITCase {
* @throws IOException Unable to setup server.
* @throws InterruptedException Thread interrupted.
*/
- @BeforeClass
+ //@BeforeClass
public static void setupCraftBukkit() throws Exception {
setupPlugins();
@@ -89,12 +90,12 @@ public class SimpleCraftBukkitITCase {
/**
* Close the CraftBukkit server when they're done.
*/
- @AfterClass
+ //@AfterClass
public static void shutdownCraftBukkit() {
Bukkit.shutdown();
}
- @Test
+ //@Test
public void testPingPacket() throws Throwable {
TestPingPacket.newTest().startTest(FAKE_PLUGIN);
}
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/integration/protocol/SimpleMinecraftClient.java b/src/test/java/com/comphenix/integration/protocol/SimpleMinecraftClient.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/integration/protocol/SimpleMinecraftClient.java
rename to src/test/java/com/comphenix/integration/protocol/SimpleMinecraftClient.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/integration/protocol/TestPingPacket.java b/src/test/java/com/comphenix/integration/protocol/TestPingPacket.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/integration/protocol/TestPingPacket.java
rename to src/test/java/com/comphenix/integration/protocol/TestPingPacket.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/BukkitInitialization.java b/src/test/java/com/comphenix/protocol/BukkitInitialization.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/BukkitInitialization.java
rename to src/test/java/com/comphenix/protocol/BukkitInitialization.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/MinecraftVersionTest.java b/src/test/java/com/comphenix/protocol/MinecraftVersionTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/MinecraftVersionTest.java
rename to src/test/java/com/comphenix/protocol/MinecraftVersionTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/PacketTypeTest.java b/src/test/java/com/comphenix/protocol/PacketTypeTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/PacketTypeTest.java
rename to src/test/java/com/comphenix/protocol/PacketTypeTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/concurrency/BlockingHashMapTest.java b/src/test/java/com/comphenix/protocol/concurrency/BlockingHashMapTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/concurrency/BlockingHashMapTest.java
rename to src/test/java/com/comphenix/protocol/concurrency/BlockingHashMapTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java b/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/events/PacketContainerTest.java
rename to src/test/java/com/comphenix/protocol/events/PacketContainerTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/injector/PluginVerifierTest.java b/src/test/java/com/comphenix/protocol/injector/PluginVerifierTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/injector/PluginVerifierTest.java
rename to src/test/java/com/comphenix/protocol/injector/PluginVerifierTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/injector/SortedCopyOnWriteArrayTest.java b/src/test/java/com/comphenix/protocol/injector/SortedCopyOnWriteArrayTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/injector/SortedCopyOnWriteArrayTest.java
rename to src/test/java/com/comphenix/protocol/injector/SortedCopyOnWriteArrayTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/injector/WirePacketTest.java b/src/test/java/com/comphenix/protocol/injector/WirePacketTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/injector/WirePacketTest.java
rename to src/test/java/com/comphenix/protocol/injector/WirePacketTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/reflect/accessors/AccessorsTest.java b/src/test/java/com/comphenix/protocol/reflect/accessors/AccessorsTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/reflect/accessors/AccessorsTest.java
rename to src/test/java/com/comphenix/protocol/reflect/accessors/AccessorsTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/reflect/cloning/AggregateClonerTest.java b/src/test/java/com/comphenix/protocol/reflect/cloning/AggregateClonerTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/reflect/cloning/AggregateClonerTest.java
rename to src/test/java/com/comphenix/protocol/reflect/cloning/AggregateClonerTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/updater/UpdaterTest.java b/src/test/java/com/comphenix/protocol/updater/UpdaterTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/updater/UpdaterTest.java
rename to src/test/java/com/comphenix/protocol/updater/UpdaterTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftMethodsTest.java b/src/test/java/com/comphenix/protocol/utility/MinecraftMethodsTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftMethodsTest.java
rename to src/test/java/com/comphenix/protocol/utility/MinecraftMethodsTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java b/src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java
rename to src/test/java/com/comphenix/protocol/utility/MinecraftReflectionTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/SnapshotVersionTest.java b/src/test/java/com/comphenix/protocol/utility/SnapshotVersionTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/SnapshotVersionTest.java
rename to src/test/java/com/comphenix/protocol/utility/SnapshotVersionTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java b/src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java
rename to src/test/java/com/comphenix/protocol/utility/StreamSerializerTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/TestUtils.java b/src/test/java/com/comphenix/protocol/utility/TestUtils.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/utility/TestUtils.java
rename to src/test/java/com/comphenix/protocol/utility/TestUtils.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/BukkitConvertersTest.java b/src/test/java/com/comphenix/protocol/wrappers/BukkitConvertersTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/BukkitConvertersTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/BukkitConvertersTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java b/src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/ChunkCoordIntPairTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/CloningTest.java b/src/test/java/com/comphenix/protocol/wrappers/CloningTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/CloningTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/CloningTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java b/src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/EnumWrappersTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/MultiBlockChangeTest.java b/src/test/java/com/comphenix/protocol/wrappers/MultiBlockChangeTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/MultiBlockChangeTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/MultiBlockChangeTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/PlayerInfoDataTest.java b/src/test/java/com/comphenix/protocol/wrappers/PlayerInfoDataTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/PlayerInfoDataTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/PlayerInfoDataTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedAttributeTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedBlockDataTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedBlockDataTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedBlockDataTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedBlockDataTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedChatComponentTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedChatComponentTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedChatComponentTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedChatComponentTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedDataWatcherTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedDataWatcherTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedDataWatcherTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedDataWatcherTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedGameProfileTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedGameProfileTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedGameProfileTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedGameProfileTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedIntHashMapTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedIntHashMapTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedIntHashMapTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedIntHashMapTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedParticleTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedParticleTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedParticleTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedParticleTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedServerPingTest.java b/src/test/java/com/comphenix/protocol/wrappers/WrappedServerPingTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/WrappedServerPingTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/WrappedServerPingTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtCompoundTest.java b/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtCompoundTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtCompoundTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/nbt/NbtCompoundTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java b/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/nbt/NbtFactoryTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/TileEntityTest.java b/src/test/java/com/comphenix/protocol/wrappers/nbt/TileEntityTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/TileEntityTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/nbt/TileEntityTest.java
diff --git a/modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializerTest.java b/src/test/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializerTest.java
similarity index 100%
rename from modules/ProtocolLib/src/test/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializerTest.java
rename to src/test/java/com/comphenix/protocol/wrappers/nbt/io/NbtConfigurationSerializerTest.java
diff --git a/modules/ProtocolLib/src/test/resources/tux.png b/src/test/resources/tux.png
similarity index 100%
rename from modules/ProtocolLib/src/test/resources/tux.png
rename to src/test/resources/tux.png