diff --git a/.gitignore b/.gitignore
index 7994edea..abe1c379 100644
--- a/.gitignore
+++ b/.gitignore
@@ -137,4 +137,4 @@ Session.vim
# Minecraft Server
/logs
-*.log
\ No newline at end of file
+*.log
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 00000000..6a791dfd
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,131 @@
+plugins {
+ id 'java'
+ id 'maven'
+
+ id 'idea'
+ id 'eclipse'
+
+ id 'com.github.johnrengelman.shadow' version '1.2.1'
+}
+
+ext {
+ name = 'CanaryMod'
+ inceptionYear = '2012'
+ packaging = 'jar'
+ url = 'http://www.canarymod.net'
+ organization = 'CanaryMod Team'
+
+ libVersion = '1.2.1-SNAPSHOT'
+ serverVersion = '1.8.0_01-SNAPSHOT'
+}
+
+sourceCompatibility = '1.6'
+targetCompatibility = '1.6'
+
+group = 'net.canarymod'
+archivesBaseName = 'CanaryMod'
+version = "1.8.0-$libVersion"
+
+configurations {
+ deployerJars
+}
+
+repositories {
+ mavenCentral()
+ maven {
+ name = 'Visual Illusions Repository'
+ url = 'http://nexus.visualillusionsent.net/content/groups/public/'
+ }
+ maven {
+ name = 'Minecraft Libraries'
+ url = 'https://libraries.minecraft.net'
+ }
+ maven {
+ name = 'mcstats.org releases'
+ url = 'http://repo.mcstats.org/content/repositories/releases/'
+ }
+ maven {
+ name = 'mcstats.org snapshots'
+ url = 'http://repo.mcstats.org/content/repositories/snapshots/'
+ }
+}
+
+dependencies {
+ compile 'net.canarymod:CanaryLib:' + libVersion
+ compile 'net.minecraft:server:' + serverVersion
+ compile 'jline:jline:2.11'
+
+ testCompile 'junit:junit:4.12'
+
+ deployerJars 'org.apache.maven.wagon:wagon-ftp:2.2'
+}
+
+shadowJar {
+ exclude 'META-INF/*.SF'
+ exclude 'META-INF/*.DSA'
+ exclude 'META-INF/*.RSA'
+ relocate 'org.mcstats', 'net.canarymod.metrics'
+ classifier 'shaded'
+}
+assemble.dependsOn shadowJar
+
+jar {
+ manifest {
+ attributes(
+ 'Implementation-Name': name,
+ 'Implementation-Version': version,
+ 'Implementation-Vendor': organization,
+ 'Implementation-Vendor-Id': 'net.canarymod',
+ 'Specification-Name': 'CanaryLib',
+ 'Specification-Version': libVersion,
+ 'Specification-Vendor': 'CanaryMod Team',
+ 'Specification-Vendor-Id': 'net.canarymod',
+ 'Main-Class': 'net.canarymod.Main',
+ 'Server-Version': serverVersion,
+ 'Class-Path': 'lib/'
+ )
+ }
+}
+
+task wrapper(type: Wrapper) {
+ gradleVersion = '2.10'
+}
+
+uploadArchives {
+ repositories {
+ mavenDeployer {
+ configuration = configurations.deployerJars
+
+ if(project.hasProperty('repo')) {
+ repository(url: project.repo) {
+ authentication(userName: project.repoUserName, password: project.repoPassword)
+ }
+ }
+
+ pom {
+ groupId = project.group
+ artifactId = project.archivesBaseName
+ version = project.version
+ project {
+ name project.archivesBaseName
+ packaging project.packaging
+ url project.url
+
+ scm {
+ url 'https://github.com/CanaryModTeam/CanaryMod'
+ connection 'scm:git:git://github.com/CanaryModTeam/CanaryMod.git'
+ developerConnection 'scm:git:git@github.com:CanaryModTeam/CanaryMod.git'
+ }
+
+ licenses {
+ license {
+ name 'BSD 3-Clause License'
+ url 'http://opensource.org/licenses/BSD-3-Clause'
+ distribution 'repo'
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 00000000..94114481
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 00000000..28615a68
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Jan 20 16:49:51 GMT 2016
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-bin.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 00000000..9d82f789
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 00000000..aec99730
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 32b847a1..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,284 +0,0 @@
-
-
- 4.0.0
- net.canarymod
- CanaryMod
- jar
- 1.8.0-1.2.1-SNAPSHOT
- CanaryMod
- http://www.canarymod.net
- 2012
-
- UTF-8
- 1.8.0_01-SNAPSHOT
- 1.2.1-SNAPSHOT
-
- dd MMMM yyyy HH:mm z
-
-
-
- BSD 3-Clause License
- http://opensource.org/licenses/BSD-3-Clause
-
- Copyright (c) 2012 - 2015, CanaryMod Team
- Under the management of PlayBlack and Visual Illusions Entertainment
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- * Neither the name of the CanaryMod Team nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL CANARYMOD TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- Any source code from the Minecraft Server is not owned by CanaryMod Team, PlayBlack,
- Visual Illusions Entertainment, or its contributors and is not covered by above license.
- Usage of source code from the Minecraft Server is subject to the Minecraft End User License Agreement
- as set forth by Mojang AB.
- The Minecraft EULA can be viewed at https://account.mojang.com/documents/minecraft_eula
- CanaryMod Team, PlayBlack, Visual Illusions Entertainment, CanaryLib, CanaryMod,
- and its contributors are NOT affiliated with, endorsed, or sponsored by Mojang AB, makers of Minecraft.
- "Minecraft" is a trademark of Notch Development AB
- "CanaryMod" name is used with permission from FallenMoonNetwork.
-
-
-
-
- scm:git:git://github.com/CanaryModTeam/CanaryMod.git
- https://github.com/CanaryModTeam/CanaryMod
- scm:git:git@github.com:CanaryModTeam/CanaryMod.git
-
-
-
- vi-repo
- Visual Illusions Repository
- http://nexus.visualillusionsent.net/content/groups/public/
-
-
-
-
- net.canarymod
- CanaryLib
- ${api.version}
-
-
- net.minecraft
- server
- ${minecraft.server.version}
-
-
- junit
- junit
- 4.12
- test
-
-
- jline
- jline
- 2.11
-
-
-
- ${basedir}/src/main/java/
-
-
- ${basedir}/src/main/resources
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 2.3.2
-
- 1.6
- 1.6
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 2.0
-
-
- package
-
- shade
-
-
- true
- shaded
-
-
-
-
-
-
- *:*
-
- META-INF/*.SF
- META-INF/*.DSA
- META-INF/*.RSA
-
-
-
-
-
-
- org.mcstats
- net.canarymod.metrics
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 2.3.1
-
-
- true
-
- false
- true
-
-
- CanaryMod
- ${project.version}
- CanaryMod Team
- net.canarymod
- ${build.number}
- CanaryLib
- ${api.version}
- CanaryMod Team
- net.canarymod
- ${minecraft.server.version}
- net.canarymod.Main
- lib/
-
-
-
- net/canarymod/
-
- true
-
-
-
-
-
-
-
-
- maven-assembly-plugin
- 2.2-beta-2
-
- ${basedir}/src/main/assembly/default.xml
-
-
-
-
- org.apache.maven.plugins
- maven-release-plugin
- 2.2.2
-
- assembly:assembly
- assembly:assembly
- @{project.version}
-
-
-
-
-
-
-
-
- jenkins
-
-
- BUILD_NUMBER
-
-
-
- ${BUILD_NUMBER}
-
-
-
- attach-sources-javadoc
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.2.1
-
-
- attach-sources
-
- jar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-javadoc-plugin
- 2.7
-
- true
- ${project.name} ${project.version}
- Generated: ${maven.build.timestamp}
-
-
- http://docs.visualillusionsent.net/VIUtils/1.3.0/
- http://www.jdom.org/docs/apidocs/
-
-
-
-
- PluginDev
- a
- PluginDev:
-
-
-
-
-
- attach-javadocs
-
- jar
-
-
-
-
-
-
-
-
-
diff --git a/src/main/assembly/default.xml b/src/main/assembly/default.xml
deleted file mode 100644
index d0da7df0..00000000
--- a/src/main/assembly/default.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
- false
-
- tar.gz
- tar.bz2
- zip
-
-
-
- ${project.build.directory}/${artifactId}-${project.version}.jar
- CanaryMod.jar
- /
- false
-
-
-
-
- ${project.build.directory}/lib
- /lib
-
- *.jar
-
-
-
- ${project.basedir}
- /
-
- README*
- LICENSE*
-
-
-
-