diff --git a/.gitignore b/.gitignore
index 116cabd34..1fd8d24aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,17 +3,20 @@
/.settings
/eclipse
/.idea
-/*.iml
-/*.ipr
-/*.iws
+*.iml
+*.ipr
+*.iws
/bin
/build
/target
/gradle
-/.gradle
+.gradle
/forge-download
/out
+/*/build
+/run
+/worldedit-forge/run
/dependency-reduced-pom.xml
-*-private.sh
+*-private.sh
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index a23f1264c..7b43b6822 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,5 @@ before_install: chmod +x gradlew
install: ./gradlew setupCIWorkspace -S
matrix:
include:
- - jdk: oraclejdk7
- script: mvn clean package
- jdk: oraclejdk7
script: ./gradlew build -S
\ No newline at end of file
diff --git a/COMPILING.md b/COMPILING.md
index a5dc67273..80e20b391 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -1,76 +1,42 @@
Compiling
=========
-You can (most easily) compile WorldEdit using one of the build scripts.
+You can compile WorldEdit as long as you have the [Java Development Kit (JDK)](http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html) for Java 7 or newer. You only need one version of JDK installed.
-* **Maven** is for compiling **API**, **Bukkit**, and **Spout** versions
-* **Gradle** is for the **Forge** version
+The build process uses Gradle, which you do *not* need to download. WorldEdit is a multi-module project with three modules:
-WorldEdit is written and targetted for Java 6, but you can use newer
-versions of Java to compile WorldEdit, though the compiler will give
-you warnings. However, if you plan on compiling for Forge, you have
-no choice in the matter and you **must** use Java 7 (make sure that it
-is set as your 'default' Java too, if you have multiple versions).
+* `worldedit-core` contains WorldEdit
+* `worldedit-bukkit` is the Bukkit plugin
+* `worldedit-forge` is the Forge mod
-The Java Development Kit is required, so install the latest version
-either from Oracle's website or, if you're a Linux/BSD user, you
-can also try using OpenJDK.
+## To compile...
-* [Get Oracle JDK 7 and 8](http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html)
-* [Get Oracle JDK 6](http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html)
+### On Windows
-Dependencies
-------------
+1. Shift + right click the folder with WorldEdit's files and click "Open command prompt".
+2. `gradlew clean setupDecompWorkspace`
+3. `gradlew build`
-WorldEdit requires several other dependencies, but thankfully, the build
-scripts provided will automatically download these for you. If, for some
-reason, compilation fails due to a missing dependency, please notify us.
+### On Linux, BSD, or Mac OS X
-Maven
------
+1. In your terminal, navigate to the folder with WorldEdit's files (`cd /folder/of/worldedit/files`)
+2. `./gradlew clean setupDevWorkspace`
+3. `./gradlew build`
-**Don't have Maven?** [Download Maven](http://maven.apache.org/download.cgi)
-from the Maven website.
+## Then you will find...
-From WorldEdit's directory, execute the following command to compile a
-Bukkit version:
+You will find:
- mvn clean package
+* The core WorldEdit API in **worldedit-core/build/libs**
+* WorldEdit for Bukkit in **worldedit-bukkit/build/libs**
+* WorldEdit for Forge in **worldedit-forge/build/libs**
-Once done, the *target/* folder will contain a .jar file and release .zip
-files.
+If you want to use WorldEdit, use the `-shadow` version.
-### Other Variations
+(The -shadow version includes WorldEdit + necessary libraries.)
-By default, the *Bukkit* profile is enabled, but you can disable it
-and enable other profiles.
+## Other commands
-* `mvn clean package -P !bukkit` for just the API
-* `mvn clean package -P !bukkit -P spout` for the Spout version
-
-Gradle
-------
-
-**Note:** As mentioned previously, you need Java 7 (a recent version) to
-execute the following steps successfully. Your `JAVA_HOME` environment
-variable needs to be set to the path of JDK 7+.
-
-**Don't have Gradle?** Replace `gradle` with `gradlew` below, which will
-automatically download a copy of Gradle for you.
-
-From WorldEdit's directory, clean the cache first with the following
-command:
-
- gradle cleancache --refresh-dependencies
-
-Build WorldEdit for Forge with:
-
- gradle setupDecompWorkspace
- gradle build
-
-Once complete, you will find the release .jar in the folder *build/libs*.
-
-### Other Tasks
-
-* `gradle idea` will generate an [IntelliJ IDEA](http://www.jetbrains.com/idea/) workspace
-* `gradle eclipse` will generate an [Eclipse](https://www.eclipse.org/downloads/) workspace
+* `gradlew idea` will generate an [IntelliJ IDEA](http://www.jetbrains.com/idea/) module for the Forge module.
+* `gradlew eclipse` will generate an [Eclipse](https://www.eclipse.org/downloads/) project for the Forge version.
+* Use `setupCIWorkspace` instead of `setupDevWorkspace` if you are doing this on a CI server.
diff --git a/build.gradle b/build.gradle
index 13c3d703b..4ffddfa9a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,121 +1,126 @@
-/*
- * Build script for the Forge version of WorldEdit
- */
+println """
+*******************************************
+ You are building WorldEdit!
+
+ If you encounter trouble:
+ 1) Read COMPILING.md if you haven't yet
+ 2) Try running 'build' in a separate Gradle run
+ 3) Use gradlew and not gradle
+ 4) If you still need help, ask on IRC! irc.esper.net #sk89q
+
+ Output files will be in [subproject]/build/libs
+*******************************************
+"""
-// Add ForgeGradle as a dependency for the build script
buildscript {
repositories {
mavenCentral()
- maven {
- name = "forge"
- url = "http://files.minecraftforge.net/maven"
- }
- maven {
- name = "sonatype"
- url = "https://oss.sonatype.org/content/repositories/snapshots/"
- }
+ maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
jcenter()
}
dependencies {
- classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
classpath 'com.github.jengelman.gradle.plugins:shadow:1.1.1'
+ classpath 'org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1'
+ classpath 'org.ajoberstar:gradle-git:0.12.0'
}
}
-apply plugin: 'java'
-apply plugin: 'maven'
-apply plugin: 'forge'
-apply plugin: 'com.github.johnrengelman.shadow'
+if (!project.hasProperty("artifactory_contextUrl")) ext.artifactory_contextUrl = "http://localhost"
+if (!project.hasProperty("artifactory_user")) ext.artifactory_user = "guest"
+if (!project.hasProperty("artifactory_password")) ext.artifactory_password = ""
-group = 'com.sk89q'
-version = '6.0.0-SNAPSHOT' + System.getProperty("worldedit.build.suffix", "")
-archivesBaseName = "worldedit-forge"
-
-description = "An in-game voxel map editor for Minecraft."
-
-sourceCompatibility = 1.6
-targetCompatibility = 1.6
-
-repositories {
- mavenCentral()
- maven { url "http://repo.bukkit.org/content/groups/public" }
- maven { url "http://maven.sk89q.com/repo/" }
- maven { url "http://repo.maven.apache.org/maven2" }
+if (!project.hasProperty("gitCommitHash")) {
+ try {
+ def repo = Grgit.open(project.file('.'))
+ ext.gitCommitHash = repo.head().abbreviatedId
+ } catch (Exception e) {
+ ext.gitCommitHash = "no_git_id"
+ }
}
-dependencies {
- compile group: 'de.schlichtherle', name: 'truezip', version:'6.8.3'
- compile group: 'rhino', name: 'js', version:'1.7R2'
- compile group: 'org.yaml', name: 'snakeyaml', version:'1.9'
- compile group: 'com.google.guava', name: 'guava', version:'10.0.1'
- compile group: 'com.sk89q', name: 'jchronic', version:'0.2.4a'
- compile group: 'com.google.code.findbugs', name: 'jsr305', version: '1.3.9'
- compile group: 'com.thoughtworks.paranamer', name: 'paranamer', version: '2.6'
- compile group: 'com.google.code.gson', name: 'gson', version: '2.2.4'
- compile group: 'com.sk89q.lib', name: 'jlibnoise', version: '1.0.0'
- //compile group: 'net.sf.trove4j', name: 'trove4j', version: '3.0.3'
- testCompile group: 'org.mockito', name: 'mockito-core', version:'1.9.0-rc1'
-}
+subprojects {
+ apply plugin: 'java'
+ apply plugin: 'maven'
+ apply plugin: 'checkstyle'
+ apply plugin: 'com.github.johnrengelman.shadow'
+ apply plugin: 'com.jfrog.artifactory-upload'
-sourceSets {
- main {
- java {
- srcDir 'src/main/java'
- srcDir 'src/legacy/java'
- srcDir 'src/forge/java'
- }
- resources {
- srcDir 'src/main/resources'
- srcDir 'src/forge/resources'
+ group = 'com.sk89q.worldedit'
+ version = '6.0.0-SNAPSHOT'
+ ext.internalVersion = version + ";" + gitCommitHash
+
+ sourceCompatibility = 1.6
+ targetCompatibility = 1.6
+
+ checkstyle.configFile = new File(rootProject.projectDir, "config/checkstyle/checkstyle.xml")
+
+ repositories {
+ mavenCentral()
+ maven { url "http://repo.bukkit.org/content/groups/public" }
+ maven { url "http://maven.sk89q.com/repo/" }
+ maven { url "http://repo.maven.apache.org/maven2" }
+ }
+
+ if (JavaVersion.current().isJava8Compatible()) {
+ // Java 8 turns on doclint which we fail
+ tasks.withType(Javadoc) {
+ options.addStringOption('Xdoclint:none', '-quiet')
}
}
-}
-minecraft {
- ext.forgeVersion = "10.13.1.1225"
- version = "1.7.10-$forgeVersion"
-
- replaceIn "com/sk89q/worldedit/forge/ForgeWorldEdit.java"
- replace "%VERSION%", project.version
-}
-
-processResources {
- from (sourceSets.main.resources.srcDirs) {
- expand 'version': project.version, 'mcVersion': project.minecraft.version,
- 'forgeVersion': project.minecraft.forgeVersion
- include 'mcmod.info'
+ task sourcesJar(type: Jar, dependsOn: classes) {
+ classifier = 'sources'
+ from sourceSets.main.allSource
}
- from (sourceSets.main.resources.srcDirs) {
- exclude 'mcmod.info'
+ task javadocJar(type: Jar, dependsOn: javadoc) {
+ classifier = 'javadoc'
+ from javadoc.destinationDir
}
-}
-// shade needed runtime dependencies
-shadowJar {
- classifier 'shadow'
- dependencies {
- include(dependency('com.sk89q:jchronic:0.2.4a'))
- include(dependency('com.thoughtworks.paranamer:paranamer:2.6'))
- include(dependency('com.sk89q.lib:jlibnoise:1.0.0'))
+ artifacts {
+ archives jar
+ archives sourcesJar
+ archives javadocJar
}
- exclude 'GradleStart**'
- exclude '.cache'
-}
-// ensure reobf happens
-reobf.reobf(shadowJar) { spec ->
- spec.classpath = sourceSets.main.compileClasspath;
-}
+ build.dependsOn(checkstyleMain)
+ build.dependsOn(checkstyleTest)
+ build.dependsOn(sourcesJar)
+ build.dependsOn(javadocJar)
-task deleteOrig(type: Delete) {
- delete project.tasks.jar.archivePath.getPath()
-}
+ shadowJar {
+ classifier 'dist'
+ dependencies {
+ include(dependency('com.sk89q:jchronic:0.2.4a'))
+ include(dependency('com.thoughtworks.paranamer:paranamer:2.6'))
+ include(dependency('com.sk89q.lib:jlibnoise:1.0.0'))
+ }
+ exclude 'GradleStart**'
+ exclude '.cache'
+ exclude 'LICENSE*'
+ }
-task deleteShaded(type: Delete) {
- delete project.tasks.shadowJar.archivePath.getPath()
-}
+ artifactory {
+ contextUrl = "${artifactory_contextUrl}"
+ publish {
+ repository {
+ repoKey = project.version.contains("SNAPSHOT") ? 'libs-snapshot-local' : 'libs-release-local'
+ username = "${artifactory_user}"
+ password = "${artifactory_password}"
+ maven = true
+
+ }
+ }
-shadowJar.dependsOn(deleteShaded)
-build.dependsOn(shadowJar)
+ resolve {
+ repository {
+ repoKey = 'repo'
+ username = "${artifactory_user}"
+ password = "${artifactory_password}"
+ maven = true
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
new file mode 100644
index 000000000..1e33564c4
--- /dev/null
+++ b/config/checkstyle/checkstyle.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/build/header.txt b/config/checkstyle/header.txt
similarity index 100%
rename from src/main/build/header.txt
rename to config/checkstyle/header.txt
diff --git a/src/main/build/import-control.xml b/config/checkstyle/import-control.xml
similarity index 100%
rename from src/main/build/import-control.xml
rename to config/checkstyle/import-control.xml
diff --git a/gradlew b/gradlew
old mode 100644
new mode 100755
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 360a4e04b..000000000
--- a/pom.xml
+++ /dev/null
@@ -1,673 +0,0 @@
-
- 4.0.0
- com.sk89q
- worldedit
- 6.0.0-SNAPSHOT
- jar
-
-
-
- UTF-8
-
-
-
-
- WorldEdit
- 2010
- http://wiki.sk89q.com/wiki/WorldEdit
- An in-game voxel map editor for Minecraft.
-
-
-
- GNU General Public License 2.0
- LICENSE.txt
- repo
- License on WorldEdit
-
-
- GNU Lesser General Public License 3.0
- LICENSE_LGPL.txt
- repo
- License on all new contributions
-
-
-
-
- YouTrack
- http://youtrack.sk89q.com
-
-
-
- TeamCity
- http://builds.enginehub.org
-
-
-
- scm:git:git://github.com/sk89q/worldedit.git
- scm:git:git@github.com:sk89q/worldedit.git
- https://github.com/sk89q/worldedit
- master
-
-
-
-
- Developer Discussion
- https://groups.google.com/d/forum/sk-dev-discuss
-
-
-
-
-
-
-
- sk89q-docs-upload
- ftp://sk89q-maven-deploy/worldedit/
-
-
-
-
- maven.sk89q.com
- http://maven.sk89q.com/artifactory/libs-release-local
-
-
- maven.sk89q.com-snapshot
- http://maven.sk89q.com/artifactory/libs-snapshot-local
-
-
-
-
-
-
-
- maven.sk89q.com
- http://maven.sk89q.com/repo/
-
-
-
-
-
- sk89q-repo
- http://maven.sk89q.com/repo/
-
-
-
-
-
-
- de.schlichtherle
- truezip
- 6.8.3
- compile
- jar
-
-
-
-
- rhino
- js
- 1.7R2
- compile
- jar
-
-
-
-
- org.yaml
- snakeyaml
- 1.9
- jar
- compile
- true
-
-
-
-
- com.google.guava
- guava
- 10.0.1
- compile
- jar
-
-
-
-
- com.google.code.gson
- gson
- 2.2.4
- true
-
-
-
-
-
-
-
- com.google.code.findbugs
- jsr305
- 1.3.9
-
-
-
-
- com.sk89q
- jchronic
- 0.2.4a
- compile
- jar
-
-
-
-
- com.thoughtworks.paranamer
- paranamer
- 2.6
- compile
- jar
-
-
-
-
- com.sk89q.lib
- jlibnoise
- 1.0.0
- true
-
-
-
-
- org.mockito
- mockito-core
- 1.9.0-rc1
- test
- jar
-
-
-
-
-
-
- install
- ${basedir}/src/main/java/
-
-
-
-
- .
- false
- ${basedir}/src/main/resources/
-
- **/*.json
-
-
-
-
-
-
-
- org.apache.maven.wagon
- wagon-ftp
- 1.0-beta-6
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- 1.7
-
-
- add-source
- generate-sources
-
- add-source
-
-
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-checkstyle-plugin
- 2.12
-
-
- verify-style
- validate
-
- check
-
-
-
-
- ${basedir}/src
- true
- true
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 2.3.2
-
-
- 1.6
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 2.3.1
-
-
- true
-
- true
- true
-
-
- truezip.jar WorldEdit/truezip.jar js.jar WorldEdit/js.jar
-
- ${project.version}
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 1.7.1
-
-
- package
-
- shade
-
-
- true
-
-
- com.sk89q:jchronic
- com.thoughtworks.paranamer:paranamer
- com.google.code.gson:gson
- com.sk89q.lib:jlibnoise
-
-
-
-
-
-
- com.google.gson
- com.sk89q.worldedit.internal.gson
-
-
-
-
-
-
-
-
-
- maven-assembly-plugin
- 2.2-beta-2
-
- ${basedir}/src/main/assembly/default.xml
-
-
-
- release
- package
-
- single
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-release-plugin
- 2.3.2
-
- assembly:assembly
- assembly:assembly
- @{project.version}
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.7.2
-
-
- **/TestOfflinePermissible.java
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.2.1
-
-
- attach-sources
-
- jar
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.8.1
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-site-plugin
- 3.1
-
-
-
-
- org.apache.maven.plugins
- maven-project-info-reports-plugin
- 2.5
-
-
-
- license
- index
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.8.1
-
-
-
-
-
-
-
-
-
-
-
-
- bukkit
-
-
-
- !skipBukkitProfile
-
-
-
-
-
- bukkit-repo
- http://repo.bukkit.org/content/groups/public
-
-
-
-
-
-
- com.sk89q
- dummypermscompat
- 1.7
- compile
- jar
- true
-
-
-
-
- org.sk89q.bukkit
- bukkit-classloader-check
- 1.7.2-R0.3
- runtime
- jar
- true
-
-
-
-
-
- org.bukkit
- bukkit
- 1.7.2-R0.3
- compile
- jar
- true
-
-
-
-
-
-
-
- .
- true
- ${basedir}/src/bukkit/resources/
-
- plugin.yml
-
-
-
-
-
- defaults/
- true
- ${basedir}/src/bukkit/resources/
-
- config.yml
-
-
-
-
-
- .
- false
- ${basedir}/src/bukkit/resources/
-
- **/*.class
-
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- 1.7
-
-
- add-bukkit-sources
- generate-sources
-
- add-source
-
-
-
-
-
-
-
-
- add-bukkit-test-sources
- generate-sources
-
- add-test-source
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- java8-disable-doclint
-
- [1.8,
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
-
- -Xdoclint:none
-
-
-
-
-
-
-
diff --git a/settings.gradle b/settings.gradle
index e06448f48..271359482 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1 +1,3 @@
rootProject.name = 'worldedit'
+
+include 'worldedit-core', 'worldedit-bukkit', 'worldedit-forge'
\ No newline at end of file
diff --git a/worldedit-bukkit/build.gradle b/worldedit-bukkit/build.gradle
new file mode 100644
index 000000000..315903b56
--- /dev/null
+++ b/worldedit-bukkit/build.gradle
@@ -0,0 +1,36 @@
+dependencies {
+ compile project(':worldedit-core')
+ compile 'com.sk89q:dummypermscompat:1.7'
+ compile 'org.sk89q.bukkit:bukkit-classloader-check:1.7.2-R0.3'
+ compile 'org.bukkit:bukkit:1.7.2-R0.3'
+ testCompile 'org.mockito:mockito-core:1.9.0-rc1'
+}
+
+processResources {
+ from (sourceSets.main.resources.srcDirs) {
+ expand 'internalVersion': project.internalVersion
+ include 'plugin.yml'
+ }
+
+ from (sourceSets.main.resources.srcDirs) {
+ exclude 'plugin.yml'
+ }
+}
+
+jar {
+ manifest {
+ attributes("Class-Path": "truezip.jar WorldEdit/truezip.jar js.jar WorldEdit/js.jar",
+ "WorldEdit-Version": version)
+ }
+}
+
+shadowJar {
+ dependencies {
+ include(dependency(':worldedit-core'))
+ include(dependency('com.google.code.gson:gson:2.2.4'))
+ }
+
+ relocate('com.google.gson', 'com.sk89q.worldedit.internal.gson')
+}
+
+build.dependsOn(shadowJar)
diff --git a/src/bukkit/java/com/sk89q/bukkit/util/CommandInfo.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInfo.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/bukkit/util/CommandInfo.java
rename to worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInfo.java
diff --git a/src/bukkit/java/com/sk89q/bukkit/util/CommandInspector.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInspector.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/bukkit/util/CommandInspector.java
rename to worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandInspector.java
diff --git a/src/bukkit/java/com/sk89q/bukkit/util/CommandRegistration.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandRegistration.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/bukkit/util/CommandRegistration.java
rename to worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandRegistration.java
diff --git a/src/bukkit/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java
rename to worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/CommandsManagerRegistration.java
diff --git a/src/bukkit/java/com/sk89q/bukkit/util/DynamicPluginCommand.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/bukkit/util/DynamicPluginCommand.java
rename to worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommand.java
diff --git a/src/bukkit/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java
rename to worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/DynamicPluginCommandHelpTopic.java
diff --git a/src/bukkit/java/com/sk89q/bukkit/util/FallbackRegistrationListener.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/FallbackRegistrationListener.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/bukkit/util/FallbackRegistrationListener.java
rename to worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/FallbackRegistrationListener.java
diff --git a/src/bukkit/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/ConfigurationPermissionsResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/DinnerPermsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/DinnerPermsResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/DinnerPermsResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/DinnerPermsResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/FlatFilePermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/FlatFilePermissionsResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/GroupManagerResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/GroupManagerResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/GroupManagerResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/GroupManagerResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/NijiPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/NijiPermissionsResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/PermissionsExResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsExResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/PermissionsExResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsExResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/PermissionsProvider.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsProvider.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/PermissionsProvider.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsProvider.java
diff --git a/src/bukkit/java/com/sk89q/wepif/PermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/PermissionsResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/PermissionsResolverManager.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/PermissionsResolverManager.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java
diff --git a/src/bukkit/java/com/sk89q/wepif/PluginPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/PluginPermissionsResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/PluginPermissionsResolver.java
diff --git a/src/bukkit/java/com/sk89q/wepif/WEPIFRuntimeException.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/WEPIFRuntimeException.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/WEPIFRuntimeException.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/WEPIFRuntimeException.java
diff --git a/src/bukkit/java/com/sk89q/wepif/bPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/bPermissionsResolver.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/wepif/bPermissionsResolver.java
rename to worldedit-bukkit/src/main/java/com/sk89q/wepif/bPermissionsResolver.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitBiomeRegistry.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandSender.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitEntity.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitEntity.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitEntityType.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntityType.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitEntityType.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntityType.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayerBlockBag.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitUtil.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitUtil.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitUtil.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitUtil.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitWorld.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitWorldData.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorldData.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/BukkitWorldData.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorldData.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/EditSessionBlockChangeDelegate.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditAPI.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditAPI.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditAPI.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditAPI.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditListener.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditListener.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/WorldUnloadedException.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldUnloadedException.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/WorldUnloadedException.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldUnloadedException.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/AdapterLoadException.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitEntity.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitEntity.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitEntity.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitEntity.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitExpOrb.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitExpOrb.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitExpOrb.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitExpOrb.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitItem.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitItem.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitItem.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitItem.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitPainting.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitPainting.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/entity/BukkitPainting.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/entity/BukkitPainting.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/selections/CuboidSelection.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/CuboidSelection.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/selections/CuboidSelection.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/CuboidSelection.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/selections/CylinderSelection.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/CylinderSelection.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/selections/CylinderSelection.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/CylinderSelection.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/selections/Polygonal2DSelection.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/Polygonal2DSelection.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/selections/Polygonal2DSelection.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/Polygonal2DSelection.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/selections/RegionSelection.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/RegionSelection.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/selections/RegionSelection.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/RegionSelection.java
diff --git a/src/bukkit/java/com/sk89q/worldedit/bukkit/selections/Selection.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/Selection.java
similarity index 100%
rename from src/bukkit/java/com/sk89q/worldedit/bukkit/selections/Selection.java
rename to worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/selections/Selection.java
diff --git a/src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_6_R3.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_6_R3.class
similarity index 100%
rename from src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_6_R3.class
rename to worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_6_R3.class
diff --git a/src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R2.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R2.class
similarity index 100%
rename from src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R2.class
rename to worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R2.class
diff --git a/src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R3.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R3.class
similarity index 100%
rename from src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R3.class
rename to worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R3.class
diff --git a/src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R4.class b/worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R4.class
similarity index 100%
rename from src/bukkit/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R4.class
rename to worldedit-bukkit/src/main/resources/com/sk89q/worldedit/bukkit/adapter/impl/CraftBukkit_v1_7_R4.class
diff --git a/src/bukkit/resources/config.yml b/worldedit-bukkit/src/main/resources/config.yml
similarity index 100%
rename from src/bukkit/resources/config.yml
rename to worldedit-bukkit/src/main/resources/config.yml
diff --git a/src/bukkit/resources/nmsblocks/CBXNmsBlock_1710.class b/worldedit-bukkit/src/main/resources/nmsblocks/CBXNmsBlock_1710.class
similarity index 100%
rename from src/bukkit/resources/nmsblocks/CBXNmsBlock_1710.class
rename to worldedit-bukkit/src/main/resources/nmsblocks/CBXNmsBlock_1710.class
diff --git a/src/bukkit/resources/plugin.yml b/worldedit-bukkit/src/main/resources/plugin.yml
similarity index 88%
rename from src/bukkit/resources/plugin.yml
rename to worldedit-bukkit/src/main/resources/plugin.yml
index c94c5c494..d071c6f04 100644
--- a/src/bukkit/resources/plugin.yml
+++ b/worldedit-bukkit/src/main/resources/plugin.yml
@@ -1,6 +1,6 @@
name: WorldEdit
main: com.sk89q.worldedit.bukkit.WorldEditPlugin
-version: ${project.version}
+version: "${internalVersion}"
softdepend: [Spout] #hack to fix trove errors
# Permissions aren't here. Read http://wiki.sk89q.com/wiki/WEPIF/DinnerPerms
diff --git a/src/bukkit-test/java/com/sk89q/wepif/DinnerPermsResolverTest.java b/worldedit-bukkit/src/test/java/com/sk89q/wepif/DinnerPermsResolverTest.java
similarity index 100%
rename from src/bukkit-test/java/com/sk89q/wepif/DinnerPermsResolverTest.java
rename to worldedit-bukkit/src/test/java/com/sk89q/wepif/DinnerPermsResolverTest.java
diff --git a/src/bukkit-test/java/com/sk89q/wepif/TestOfflinePermissible.java b/worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java
similarity index 100%
rename from src/bukkit-test/java/com/sk89q/wepif/TestOfflinePermissible.java
rename to worldedit-bukkit/src/test/java/com/sk89q/wepif/TestOfflinePermissible.java
diff --git a/src/bukkit-test/java/com/sk89q/worldedit/bukkit/BukkitWorldTest.java b/worldedit-bukkit/src/test/java/com/sk89q/worldedit/bukkit/BukkitWorldTest.java
similarity index 100%
rename from src/bukkit-test/java/com/sk89q/worldedit/bukkit/BukkitWorldTest.java
rename to worldedit-bukkit/src/test/java/com/sk89q/worldedit/bukkit/BukkitWorldTest.java
diff --git a/worldedit-core/build.gradle b/worldedit-core/build.gradle
new file mode 100644
index 000000000..1d921489b
--- /dev/null
+++ b/worldedit-core/build.gradle
@@ -0,0 +1,27 @@
+dependencies {
+ compile 'de.schlichtherle:truezip:6.8.3'
+ compile 'rhino:js:1.7R2'
+ compile 'org.yaml:snakeyaml:1.9'
+ compile 'com.google.guava:guava:17.0'
+ compile 'com.sk89q:jchronic:0.2.4a'
+ compile 'com.google.code.findbugs:jsr305:1.3.9'
+ compile 'com.thoughtworks.paranamer:paranamer:2.6'
+ compile 'com.google.code.gson:gson:2.2.4'
+ compile 'com.sk89q.lib:jlibnoise:1.0.0'
+ //compile 'net.sf.trove4j:trove4j:3.0.3'
+ testCompile 'org.mockito:mockito-core:1.9.0-rc1'
+}
+
+sourceSets {
+ main {
+ java {
+ srcDir 'src/main/java'
+ srcDir 'src/legacy/java'
+ }
+ resources {
+ srcDir 'src/main/resources'
+ }
+ }
+}
+
+build.dependsOn(shadowJar)
diff --git a/src/legacy/java/com/sk89q/worldedit/bags/BlockBag.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/BlockBag.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/bags/BlockBag.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/BlockBag.java
diff --git a/src/legacy/java/com/sk89q/worldedit/bags/BlockBagException.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/BlockBagException.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/bags/BlockBagException.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/BlockBagException.java
diff --git a/src/legacy/java/com/sk89q/worldedit/bags/OutOfBlocksException.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/OutOfBlocksException.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/bags/OutOfBlocksException.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/OutOfBlocksException.java
diff --git a/src/legacy/java/com/sk89q/worldedit/bags/OutOfSpaceException.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/OutOfSpaceException.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/bags/OutOfSpaceException.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/OutOfSpaceException.java
diff --git a/src/legacy/java/com/sk89q/worldedit/bags/UnplaceableBlockException.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/UnplaceableBlockException.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/bags/UnplaceableBlockException.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/bags/UnplaceableBlockException.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/ChestBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/ChestBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/ChestBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/ChestBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/ContainerBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/ContainerBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/ContainerBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/ContainerBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/DispenserBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/DispenserBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/DispenserBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/DispenserBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/FurnaceBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/FurnaceBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/FurnaceBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/FurnaceBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/LazyBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/LazyBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/LazyBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/LazyBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/NoteBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/NoteBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/NoteBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/NoteBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java
diff --git a/src/legacy/java/com/sk89q/worldedit/data/DataException.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/data/DataException.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/data/DataException.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/data/DataException.java
diff --git a/src/legacy/java/com/sk89q/worldedit/foundation/Block.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/foundation/Block.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/foundation/Block.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/foundation/Block.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/AbstractMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/AbstractMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/AbstractMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/AbstractMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/BlockMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/BlockMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/BlockMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/BlockMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/BlockTypeMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/BlockTypeMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/BlockTypeMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/BlockTypeMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/CombinedMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/CombinedMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/CombinedMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/CombinedMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/DynamicRegionMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/DynamicRegionMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/DynamicRegionMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/DynamicRegionMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/ExistingBlockMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/ExistingBlockMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/ExistingBlockMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/ExistingBlockMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/FuzzyBlockMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/FuzzyBlockMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/FuzzyBlockMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/FuzzyBlockMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/InvertedBlockTypeMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/InvertedBlockTypeMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/InvertedBlockTypeMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/InvertedBlockTypeMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/InvertedMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/InvertedMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/InvertedMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/InvertedMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/Mask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/Mask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/Mask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/Mask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/RandomMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/RandomMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/RandomMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/RandomMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/RegionMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/RegionMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/RegionMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/RegionMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/SolidBlockMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/SolidBlockMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/SolidBlockMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/SolidBlockMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/masks/UnderOverlayMask.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/UnderOverlayMask.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/masks/UnderOverlayMask.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/masks/UnderOverlayMask.java
diff --git a/src/legacy/java/com/sk89q/worldedit/patterns/BlockChance.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/BlockChance.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/patterns/BlockChance.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/BlockChance.java
diff --git a/src/legacy/java/com/sk89q/worldedit/patterns/ClipboardPattern.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/ClipboardPattern.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/patterns/ClipboardPattern.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/ClipboardPattern.java
diff --git a/src/legacy/java/com/sk89q/worldedit/patterns/Pattern.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/Pattern.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/patterns/Pattern.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/Pattern.java
diff --git a/src/legacy/java/com/sk89q/worldedit/patterns/RandomFillPattern.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/RandomFillPattern.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/patterns/RandomFillPattern.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/RandomFillPattern.java
diff --git a/src/legacy/java/com/sk89q/worldedit/patterns/SingleBlockPattern.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/SingleBlockPattern.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/patterns/SingleBlockPattern.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/patterns/SingleBlockPattern.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/AbstractLegacyRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/AbstractLegacyRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/AbstractLegacyRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/AbstractLegacyRegionSelector.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegionSelector.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/CuboidRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/CuboidRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/CuboidRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/CuboidRegionSelector.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/CylinderRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/CylinderRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/CylinderRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/CylinderRegionSelector.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/EllipsoidRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/EllipsoidRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/EllipsoidRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/EllipsoidRegionSelector.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/ExtendingCuboidRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/ExtendingCuboidRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/ExtendingCuboidRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/ExtendingCuboidRegionSelector.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/Polygonal2DRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/Polygonal2DRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/Polygonal2DRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/Polygonal2DRegionSelector.java
diff --git a/src/legacy/java/com/sk89q/worldedit/regions/SphereRegionSelector.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/SphereRegionSelector.java
similarity index 100%
rename from src/legacy/java/com/sk89q/worldedit/regions/SphereRegionSelector.java
rename to worldedit-core/src/legacy/java/com/sk89q/worldedit/regions/SphereRegionSelector.java
diff --git a/src/main/assembly/default.xml b/worldedit-core/src/main/assembly/default.xml
similarity index 100%
rename from src/main/assembly/default.xml
rename to worldedit-core/src/main/assembly/default.xml
diff --git a/src/main/java/com/sk89q/jnbt/ByteArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/ByteArrayTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java
diff --git a/src/main/java/com/sk89q/jnbt/ByteTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/ByteTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java
diff --git a/src/main/java/com/sk89q/jnbt/CompoundTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/CompoundTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java
diff --git a/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java
diff --git a/src/main/java/com/sk89q/jnbt/DoubleTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/DoubleTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java
diff --git a/src/main/java/com/sk89q/jnbt/EndTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/EndTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/EndTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/EndTag.java
diff --git a/src/main/java/com/sk89q/jnbt/FloatTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/FloatTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java
diff --git a/src/main/java/com/sk89q/jnbt/IntArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/IntArrayTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java
diff --git a/src/main/java/com/sk89q/jnbt/IntTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/IntTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java
diff --git a/src/main/java/com/sk89q/jnbt/ListTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/ListTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java
diff --git a/src/main/java/com/sk89q/jnbt/ListTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/ListTagBuilder.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java
diff --git a/src/main/java/com/sk89q/jnbt/LongTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/LongTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java
diff --git a/src/main/java/com/sk89q/jnbt/NBTConstants.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/NBTConstants.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java
diff --git a/src/main/java/com/sk89q/jnbt/NBTInputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/NBTInputStream.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java
diff --git a/src/main/java/com/sk89q/jnbt/NBTOutputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/NBTOutputStream.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java
diff --git a/src/main/java/com/sk89q/jnbt/NBTUtils.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/NBTUtils.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java
diff --git a/src/main/java/com/sk89q/jnbt/ShortTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/ShortTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java
diff --git a/src/main/java/com/sk89q/jnbt/StringTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/StringTag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java
diff --git a/src/main/java/com/sk89q/jnbt/Tag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/Tag.java
similarity index 100%
rename from src/main/java/com/sk89q/jnbt/Tag.java
rename to worldedit-core/src/main/java/com/sk89q/jnbt/Tag.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/Command.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Command.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/Command.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Command.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandAlias.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandContext.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandException.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandException.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandException.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandLocals.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandLocals.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandLocals.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandLocals.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandPermissions.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandPermissions.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandPermissions.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandPermissions.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandPermissionsException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandPermissionsException.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandPermissionsException.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandPermissionsException.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandUsageException.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/Console.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Console.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/Console.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Console.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/Injector.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Injector.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/Injector.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Injector.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/Logging.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Logging.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/Logging.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/Logging.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/MissingNestedCommandException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/MissingNestedCommandException.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/MissingNestedCommandException.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/MissingNestedCommandException.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/NestedCommand.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/NestedCommand.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/NestedCommand.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/NestedCommand.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/SuggestionContext.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SuggestionContext.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/SuggestionContext.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SuggestionContext.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/UnhandledCommandException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/UnhandledCommandException.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/UnhandledCommandException.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/UnhandledCommandException.java
diff --git a/src/main/java/com/sk89q/minecraft/util/commands/WrappedCommandException.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/WrappedCommandException.java
similarity index 100%
rename from src/main/java/com/sk89q/minecraft/util/commands/WrappedCommandException.java
rename to worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/WrappedCommandException.java
diff --git a/src/main/java/com/sk89q/util/ArrayUtil.java b/worldedit-core/src/main/java/com/sk89q/util/ArrayUtil.java
similarity index 100%
rename from src/main/java/com/sk89q/util/ArrayUtil.java
rename to worldedit-core/src/main/java/com/sk89q/util/ArrayUtil.java
diff --git a/src/main/java/com/sk89q/util/ReflectionUtil.java b/worldedit-core/src/main/java/com/sk89q/util/ReflectionUtil.java
similarity index 100%
rename from src/main/java/com/sk89q/util/ReflectionUtil.java
rename to worldedit-core/src/main/java/com/sk89q/util/ReflectionUtil.java
diff --git a/src/main/java/com/sk89q/util/StringUtil.java b/worldedit-core/src/main/java/com/sk89q/util/StringUtil.java
similarity index 100%
rename from src/main/java/com/sk89q/util/StringUtil.java
rename to worldedit-core/src/main/java/com/sk89q/util/StringUtil.java
diff --git a/src/main/java/com/sk89q/util/yaml/YAMLFormat.java b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLFormat.java
similarity index 100%
rename from src/main/java/com/sk89q/util/yaml/YAMLFormat.java
rename to worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLFormat.java
diff --git a/src/main/java/com/sk89q/util/yaml/YAMLNode.java b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLNode.java
similarity index 100%
rename from src/main/java/com/sk89q/util/yaml/YAMLNode.java
rename to worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLNode.java
diff --git a/src/main/java/com/sk89q/util/yaml/YAMLProcessor.java b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessor.java
similarity index 100%
rename from src/main/java/com/sk89q/util/yaml/YAMLProcessor.java
rename to worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessor.java
diff --git a/src/main/java/com/sk89q/util/yaml/YAMLProcessorException.java b/worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessorException.java
similarity index 100%
rename from src/main/java/com/sk89q/util/yaml/YAMLProcessorException.java
rename to worldedit-core/src/main/java/com/sk89q/util/yaml/YAMLProcessorException.java
diff --git a/src/main/java/com/sk89q/worldedit/BlockVector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/BlockVector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector.java
diff --git a/src/main/java/com/sk89q/worldedit/BlockVector2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/BlockVector2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/BlockVector2D.java
diff --git a/src/main/java/com/sk89q/worldedit/BlockWorldVector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockWorldVector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/BlockWorldVector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/BlockWorldVector.java
diff --git a/src/main/java/com/sk89q/worldedit/BlockWorldVector2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/BlockWorldVector2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/BlockWorldVector2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/BlockWorldVector2D.java
diff --git a/src/main/java/com/sk89q/worldedit/CuboidClipboard.java b/worldedit-core/src/main/java/com/sk89q/worldedit/CuboidClipboard.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/CuboidClipboard.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/CuboidClipboard.java
diff --git a/src/main/java/com/sk89q/worldedit/DisallowedItemException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/DisallowedItemException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/DisallowedItemException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/DisallowedItemException.java
diff --git a/src/main/java/com/sk89q/worldedit/EditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/EditSession.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java
diff --git a/src/main/java/com/sk89q/worldedit/EditSessionFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionFactory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/EditSessionFactory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/EditSessionFactory.java
diff --git a/src/main/java/com/sk89q/worldedit/EmptyClipboardException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EmptyClipboardException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/EmptyClipboardException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/EmptyClipboardException.java
diff --git a/src/main/java/com/sk89q/worldedit/IncompleteRegionException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/IncompleteRegionException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/IncompleteRegionException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/IncompleteRegionException.java
diff --git a/src/main/java/com/sk89q/worldedit/InvalidItemException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/InvalidItemException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/InvalidItemException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/InvalidItemException.java
diff --git a/src/main/java/com/sk89q/worldedit/LocalConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/LocalConfiguration.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java
diff --git a/src/main/java/com/sk89q/worldedit/LocalEntity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalEntity.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/LocalEntity.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/LocalEntity.java
diff --git a/src/main/java/com/sk89q/worldedit/LocalPlayer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalPlayer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/LocalPlayer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/LocalPlayer.java
diff --git a/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/LocalSession.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java
diff --git a/src/main/java/com/sk89q/worldedit/LocalWorld.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalWorld.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/LocalWorld.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/LocalWorld.java
diff --git a/src/main/java/com/sk89q/worldedit/Location.java b/worldedit-core/src/main/java/com/sk89q/worldedit/Location.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/Location.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/Location.java
diff --git a/src/main/java/com/sk89q/worldedit/MaxBrushRadiusException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/MaxBrushRadiusException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/MaxBrushRadiusException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/MaxBrushRadiusException.java
diff --git a/src/main/java/com/sk89q/worldedit/MaxChangedBlocksException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/MaxChangedBlocksException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/MaxChangedBlocksException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/MaxChangedBlocksException.java
diff --git a/src/main/java/com/sk89q/worldedit/MaxRadiusException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/MaxRadiusException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/MaxRadiusException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/MaxRadiusException.java
diff --git a/src/main/java/com/sk89q/worldedit/NotABlockException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/NotABlockException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/NotABlockException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/NotABlockException.java
diff --git a/src/main/java/com/sk89q/worldedit/PlayerDirection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/PlayerDirection.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/PlayerDirection.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/PlayerDirection.java
diff --git a/src/main/java/com/sk89q/worldedit/ServerInterface.java b/worldedit-core/src/main/java/com/sk89q/worldedit/ServerInterface.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/ServerInterface.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/ServerInterface.java
diff --git a/src/main/java/com/sk89q/worldedit/UnknownDirectionException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/UnknownDirectionException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/UnknownDirectionException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/UnknownDirectionException.java
diff --git a/src/main/java/com/sk89q/worldedit/UnknownItemException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/UnknownItemException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/UnknownItemException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/UnknownItemException.java
diff --git a/src/main/java/com/sk89q/worldedit/Vector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/Vector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/Vector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/Vector.java
diff --git a/src/main/java/com/sk89q/worldedit/Vector2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/Vector2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/Vector2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/Vector2D.java
diff --git a/src/main/java/com/sk89q/worldedit/VectorFace.java b/worldedit-core/src/main/java/com/sk89q/worldedit/VectorFace.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/VectorFace.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/VectorFace.java
diff --git a/src/main/java/com/sk89q/worldedit/WorldEdit.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/WorldEdit.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java
diff --git a/src/main/java/com/sk89q/worldedit/WorldEditException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/WorldEditException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditException.java
diff --git a/src/main/java/com/sk89q/worldedit/WorldEditOperation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditOperation.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/WorldEditOperation.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditOperation.java
diff --git a/src/main/java/com/sk89q/worldedit/WorldVector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldVector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/WorldVector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/WorldVector.java
diff --git a/src/main/java/com/sk89q/worldedit/WorldVector2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldVector2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/WorldVector2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/WorldVector2D.java
diff --git a/src/main/java/com/sk89q/worldedit/WorldVectorFace.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldVectorFace.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/WorldVectorFace.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/WorldVectorFace.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseBlock.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/BaseItem.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/BlockData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockData.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/BlockData.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockData.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/BlockID.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockID.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/BlockID.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockID.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/BlockMaterial.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockMaterial.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/BlockMaterial.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockMaterial.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/BlockType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockType.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/BlockType.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BlockType.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/Blocks.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/Blocks.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/Blocks.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/Blocks.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/ClothColor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/ClothColor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/ClothColor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/ClothColor.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/ItemID.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/ItemID.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/ItemID.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/ItemID.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/ItemType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/ItemType.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/ItemType.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/ItemType.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/TileEntityBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/TileEntityBlock.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/TileEntityBlock.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/TileEntityBlock.java
diff --git a/src/main/java/com/sk89q/worldedit/blocks/metadata/MobType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/metadata/MobType.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/blocks/metadata/MobType.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/blocks/metadata/MobType.java
diff --git a/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/BiomeCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/BiomeCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/BrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/BrushCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/ChunkCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/ChunkCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/ClipboardCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java
diff --git a/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/GeneralCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/GenerationCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/GenerationCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/HistoryCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/HistoryCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/InsufficientArgumentsException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/InsufficientArgumentsException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/InsufficientArgumentsException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/InsufficientArgumentsException.java
diff --git a/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/NavigationCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/NavigationCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/RegionCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/RegionCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/RegionCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/SchematicCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/ScriptingCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/SelectionCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/SelectionCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/SnapshotUtilCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/SuperPickaxeCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/ToolCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/ToolCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolUtilCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/UtilityCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/UtilityCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/AreaPickaxe.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/AreaPickaxe.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/AreaPickaxe.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/AreaPickaxe.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockDataCyler.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockReplacer.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BlockTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/BrushTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DistanceWand.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionBlockTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/DoubleActionTraceTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloatingTreeRemover.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/FloodFillTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/InvalidToolBindException.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/LongRangeBuildTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/QueryTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/RecursivePickaxe.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/SinglePickaxe.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/Tool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/Tool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/Tool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/Tool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TraceTool.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/TreePlanter.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/Brush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ButcherBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/ClipboardBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/CylinderBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/GravityBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowCylinderBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/HollowSphereBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SmoothBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SphereBrush.java
diff --git a/src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/util/CreatureButcher.java
diff --git a/src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/command/util/EntityRemover.java
diff --git a/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/entity/BaseEntity.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java
diff --git a/src/main/java/com/sk89q/worldedit/entity/Entity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Entity.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/entity/Entity.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/entity/Entity.java
diff --git a/src/main/java/com/sk89q/worldedit/entity/Player.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/entity/Player.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/entity/Player.java
diff --git a/src/main/java/com/sk89q/worldedit/entity/metadata/EntityType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/metadata/EntityType.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/entity/metadata/EntityType.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/entity/metadata/EntityType.java
diff --git a/src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/AbstractCancellable.java
diff --git a/src/main/java/com/sk89q/worldedit/event/Cancellable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/Cancellable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/Cancellable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/Cancellable.java
diff --git a/src/main/java/com/sk89q/worldedit/event/Event.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/Event.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/Event.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/Event.java
diff --git a/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/extent/EditSessionEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/BlockInteractEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/CommandSuggestionEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/ConfigurationLoadEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/ConfigurationLoadEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/ConfigurationLoadEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/ConfigurationLoadEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/InputType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/InputType.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/InputType.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/InputType.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/Interaction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/Interaction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/Interaction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/Interaction.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformInitializeEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlayerInputEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/BlockFactory.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultBlockParser.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/DefaultMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultMaskParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/DefaultMaskParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/DefaultMaskParser.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/HashTagPatternParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/HashTagPatternParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/HashTagPatternParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/HashTagPatternParser.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/MaskFactory.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/PatternFactory.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/RandomPatternParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/RandomPatternParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/RandomPatternParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/RandomPatternParser.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/factory/SingleBlockPatternParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/SingleBlockPatternParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/factory/SingleBlockPatternParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/SingleBlockPatternParser.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/DisallowedUsageException.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/InputParseException.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/NoMatchException.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/input/ParserContext.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlatform.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/AbstractPlayerActor.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/Actor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Actor.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/Capability.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Capability.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/Capability.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Capability.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/CommandManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/CommandManager.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/CommandManager.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/CommandManager.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/MultiUserPlatform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/MultiUserPlatform.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/MultiUserPlatform.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/MultiUserPlatform.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/NoCapablePlatformException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/NoCapablePlatformException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/NoCapablePlatformException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/NoCapablePlatformException.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/Platform.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlayerProxy.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/Preference.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Preference.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/Preference.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Preference.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/permission/ActorSelectorLimits.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/permission/ActorSelectorLimits.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/permission/ActorSelectorLimits.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/permission/ActorSelectorLimits.java
diff --git a/src/main/java/com/sk89q/worldedit/extension/platform/permission/OverridePermissions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/permission/OverridePermissions.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extension/platform/permission/OverridePermissions.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/permission/OverridePermissions.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/AbstractDelegateExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/ChangeSetExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/Extent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/Extent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/Extent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/Extent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/InputExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/InputExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/InputExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/InputExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/MaskingExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/NullExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/NullExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/NullExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/NullExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/OutputExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/OutputExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/OutputExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/OutputExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/buffer/ForgetfulExtentBuffer.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/cache/LastAccessExtentCache.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/BlockArrayClipboard.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/StoredEntity.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormat.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardReader.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardReader.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardReader.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardWriter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardWriter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardWriter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardWriter.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicReader.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicReader.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicReader.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicWriter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicWriter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicWriter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SchematicWriter.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBag.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagException.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/BlockBagExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfBlocksException.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/OutOfSpaceException.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/inventory/UnplaceableBlockException.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/logging/AbstractLoggingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/logging/AbstractLoggingExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/logging/AbstractLoggingExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/logging/AbstractLoggingExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/MultiStageReorder.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/reorder/ReorderingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/ReorderingExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/reorder/ReorderingExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/reorder/ReorderingExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/transform/BlockTransformExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/BlockChangeLimiter.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/validation/DataValidatorExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/BlockQuirkExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/ChunkLoadingExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/FastModeExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java
diff --git a/src/main/java/com/sk89q/worldedit/function/CombinedRegionFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/CombinedRegionFunction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/CombinedRegionFunction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/CombinedRegionFunction.java
diff --git a/src/main/java/com/sk89q/worldedit/function/EntityFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/EntityFunction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/EntityFunction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/EntityFunction.java
diff --git a/src/main/java/com/sk89q/worldedit/function/FlatRegionFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionFunction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/FlatRegionFunction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionFunction.java
diff --git a/src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/FlatRegionMaskingFilter.java
diff --git a/src/main/java/com/sk89q/worldedit/function/GroundFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/GroundFunction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/GroundFunction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/GroundFunction.java
diff --git a/src/main/java/com/sk89q/worldedit/function/LayerFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/LayerFunction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/LayerFunction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/LayerFunction.java
diff --git a/src/main/java/com/sk89q/worldedit/function/RegionFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionFunction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/RegionFunction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionFunction.java
diff --git a/src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/RegionMaskingFilter.java
diff --git a/src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/biome/BiomeReplace.java
diff --git a/src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/block/BlockReplace.java
diff --git a/src/main/java/com/sk89q/worldedit/function/block/Counter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Counter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/block/Counter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Counter.java
diff --git a/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java
diff --git a/src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/block/Naturalizer.java
diff --git a/src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/entity/ExtentEntityCopy.java
diff --git a/src/main/java/com/sk89q/worldedit/function/generator/FloraGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/FloraGenerator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/generator/FloraGenerator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/FloraGenerator.java
diff --git a/src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/ForestGenerator.java
diff --git a/src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/generator/GardenPatchGenerator.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/AbstractExtentMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractExtentMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/AbstractExtentMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractExtentMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/AbstractMask2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExpressionMask2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/FuzzyBlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/FuzzyBlockMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/FuzzyBlockMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/FuzzyBlockMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/Mask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/Mask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/Mask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/Mask2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskIntersection2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/MaskUnion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskUnion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/MaskUnion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskUnion.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/MaskUnion2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskUnion2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/MaskUnion2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/MaskUnion2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/Masks.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Masks.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/Masks.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Masks.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/NoiseFilter2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/OffsetMask2D.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/BlockMapEntryPlacer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/BlockMapEntryPlacer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/BlockMapEntryPlacer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/BlockMapEntryPlacer.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ChangeSetExecutor.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/DelegateOperation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/DelegateOperation.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/DelegateOperation.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/DelegateOperation.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/ForwardExtentCopy.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/Operation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operation.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/Operation.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operation.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/OperationQueue.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/OperationQueue.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/OperationQueue.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/OperationQueue.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/Operations.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operations.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/Operations.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/Operations.java
diff --git a/src/main/java/com/sk89q/worldedit/function/operation/RunContext.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/RunContext.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/operation/RunContext.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/operation/RunContext.java
diff --git a/src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/AbstractPattern.java
diff --git a/src/main/java/com/sk89q/worldedit/function/pattern/BlockPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/BlockPattern.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/pattern/BlockPattern.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/BlockPattern.java
diff --git a/src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/ClipboardPattern.java
diff --git a/src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Pattern.java
diff --git a/src/main/java/com/sk89q/worldedit/function/pattern/Patterns.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Patterns.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/pattern/Patterns.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/Patterns.java
diff --git a/src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RandomPattern.java
diff --git a/src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java
diff --git a/src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/util/FlatRegionOffset.java
diff --git a/src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/util/RegionOffset.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/BreadthFirstSearch.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/DownwardVisitor.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/EntityVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/EntityVisitor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/EntityVisitor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/EntityVisitor.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/FlatRegionVisitor.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/LayerVisitor.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/NonRisingVisitor.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RecursiveVisitor.java
diff --git a/src/main/java/com/sk89q/worldedit/function/visitor/RegionVisitor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RegionVisitor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/function/visitor/RegionVisitor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/function/visitor/RegionVisitor.java
diff --git a/src/main/java/com/sk89q/worldedit/history/UndoContext.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/UndoContext.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/UndoContext.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/UndoContext.java
diff --git a/src/main/java/com/sk89q/worldedit/history/change/BlockChange.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BlockChange.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/change/BlockChange.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/change/BlockChange.java
diff --git a/src/main/java/com/sk89q/worldedit/history/change/Change.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/Change.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/change/Change.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/change/Change.java
diff --git a/src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityCreate.java
diff --git a/src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/change/EntityRemove.java
diff --git a/src/main/java/com/sk89q/worldedit/history/changeset/ArrayListHistory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ArrayListHistory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/changeset/ArrayListHistory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ArrayListHistory.java
diff --git a/src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/BlockOptimizedHistory.java
diff --git a/src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java b/worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/history/changeset/ChangeSet.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/Constants.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/Constants.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/Constants.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/Constants.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/LocalWorldAdapter.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/ServerInterfaceAdapter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/ServerInterfaceAdapter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/ServerInterfaceAdapter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/ServerInterfaceAdapter.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Direction.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/annotation/RequiresNewerGuava.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/RequiresNewerGuava.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/annotation/RequiresNewerGuava.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/RequiresNewerGuava.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/annotation/Selection.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/ActorAuthorizer.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/CommandLoggingHandler.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/command/UserCommandCompleter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/UserCommandCompleter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/command/UserCommandCompleter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/UserCommandCompleter.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditBinding.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/command/WorldEditExceptionConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditExceptionConverter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/command/WorldEditExceptionConverter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/command/WorldEditExceptionConverter.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/CUIRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionCylinderEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionEllipsoidPointEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionMinMaxEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPoint2DEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPointEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPolygonEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPolygonEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/SelectionPolygonEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionPolygonEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/SelectionShapeEvent.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/Expression.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Expression.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/ExpressionException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/ExpressionException.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/Identifiable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Identifiable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/Identifiable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/Identifiable.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/Lexer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/Lexer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/Lexer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/Lexer.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/LexerException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/LexerException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/LexerException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/LexerException.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/CharacterToken.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/CharacterToken.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/CharacterToken.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/CharacterToken.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/IdentifierToken.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/IdentifierToken.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/IdentifierToken.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/IdentifierToken.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/KeywordToken.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/KeywordToken.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/KeywordToken.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/KeywordToken.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/NumberToken.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/NumberToken.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/NumberToken.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/NumberToken.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/OperatorToken.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/OperatorToken.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/OperatorToken.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/OperatorToken.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/Token.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/Token.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/Token.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/lexer/tokens/Token.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/parser/Parser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/Parser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/parser/Parser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/Parser.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserException.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserProcessors.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserProcessors.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserProcessors.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/ParserProcessors.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/parser/PseudoToken.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/PseudoToken.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/parser/PseudoToken.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/PseudoToken.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/parser/UnaryOperator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/UnaryOperator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/parser/UnaryOperator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/UnaryOperator.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/parser/UnboundVariable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/UnboundVariable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/parser/UnboundVariable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/parser/UnboundVariable.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Break.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Break.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Break.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Break.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/BreakException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/BreakException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/BreakException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/BreakException.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Conditional.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Conditional.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Conditional.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Conditional.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Constant.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Constant.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Constant.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Constant.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/EvaluationException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/EvaluationException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/EvaluationException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/EvaluationException.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/ExpressionEnvironment.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/ExpressionEnvironment.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/ExpressionEnvironment.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/ExpressionEnvironment.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/For.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/For.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/For.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/For.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Function.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Function.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Function.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Function.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Functions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Functions.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Functions.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Functions.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValue.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValue.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValue.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValue.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValueFunction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValueFunction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValueFunction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/LValueFunction.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Node.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Node.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Node.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Node.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Operators.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Operators.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Operators.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Operators.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/RValue.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/RValue.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/RValue.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/RValue.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Return.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Return.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Return.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Return.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/ReturnException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/ReturnException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/ReturnException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/ReturnException.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Sequence.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Sequence.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Sequence.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Sequence.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/SimpleFor.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/SimpleFor.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/SimpleFor.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/SimpleFor.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Switch.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Switch.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Switch.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Switch.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Variable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Variable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/Variable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/Variable.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/expression/runtime/While.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/While.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/expression/runtime/While.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/expression/runtime/While.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/helper/MCDirections.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/AbstractFactory.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/registry/InputParser.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/util/AbstractAdapter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/AbstractAdapter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/util/AbstractAdapter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/AbstractAdapter.java
diff --git a/src/main/java/com/sk89q/worldedit/internal/util/DocumentationPrinter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/DocumentationPrinter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/internal/util/DocumentationPrinter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/DocumentationPrinter.java
diff --git a/src/main/java/com/sk89q/worldedit/math/MathUtils.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/MathUtils.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/MathUtils.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/MathUtils.java
diff --git a/src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/GaussianKernel.java
diff --git a/src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMap.java
diff --git a/src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/HeightMapFilter.java
diff --git a/src/main/java/com/sk89q/worldedit/math/convolution/LinearKernel.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/LinearKernel.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/convolution/LinearKernel.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/convolution/LinearKernel.java
diff --git a/src/main/java/com/sk89q/worldedit/math/geom/Polygons.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/geom/Polygons.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/geom/Polygons.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/geom/Polygons.java
diff --git a/src/main/java/com/sk89q/worldedit/math/interpolation/Interpolation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/Interpolation.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/interpolation/Interpolation.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/Interpolation.java
diff --git a/src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/KochanekBartelsInterpolation.java
diff --git a/src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/LinearInterpolation.java
diff --git a/src/main/java/com/sk89q/worldedit/math/interpolation/Node.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/Node.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/interpolation/Node.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/Node.java
diff --git a/src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java
diff --git a/src/main/java/com/sk89q/worldedit/math/noise/JLibNoiseGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/JLibNoiseGenerator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/noise/JLibNoiseGenerator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/JLibNoiseGenerator.java
diff --git a/src/main/java/com/sk89q/worldedit/math/noise/NoiseGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/NoiseGenerator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/noise/NoiseGenerator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/NoiseGenerator.java
diff --git a/src/main/java/com/sk89q/worldedit/math/noise/PerlinNoise.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/PerlinNoise.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/noise/PerlinNoise.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/PerlinNoise.java
diff --git a/src/main/java/com/sk89q/worldedit/math/noise/RandomNoise.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/RandomNoise.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/noise/RandomNoise.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/RandomNoise.java
diff --git a/src/main/java/com/sk89q/worldedit/math/noise/RidgedMultiFractalNoise.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/RidgedMultiFractalNoise.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/noise/RidgedMultiFractalNoise.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/RidgedMultiFractalNoise.java
diff --git a/src/main/java/com/sk89q/worldedit/math/noise/VoronoiNoise.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/VoronoiNoise.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/noise/VoronoiNoise.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/noise/VoronoiNoise.java
diff --git a/src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/AffineTransform.java
diff --git a/src/main/java/com/sk89q/worldedit/math/transform/CombinedTransform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/CombinedTransform.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/transform/CombinedTransform.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/CombinedTransform.java
diff --git a/src/main/java/com/sk89q/worldedit/math/transform/Identity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Identity.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/transform/Identity.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Identity.java
diff --git a/src/main/java/com/sk89q/worldedit/math/transform/Transform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transform.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/transform/Transform.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transform.java
diff --git a/src/main/java/com/sk89q/worldedit/math/transform/Transforms.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transforms.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/math/transform/Transforms.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/math/transform/Transforms.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/AbstractRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/ConvexPolyhedralRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/CuboidRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/CylinderRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/EllipsoidRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/FlatRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/FlatRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/FlatRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/FlatRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/NullRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/NullRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/NullRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/NullRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/Polygonal2DRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/Region.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/Region.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/Region.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionIntersection.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/RegionOperationException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionOperationException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/RegionOperationException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionOperationException.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/RegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/RegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/Regions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/Regions.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/Regions.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/Regions.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/TransformRegion.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/TransformRegion.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/TransformRegion.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/TransformRegion.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegion3DIterator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegion3DIterator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegion3DIterator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegion3DIterator.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/FlatRegionIterator.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/iterator/RegionIterator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/RegionIterator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/iterator/RegionIterator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/iterator/RegionIterator.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Edge.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/polyhedron/Triangle.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ConvexPolyhedralRegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CuboidRegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/ExtendingCuboidRegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/Polygonal2DRegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/RegionSelectorType.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/RegionSelectorType.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/RegionSelectorType.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/RegionSelectorType.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/limit/PermissiveSelectorLimits.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/limit/PermissiveSelectorLimits.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/limit/PermissiveSelectorLimits.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/limit/PermissiveSelectorLimits.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/selector/limit/SelectorLimits.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/limit/SelectorLimits.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/selector/limit/SelectorLimits.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/limit/SelectorLimits.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryBiomeShape.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/ArbitraryShape.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/shape/RegionShape.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/RegionShape.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/shape/RegionShape.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/RegionShape.java
diff --git a/src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/regions/shape/WorldEditExpressionEnvironment.java
diff --git a/src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/schematic/MCEditSchematicFormat.java
diff --git a/src/main/java/com/sk89q/worldedit/schematic/SchematicFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/schematic/SchematicFormat.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/schematic/SchematicFormat.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/schematic/SchematicFormat.java
diff --git a/src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptContext.java
diff --git a/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEngine.java
diff --git a/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/scripting/CraftScriptEnvironment.java
diff --git a/src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoContextFactory.java
diff --git a/src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/scripting/RhinoCraftScriptEngine.java
diff --git a/src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngine.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngine.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngine.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngine.java
diff --git a/src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngineFactory.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngineFactory.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngineFactory.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/scripting/java/RhinoScriptEngineFactory.java
diff --git a/src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/ClipboardHolder.java
diff --git a/src/main/java/com/sk89q/worldedit/session/MissingSessionException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/MissingSessionException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/MissingSessionException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/MissingSessionException.java
diff --git a/src/main/java/com/sk89q/worldedit/session/PasteBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/PasteBuilder.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/PasteBuilder.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/PasteBuilder.java
diff --git a/src/main/java/com/sk89q/worldedit/session/SessionKey.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionKey.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/SessionKey.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionKey.java
diff --git a/src/main/java/com/sk89q/worldedit/session/SessionManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/SessionManager.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java
diff --git a/src/main/java/com/sk89q/worldedit/session/SessionOwner.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionOwner.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/SessionOwner.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionOwner.java
diff --git a/src/main/java/com/sk89q/worldedit/session/TransientSessionException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/TransientSessionException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/TransientSessionException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/TransientSessionException.java
diff --git a/src/main/java/com/sk89q/worldedit/session/request/Request.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/Request.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/request/Request.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/request/Request.java
diff --git a/src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/request/RequestSelection.java
diff --git a/src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java
diff --git a/src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/SessionStore.java
diff --git a/src/main/java/com/sk89q/worldedit/session/storage/VoidStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/VoidStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/session/storage/VoidStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/VoidStore.java
diff --git a/src/main/java/com/sk89q/worldedit/util/Countable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Countable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/Countable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/Countable.java
diff --git a/src/main/java/com/sk89q/worldedit/util/Direction.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Direction.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/Direction.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/Direction.java
diff --git a/src/main/java/com/sk89q/worldedit/util/Enums.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Enums.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/Enums.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/Enums.java
diff --git a/src/main/java/com/sk89q/worldedit/util/Faceted.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Faceted.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/Faceted.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/Faceted.java
diff --git a/src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/FileDialogUtil.java
diff --git a/src/main/java/com/sk89q/worldedit/util/Identifiable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Identifiable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/Identifiable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/Identifiable.java
diff --git a/src/main/java/com/sk89q/worldedit/util/Location.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/Location.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/Location.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/Location.java
diff --git a/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java
diff --git a/src/main/java/com/sk89q/worldedit/util/TargetBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TargetBlock.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/TargetBlock.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/TargetBlock.java
diff --git a/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/TreeGenerator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/TreeGenerator.java
diff --git a/src/main/java/com/sk89q/worldedit/util/WeightedChoice.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/WeightedChoice.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/WeightedChoice.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/WeightedChoice.java
diff --git a/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java
diff --git a/src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/AuthorizationException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Authorizer.java
diff --git a/src/main/java/com/sk89q/worldedit/util/auth/NullAuthorizer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/NullAuthorizer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/auth/NullAuthorizer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/NullAuthorizer.java
diff --git a/src/main/java/com/sk89q/worldedit/util/auth/Subject.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Subject.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/auth/Subject.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/auth/Subject.java
diff --git a/src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/DoubleArrayList.java
diff --git a/src/main/java/com/sk89q/worldedit/util/collection/FastListIterator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/FastListIterator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/collection/FastListIterator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/FastListIterator.java
diff --git a/src/main/java/com/sk89q/worldedit/util/collection/TupleArrayList.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/TupleArrayList.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/collection/TupleArrayList.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/TupleArrayList.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/CommandCallable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/CommandCallable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/CommandCallable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/CommandCallable.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/CommandCompleter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/CommandCompleter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/CommandCompleter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/CommandCompleter.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/CommandMapping.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/CommandMapping.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/CommandMapping.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/CommandMapping.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/Description.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/Description.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/Description.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/Description.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/Dispatcher.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/Dispatcher.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/Dispatcher.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/Dispatcher.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/InvalidUsageException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/InvalidUsageException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/InvalidUsageException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/InvalidUsageException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/MissingParameterException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/MissingParameterException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/MissingParameterException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/MissingParameterException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/NullCompleter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/NullCompleter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/NullCompleter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/NullCompleter.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/Parameter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/Parameter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/Parameter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/Parameter.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/PrimaryAliasComparator.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/PrimaryAliasComparator.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/PrimaryAliasComparator.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/PrimaryAliasComparator.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/SimpleCommandMapping.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleCommandMapping.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/SimpleCommandMapping.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleCommandMapping.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/SimpleDescription.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDescription.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/SimpleDescription.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDescription.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleDispatcher.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/SimpleParameter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleParameter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/SimpleParameter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/SimpleParameter.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/UnconsumedParameterException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/UnconsumedParameterException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/UnconsumedParameterException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/UnconsumedParameterException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/binding/PrimitiveBindings.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/PrimitiveBindings.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/binding/PrimitiveBindings.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/PrimitiveBindings.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/binding/Range.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Range.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/binding/Range.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Range.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/binding/StandardBindings.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/StandardBindings.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/binding/StandardBindings.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/StandardBindings.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/binding/Switch.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Switch.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/binding/Switch.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Switch.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/binding/Text.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Text.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/binding/Text.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Text.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/binding/Validate.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Validate.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/binding/Validate.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/binding/Validate.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/fluent/CommandGraph.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/fluent/CommandGraph.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/fluent/CommandGraph.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/fluent/CommandGraph.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/fluent/DispatcherNode.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/fluent/DispatcherNode.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/fluent/DispatcherNode.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/fluent/DispatcherNode.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/AbstractInvokeListener.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/AbstractInvokeListener.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/AbstractInvokeListener.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/AbstractInvokeListener.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ArgumentStack.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ArgumentStack.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ArgumentStack.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ArgumentStack.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/Binding.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/Binding.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/Binding.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/Binding.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingBehavior.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingBehavior.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/BindingBehavior.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingBehavior.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingHelper.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/BindingHelper.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingHelper.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingMatch.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingMatch.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/BindingMatch.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/BindingMatch.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ContextArgumentStack.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ContextArgumentStack.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ContextArgumentStack.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ContextArgumentStack.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverter.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverterHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverterHelper.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverterHelper.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionConverterHelper.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionMatch.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionMatch.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionMatch.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ExceptionMatch.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeHandler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeHandler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeHandler.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeListener.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeListener.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeListener.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/InvokeListener.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/LegacyCommandsHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/LegacyCommandsHandler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/LegacyCommandsHandler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/LegacyCommandsHandler.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/Optional.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/Optional.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/Optional.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/Optional.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterData.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterData.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterData.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParameterException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricBuilder.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricBuilder.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricBuilder.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricCallable.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricCallable.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricCallable.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricCallable.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/ParametricException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/command/parametric/StringArgumentStack.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/StringArgumentStack.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/command/parametric/StringArgumentStack.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/command/parametric/StringArgumentStack.java
diff --git a/src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/EvenMoreExecutors.java
diff --git a/src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/AnnotatedSubscriberFinder.java
diff --git a/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java
diff --git a/src/main/java/com/sk89q/worldedit/util/eventbus/EventHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventHandler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/eventbus/EventHandler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventHandler.java
diff --git a/src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/HierarchyCache.java
diff --git a/src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/MethodEventHandler.java
diff --git a/src/main/java/com/sk89q/worldedit/util/eventbus/Subscribe.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/Subscribe.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/eventbus/Subscribe.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/Subscribe.java
diff --git a/src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/SubscriberFindingStrategy.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/ColorCodeBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/ColorCodeBuilder.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/ColorCodeBuilder.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/ColorCodeBuilder.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/Fragment.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/Fragment.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/Fragment.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/Fragment.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/Style.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/Style.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/Style.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/Style.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/StyleSet.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/StyleSet.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/StyleSet.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/StyleSet.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/StyledFragment.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/StyledFragment.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/StyledFragment.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/StyledFragment.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/component/Code.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/Code.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/component/Code.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/Code.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandListBox.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/CommandUsageBox.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/component/Label.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/Label.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/component/Label.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/Label.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/MessageBox.java
diff --git a/src/main/java/com/sk89q/worldedit/util/formatting/component/Subtle.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/Subtle.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/formatting/component/Subtle.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/Subtle.java
diff --git a/src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/function/LevenshteinDistance.java
diff --git a/src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/GsonUtil.java
diff --git a/src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/gson/VectorAdapter.java
diff --git a/src/main/java/com/sk89q/worldedit/util/io/Closer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/io/Closer.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java
diff --git a/src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/io/ForwardSeekableInputStream.java
diff --git a/src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FileSelectionAbortedException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/io/file/FilenameException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FilenameException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/io/file/FilenameException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FilenameException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/io/file/FilenameResolutionException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FilenameResolutionException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/io/file/FilenameResolutionException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/FilenameResolutionException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/io/file/InvalidFilenameException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/InvalidFilenameException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/io/file/InvalidFilenameException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/InvalidFilenameException.java
diff --git a/src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/DynamicStreamHandler.java
diff --git a/src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/LogFormat.java
diff --git a/src/main/java/com/sk89q/worldedit/util/logging/WorldEditPrefixHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/WorldEditPrefixHandler.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/util/logging/WorldEditPrefixHandler.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/logging/WorldEditPrefixHandler.java
diff --git a/src/main/java/com/sk89q/worldedit/world/AbstractWorld.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/AbstractWorld.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/AbstractWorld.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/AbstractWorld.java
diff --git a/src/main/java/com/sk89q/worldedit/world/DataException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/DataException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/DataException.java
diff --git a/src/main/java/com/sk89q/worldedit/world/NbtValued.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/NbtValued.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java
diff --git a/src/main/java/com/sk89q/worldedit/world/NullWorld.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NullWorld.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/NullWorld.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/NullWorld.java
diff --git a/src/main/java/com/sk89q/worldedit/world/World.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/World.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/World.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/World.java
diff --git a/src/main/java/com/sk89q/worldedit/world/biome/BaseBiome.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BaseBiome.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/biome/BaseBiome.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BaseBiome.java
diff --git a/src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeData.java
diff --git a/src/main/java/com/sk89q/worldedit/world/biome/BiomeName.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeName.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/biome/BiomeName.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeName.java
diff --git a/src/main/java/com/sk89q/worldedit/world/biome/Biomes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/Biomes.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/biome/Biomes.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/Biomes.java
diff --git a/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java
diff --git a/src/main/java/com/sk89q/worldedit/world/chunk/Chunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/Chunk.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/chunk/Chunk.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/Chunk.java
diff --git a/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BiomeRegistry.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BlockRegistry.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/EntityRegistry.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/LegacyBlockRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyBlockRegistry.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/LegacyBlockRegistry.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyBlockRegistry.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/LegacyWorldData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyWorldData.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/LegacyWorldData.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyWorldData.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullBiomeRegistry.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/NullEntityRegistry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullEntityRegistry.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/NullEntityRegistry.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/NullEntityRegistry.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleBlockMaterial.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/SimpleState.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleState.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/SimpleState.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleState.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/SimpleStateValue.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleStateValue.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/SimpleStateValue.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/SimpleStateValue.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/State.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/State.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/State.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/State.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/StateValue.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/StateValue.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/StateValue.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/StateValue.java
diff --git a/src/main/java/com/sk89q/worldedit/world/registry/WorldData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/WorldData.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/registry/WorldData.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/WorldData.java
diff --git a/src/main/java/com/sk89q/worldedit/world/snapshot/InvalidSnapshotException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/InvalidSnapshotException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/snapshot/InvalidSnapshotException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/InvalidSnapshotException.java
diff --git a/src/main/java/com/sk89q/worldedit/world/snapshot/ModificationTimerParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/ModificationTimerParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/snapshot/ModificationTimerParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/ModificationTimerParser.java
diff --git a/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java
diff --git a/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotDateParser.java
diff --git a/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRepository.java
diff --git a/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/SnapshotRestore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/snapshot/YYMMDDHHIISSParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/YYMMDDHHIISSParser.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/snapshot/YYMMDDHHIISSParser.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/YYMMDDHHIISSParser.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/BlockData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/BlockData.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/BlockData.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/BlockData.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreException.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileLegacyChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/FileMcRegionChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/InvalidFormatException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/InvalidFormatException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/InvalidFormatException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/InvalidFormatException.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/LegacyChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/McRegionReader.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/MissingChunkException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingChunkException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/MissingChunkException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingChunkException.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/MissingWorldException.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/NBTConversions.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipLegacyChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/TrueZipMcRegionChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedLegacyChunkStore.java
diff --git a/src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java
similarity index 100%
rename from src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java
rename to worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ZippedMcRegionChunkStore.java
diff --git a/src/main/resources/com/sk89q/worldedit/world/registry/blocks.json b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.json
similarity index 100%
rename from src/main/resources/com/sk89q/worldedit/world/registry/blocks.json
rename to worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.json
diff --git a/src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java b/worldedit-core/src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java
similarity index 100%
rename from src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java
rename to worldedit-core/src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java
diff --git a/src/test/java/com/sk89q/worldedit/CuboidClipboardTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/CuboidClipboardTest.java
similarity index 100%
rename from src/test/java/com/sk89q/worldedit/CuboidClipboardTest.java
rename to worldedit-core/src/test/java/com/sk89q/worldedit/CuboidClipboardTest.java
diff --git a/src/test/java/com/sk89q/worldedit/VectorTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/VectorTest.java
similarity index 100%
rename from src/test/java/com/sk89q/worldedit/VectorTest.java
rename to worldedit-core/src/test/java/com/sk89q/worldedit/VectorTest.java
diff --git a/src/test/java/com/sk89q/worldedit/blocks/BlockDataTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/blocks/BlockDataTest.java
similarity index 100%
rename from src/test/java/com/sk89q/worldedit/blocks/BlockDataTest.java
rename to worldedit-core/src/test/java/com/sk89q/worldedit/blocks/BlockDataTest.java
diff --git a/src/test/java/com/sk89q/worldedit/extent/transform/BlockTransformExtentTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/extent/transform/BlockTransformExtentTest.java
similarity index 100%
rename from src/test/java/com/sk89q/worldedit/extent/transform/BlockTransformExtentTest.java
rename to worldedit-core/src/test/java/com/sk89q/worldedit/extent/transform/BlockTransformExtentTest.java
diff --git a/src/test/java/com/sk89q/worldedit/internal/expression/ExpressionTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/ExpressionTest.java
similarity index 100%
rename from src/test/java/com/sk89q/worldedit/internal/expression/ExpressionTest.java
rename to worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/ExpressionTest.java
diff --git a/src/test/java/com/sk89q/worldedit/util/LocationTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/LocationTest.java
similarity index 100%
rename from src/test/java/com/sk89q/worldedit/util/LocationTest.java
rename to worldedit-core/src/test/java/com/sk89q/worldedit/util/LocationTest.java
diff --git a/worldedit-forge/build.gradle b/worldedit-forge/build.gradle
new file mode 100644
index 000000000..f7b51a33e
--- /dev/null
+++ b/worldedit-forge/build.gradle
@@ -0,0 +1,71 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ maven { url = "http://files.minecraftforge.net/maven" }
+ maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
+ jcenter()
+ }
+
+ dependencies {
+ classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
+ }
+}
+
+apply plugin: 'forge'
+
+dependencies {
+ compile project(':worldedit-core')
+ testCompile group: 'org.mockito', name: 'mockito-core', version:'1.9.0-rc1'
+}
+
+minecraft {
+ ext.forgeVersion = "10.13.1.1225"
+ version = "1.7.10-$forgeVersion"
+
+ replaceIn "com/sk89q/worldedit/forge/ForgeWorldEdit.java"
+ replace "%VERSION%", project.version
+}
+
+project.archivesBaseName = "${project.archivesBaseName}-mc${minecraft.version}"
+
+processResources {
+ from (sourceSets.main.resources.srcDirs) {
+ expand 'version': project.version,
+ 'mcVersion': project.minecraft.version,
+ 'forgeVersion': project.minecraft.forgeVersion,
+ 'internalVersion': project.internalVersion
+ include 'mcmod.info'
+ }
+
+ from (sourceSets.main.resources.srcDirs) {
+ exclude 'mcmod.info'
+ }
+}
+
+jar {
+ manifest {
+ attributes("Class-Path": "truezip.jar WorldEdit/truezip.jar js.jar WorldEdit/js.jar",
+ "WorldEdit-Version": version)
+ }
+}
+
+shadowJar {
+ dependencies {
+ include(dependency(':worldedit-core'))
+ }
+}
+
+reobf.reobf(shadowJar) { spec ->
+ spec.classpath = sourceSets.main.compileClasspath;
+}
+
+task deobfJar(type: Jar) {
+ from sourceSets.main.output
+ classifier = 'dev'
+}
+
+artifacts {
+ archives deobfJar
+}
+
+build.dependsOn(shadowJar)
diff --git a/src/forge/ant/build.xml b/worldedit-forge/src/main/ant/build.xml
similarity index 100%
rename from src/forge/ant/build.xml
rename to worldedit-forge/src/main/ant/build.xml
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeAdapter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeAdapter.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeBiomeRegistry.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeBiomeRegistry.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeBiomeRegistry.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeBiomeRegistry.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeConfiguration.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeConfiguration.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeConfiguration.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeConfiguration.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeEntity.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntity.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeEntity.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntity.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeEntityType.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntityType.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeEntityType.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntityType.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgePlatform.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgePlatform.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgePlayer.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgePlayer.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeUtil.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeUtil.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeUtil.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeUtil.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeWorld.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeWorldData.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldData.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeWorldData.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldData.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/NBTConverter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/NBTConverter.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/NBTConverter.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/NBTConverter.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/ThreadSafeCache.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ThreadSafeCache.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/ThreadSafeCache.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ThreadSafeCache.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/TileEntityBaseBlock.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityBaseBlock.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/TileEntityBaseBlock.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityBaseBlock.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/TileEntityUtils.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityUtils.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/TileEntityUtils.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/TileEntityUtils.java
diff --git a/src/forge/java/com/sk89q/worldedit/forge/WECUIPacketHandler.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/WECUIPacketHandler.java
similarity index 100%
rename from src/forge/java/com/sk89q/worldedit/forge/WECUIPacketHandler.java
rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/WECUIPacketHandler.java
diff --git a/src/forge/resources/defaults/worldedit.properties b/worldedit-forge/src/main/resources/defaults/worldedit.properties
similarity index 100%
rename from src/forge/resources/defaults/worldedit.properties
rename to worldedit-forge/src/main/resources/defaults/worldedit.properties
diff --git a/src/forge/resources/mcmod.info b/worldedit-forge/src/main/resources/mcmod.info
similarity index 93%
rename from src/forge/resources/mcmod.info
rename to worldedit-forge/src/main/resources/mcmod.info
index 50d9fca29..df47ddfac 100644
--- a/src/forge/resources/mcmod.info
+++ b/worldedit-forge/src/main/resources/mcmod.info
@@ -2,7 +2,7 @@
"modid": "WorldEdit",
"name": "WorldEdit",
"description": "WorldEdit is an easy-to-use in-game world editor for Minecraft, supporting both single player and multiplayer.",
- "version": "${version}",
+ "version": "${internalVersion}",
"mcversion": "${mcVersion}",
"url": "http://wiki.sk89q.com/wiki/WorldEdit",
"updateUrl": "",