diff --git a/plugin.yml b/plugin.yml
new file mode 100644
index 0000000..be9625d
--- /dev/null
+++ b/plugin.yml
@@ -0,0 +1,10 @@
+name: ${project.name}
+version: ${project.version}
+description: A plugin to create gates for fast traveling.
+softdepend: [Vault]
+author: tomco, s1m0ne
+authors: [oloflarsson, locutus, DrAgonmoray, s1m0ne, tomco]
+website: FIXME
+
+main: de.craftinc.gates.dynmap.Plugin
+database: false
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..6e9d88a
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,111 @@
+
+
+ 4.0.0
+ de.craftinc
+ CraftIncGates-Dynmap
+ Craft Inc. Gates Dynmap
+ FIX-ME
+ jar
+ 0.0.1
+
+
+ UTF-8
+
+
+
+
+
+
+ GNU Lesser General Public License Version 3
+ https://www.gnu.org/licenses/lgpl-3.0-standalone.html
+ repo
+
+
+
+
+
+ ${project.name} ${project.version}
+ src
+
+
+ resources
+ true
+
+
+
+
+ maven-dependency-plugin
+
+
+ package
+
+ copy-dependencies
+
+
+ ${project.build.directory}/lib
+
+
+
+
+
+ exec-maven-plugin
+ org.codehaus.mojo
+ 1.2.1
+
+
+ Run Test Bukkit Server
+ install
+
+ exec
+
+
+ ${basedir}/scripts/test-deployment.sh
+
+
+
+
+
+
+
+
+
+
+ org.bukkit
+ bukkit
+ 1.7.2-R0.2-SNAPSHOT
+ jar
+ compile
+
+
+
+ org.dynmap
+ dynmap-api
+ 1.9
+
+
+
+ de.craftinc
+ CraftIncGates
+ 2.3
+ system
+ ${project.basedir}/Craft Inc. Gates 2.3.0.jar
+
+
+
+
+
+
+
+ bukkit-repo
+ http://repo.bukkit.org/content/groups/public
+
+
+
+ dynmap-repo
+ http://repo.mikeprimm.com/
+
+
+
+
+
diff --git a/resources/config.yml b/resources/config.yml
new file mode 100644
index 0000000..1e2f188
--- /dev/null
+++ b/resources/config.yml
@@ -0,0 +1,10 @@
+maxGateBlocks: 50
+playerGateBlockUpdateRadius: 64
+highlightDuration: 5
+saveOnChanges: true
+checkForBrokenGateFrames: true
+gateTeleportMessage: "Thank you for traveling with Craft Inc. Gates."
+showTeleportMessage: true
+gateTeleportNoPermissionMessage: "You are not allowed to use this gate!"
+showTeleportNoPermissionMessage: true
+gateMaterial: "nether portal"
\ No newline at end of file
diff --git a/resources/plugin.yml b/resources/plugin.yml
new file mode 120000
index 0000000..db3e742
--- /dev/null
+++ b/resources/plugin.yml
@@ -0,0 +1 @@
+../plugin.yml
\ No newline at end of file
diff --git a/scripts/minecraft.sh b/scripts/minecraft.sh
new file mode 100755
index 0000000..bcfa5b2
--- /dev/null
+++ b/scripts/minecraft.sh
@@ -0,0 +1,160 @@
+#!/bin/bash
+
+SCRIPT_DIR=$(dirname "$0")
+SERVICE='craftbukkit*.jar'
+#USERNAME="minecraft"
+CPU_COUNT=2
+BUKKIT="$SCRIPT_DIR/../target/lib/$SERVICE"
+INVOCATION="java -Xmx1000M -Xms300M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts -jar $BUKKIT nogui"
+MCPATH="$SCRIPT_DIR/../bukkit-testserver"
+
+if [ ! -d "$MCPATH" ]; then
+ mkdir -p "$MCPATH"
+fi
+
+ME=$(whoami)
+as_user() {
+ #if [ $ME == $USERNAME ] ; then
+ bash -c "$1"
+ #else
+ #su - $USERNAME -c "$1"
+ #fi
+}
+
+mc_start() {
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "Tried to start but $SERVICE was already running!"
+ else
+ echo "$SERVICE was not running... starting."
+ cd "$MCPATH"
+ as_user "cd "$MCPATH" && screen -dmS minecraft $INVOCATION"
+ sleep 7
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE is now running."
+ else
+ echo "Could not start $SERVICE."
+ fi
+ fi
+}
+
+mc_stop() {
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE is running... stopping."
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
+ sleep 2
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
+ sleep 6
+ else
+ echo "$SERVICE was not running."
+ fi
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE could not be shut down... still running."
+ else
+ echo "$SERVICE is shut down."
+ fi
+}
+
+mc_save() {
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE is running... saving."
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
+ else
+ echo "$SERVICE was not running."
+ fi
+}
+
+mc_reload() {
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE is running... reloading."
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"reload\"\015'"
+ else
+ echo "$SERVICE was not running."
+ fi
+}
+
+mc_reload_or_start() {
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE was already running! Doing a reload now!"
+ mc_reload
+ else
+ echo "$SERVICE was not running... starting."
+ cd "$MCPATH"
+ as_user "cd \"$MCPATH\" && screen -dmS minecraft $INVOCATION"
+ sleep 7
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE is now running."
+ else
+ echo "Could not start $SERVICE."
+ fi
+ fi
+}
+
+mc_ddidderr_admin() {
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE is running... making ddidder to admin and reloading permissions."
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"pex user ddidderr group set admin\"\015'"
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"pex reload\"\015'"
+ else
+ echo "$SERVICE was not running."
+ fi
+}
+
+case "$1" in
+ start)
+ echo "Starting Minecraft..."
+ mc_start
+ echo "DONE"
+ ;;
+ stop)
+ echo "Stopping Minecraft..."
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER SHUTTING DOWN!\"\015'"
+ mc_stop
+ echo "DONE"
+ ;;
+ restart)
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER REBOOT IN 10 SECONDS.\"\015'"
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ reload)
+ mc_reload
+ ;;
+ reload_or_start)
+ echo "Starting or reloading Minecraft..."
+ mc_reload_or_start
+ echo "DONE"
+ ;;
+ ddidderr_admin)
+ mc_ddidderr_admin
+ ;;
+ connected)
+ as_user "screen -p 0 -S minecraft -X eval 'stuff \"who\"\015'"
+ sleep 2s
+ tac "$MCPATH"/server.log | grep -m 1 "Connected"
+ ;;
+ status)
+ if ps ax | grep -v grep | grep -v -i SCREEN | grep "craftbukkit" > /dev/null
+ then
+ echo "$SERVICE is running."
+ else
+ echo "$SERVICE is not running."
+ fi
+ ;;
+ save)
+ mc_save
+ ;;
+ *)
+ echo "Usage: /etc/init.d/minecraft {start|stop|restart|connected|status}"
+ exit 1
+ ;;
+esac
diff --git a/scripts/test-deployment.sh b/scripts/test-deployment.sh
new file mode 100755
index 0000000..1af5650
--- /dev/null
+++ b/scripts/test-deployment.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+SCRIPT_DIR="$(dirname "$0")"
+
+DEVELOPER=$(whoami)
+
+if [ $DEVELOPER = "tobi" ]; then
+ BUKKIT_DIR="$HOME/minecraft/testbuk"
+ PLUGIN_DIR="$HOME/minecraft/testbuk/plugins"
+ START_STOP_SCRIPT="$BUKKIT_DIR/../minecraft.sh"
+else
+ BUKKIT_DIR="$SCRIPT_DIR/../bukkit-testserver"
+ PLUGIN_DIR="$SCRIPT_DIR/../bukkit-testserver/plugins"
+ START_STOP_SCRIPT="$SCRIPT_DIR/minecraft.sh"
+fi
+
+# TODO: This is a bad solution! Maven should write necessary information into an extra file.
+ARTIFACT_ID="$(grep -C5 'de.craftinc' "$SCRIPT_DIR/../pom.xml" | grep '' | sed 's/[ \t]*//g' | sed 's/<\/name>[ \t]*//g')"
+
+# TODO: This is a bad solution! Maven should write necessary information into an extra file.
+VERSION="$(grep -C5 'Craft Inc. Gates Dynmap' "$SCRIPT_DIR/../pom.xml" | grep '' | sed 's/[ \t]*//g' | sed 's/<\/version>[ \t]*//g')"
+
+mkdir -p "$PLUGIN_DIR"
+
+
+cp "$SCRIPT_DIR/../target/$ARTIFACT_ID $VERSION".jar "$PLUGIN_DIR/"
+
+echo -e "ddidderr\nmice_on_drugs\nMochaccino\nbeuth_el_max" > "$BUKKIT_DIR/ops.txt"
+
+$START_STOP_SCRIPT reload_or_start