aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore17
-rw-r--r--.gitmodules22
m---------Paperclip0
-rwxr-xr-xbuild.sh9
-rwxr-xr-xpaperclip.sh15
-rwxr-xr-xscripts/applyPatches.sh (renamed from applyPatches.sh)24
-rwxr-xr-xscripts/build.sh11
-rwxr-xr-xscripts/decompile.sh (renamed from decompile.sh)14
-rw-r--r--scripts/envSetup.sh70
-rwxr-xr-xscripts/importmcdev.sh (renamed from importmcdev.sh)14
-rwxr-xr-xscripts/init.sh (renamed from init.sh)23
-rwxr-xr-xscripts/makemcdevsrc.sh (renamed from makemcdevsrc.sh)16
-rwxr-xr-xscripts/paperclip.sh17
-rwxr-xr-xscripts/rebuildPatches.sh (renamed from rebuildPatches.sh)19
-rwxr-xr-xscripts/remap.sh (renamed from remap.sh)28
-rwxr-xr-xscripts/upstreamMerge.sh (renamed from upstreamMerge.sh)7
m---------work/BuildData (renamed from BuildData)0
m---------work/Bukkit (renamed from Bukkit)0
m---------work/CraftBukkit (renamed from CraftBukkit)0
m---------work/Paperclip0
m---------work/Spigot (renamed from Spigot)0
21 files changed, 192 insertions, 114 deletions
diff --git a/.gitignore b/.gitignore
index 658890931d..143c73b2a1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,7 +22,16 @@ build/
bin/
dist/
manifest.mf
-work/
+
+work/1.*
+work/BuildData
+work/Bukkit
+work/CraftBukkit
+work/Paperclip
+work/Spigot
+work/Spigot-Server
+work/Spigot-API
+work/*.jar
# Mac filesystem dust
.DS_Store/
@@ -37,15 +46,11 @@ work/
*~
# other stuff
-Spigot-API
-Spigot-Server
+
Paper-Server
Paper-API
PaperSpigot-Server
PaperSpigot-API
-Bukkit
-CraftBukkit
-Paperclip
Paperclip.jar
paperclip.jar
paperclip-*.jar
diff --git a/.gitmodules b/.gitmodules
index f8d5e238f2..758536e061 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,15 +1,15 @@
-[submodule "Bukkit"]
- path = Bukkit
+[submodule "work/Bukkit"]
+ path = work/Bukkit
url = https://hub.spigotmc.org/stash/scm/spigot/bukkit.git
-[submodule "CraftBukkit"]
- path = CraftBukkit
+[submodule "work/CraftBukkit"]
+ path = work/CraftBukkit
url = https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git
-[submodule "BuildData"]
- path = BuildData
+[submodule "work/BuildData"]
+ path = work/BuildData
url = https://hub.spigotmc.org/stash/scm/spigot/builddata.git
-[submodule "Paperclip"]
- path = Paperclip
- url = https://github.com/PaperMC/Paperclip.git
-[submodule "Spigot"]
- path = Spigot
+[submodule "work/Spigot"]
+ path = work/Spigot
url = https://hub.spigotmc.org/stash/scm/spigot/spigot.git
+[submodule "work/Paperclip"]
+ path = work/Paperclip
+ url = https://github.com/PaperMC/Paperclip.git
diff --git a/Paperclip b/Paperclip
deleted file mode 160000
-Subproject 6bff72410effad0b2b0b0d8471a477f42bd484f
diff --git a/build.sh b/build.sh
deleted file mode 100755
index 00eb9131e1..0000000000
--- a/build.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/bash
-
-(git submodule update --init && ./remap.sh && ./decompile.sh && ./init.sh && ./applyPatches.sh) || (
- echo "Failed to build Paper"
- exit 1
-) || exit 1
-if [ "$1" == "--jar" ]; then
- (mvn clean install && ./paperclip.sh) || exit 1
-fi
diff --git a/paperclip.sh b/paperclip.sh
deleted file mode 100755
index fe255bfa9b..0000000000
--- a/paperclip.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env bash
-basedir=`pwd`
-workdir=$basedir/work
-mcver=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
-
-cd ./Paperclip
-mvn clean package
-cd ..
-cp ./Paperclip/target/paperclip-${mcver}.jar ./paperclip.jar
-
-echo ""
-echo ""
-echo ""
-echo "Build success!"
-echo "Copied final jar to $(pwd)/paperclip.jar"
diff --git a/applyPatches.sh b/scripts/applyPatches.sh
index 62b82e5b24..3c4d3a2a24 100755
--- a/applyPatches.sh
+++ b/scripts/applyPatches.sh
@@ -1,12 +1,13 @@
-#!/bin/bash
+#!/usr/bin/env bash
PS1="$"
-basedir=`pwd`
+basedir="$1"
+workdir="$basedir/work"
echo "Rebuilding Forked projects.... "
function applyPatch {
what=$1
- what_name=$(basename $what)
+ what_name=$(basename "$what")
target=$2
branch=$3
@@ -21,7 +22,7 @@ function applyPatch {
cd "$basedir/$target"
echo "Resetting $target to $what_name..."
git remote rm upstream > /dev/null 2>&1
- git remote add upstream $basedir/$what >/dev/null 2>&1
+ git remote add upstream "$basedir/$what" >/dev/null 2>&1
git checkout master 2>/dev/null || git checkout -b master
git fetch upstream >/dev/null 2>&1
git reset --hard upstream/upstream
@@ -39,8 +40,8 @@ function applyPatch {
}
# Move into spigot dir
-pushd Spigot
-basedir=$basedir/Spigot
+cd "$workdir/Spigot"
+basedir=$(pwd)
# Apply Spigot
(
applyPatch ../Bukkit Spigot-API HEAD &&
@@ -50,17 +51,18 @@ basedir=$basedir/Spigot
exit 1
) || exit 1
# Move out of Spigot
-popd
-basedir=$(dirname "$basedir")
+basedir="$1"
+cd "$basedir"
echo "Importing MC Dev"
-./importmcdev.sh
+./scripts/importmcdev.sh "$basedir"
# Apply paper
+cd "$basedir"
(
- applyPatch Spigot/Spigot-API Paper-API HEAD &&
- applyPatch Spigot/Spigot-Server Paper-Server HEAD
+ applyPatch "work/Spigot/Spigot-API" Paper-API HEAD &&
+ applyPatch "work/Spigot/Spigot-Server" Paper-Server HEAD
) || (
echo "Failed to apply Paper Patches"
exit 1
diff --git a/scripts/build.sh b/scripts/build.sh
new file mode 100755
index 0000000000..e5281754ba
--- /dev/null
+++ b/scripts/build.sh
@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+
+basedir="$1"
+
+(git submodule update --init && ./scripts/remap.sh "$basedir" && ./scripts/decompile.sh "$basedir" && ./scripts/init.sh "$basedir" && ./scripts/applyPatches.sh "$basedir") || (
+ echo "Failed to build Paper"
+ exit 1
+) || exit 1
+if [ "$2" == "--jar" ]; then
+ (mvn clean install && ./scripts/paperclip.sh "$basedir") || exit 1
+fi
diff --git a/decompile.sh b/scripts/decompile.sh
index 81947e1c71..9dc9691690 100755
--- a/decompile.sh
+++ b/scripts/decompile.sh
@@ -1,11 +1,11 @@
-#!/bin/bash
+#!/usr/bin/env bash
PS1="$"
-basedir=`pwd`
-workdir=$basedir/work
-minecraftversion=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
-decompiledir=$workdir/$minecraftversion
-classdir=$decompiledir/classes
+basedir="$1"
+workdir="$basedir/work"
+minecraftversion=$(cat "$workdir/BuildData/info.json" | grep minecraftVersion | cut -d '"' -f 4)
+decompiledir="$workdir/$minecraftversion"
+classdir="$decompiledir/classes"
echo "Extracting NMS classes..."
if [ ! -d "$classdir" ]; then
@@ -22,7 +22,7 @@ fi
echo "Decompiling classes..."
if [ ! -d "$decompiledir/net/minecraft/server" ]; then
cd "$basedir"
- java -jar BuildData/bin/fernflower.jar -dgs=1 -hdc=0 -asc=1 -udv=0 "$classdir" "$decompiledir"
+ java -jar "$workdir/BuildData/bin/fernflower.jar" -dgs=1 -hdc=0 -asc=1 -udv=0 "$classdir" "$decompiledir"
if [ "$?" != "0" ]; then
echo "Failed to decompile classes."
exit 1
diff --git a/scripts/envSetup.sh b/scripts/envSetup.sh
new file mode 100644
index 0000000000..b2cd3d61c7
--- /dev/null
+++ b/scripts/envSetup.sh
@@ -0,0 +1,70 @@
+#!/usr/bin/env bash
+
+# Set root project directory
+CWD=$(pwd)
+
+rbp() {
+ NEW_CWD=$(pwd)
+ cd "$CWD"
+ scripts/rebuildPatches.sh "$CWD"
+ cd "$NEW_CWD"
+}
+
+rebuildPatches() {
+ rbp
+}
+
+lunch() {
+ NEW_CWD=$(pwd)
+ cd "$CWD"
+
+ if [[ "$1" = "jar" ]] || [[ "$1" = "--jar" ]] ; then
+ ARG="--jar"
+ fi
+
+ scripts/build.sh "$CWD" "$ARG"
+ ARG=""
+
+ cd "$NEW_CWD"
+}
+
+root() {
+ cd "$CWD"
+}
+
+LAST_EDIT=""
+
+edit() {
+ if [[ "$1" = "server" ]] ; then
+ cd "$CWD/Paper-Server"
+ LAST_EDIT=$(pwd)
+
+ stash
+ git rebase -i upstream/upstream
+ unstash
+ elif [[ "$1" = "api" ]] ; then
+ cd "$CWD/Paper-API"
+ LAST_EDIT=$(pwd)
+
+ stash
+ git rebase -i upstream/upstream
+ unstash
+ elif [[ "$1" = "continue" ]] ; then
+ cd "$LAST_EDIT"
+ git add .
+ git commit --amend
+ git rebase --continue
+ else
+ echo "You must edit either the api or server."
+ fi
+}
+
+stash() {
+ STASHED=$(git stash)
+}
+
+unstash() {
+ if [[ "$STASHED" != "No local changes to save" ]] ; then
+ git stash pop
+ fi
+} \ No newline at end of file
diff --git a/importmcdev.sh b/scripts/importmcdev.sh
index 9900c11dc0..829a5ea1a8 100755
--- a/importmcdev.sh
+++ b/scripts/importmcdev.sh
@@ -3,17 +3,17 @@
nms="net/minecraft/server"
export MODLOG=""
PS1="$"
-basedir=`pwd`
+basedir="$1"
-workdir=$basedir/work
-minecraftversion=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
-decompiledir=$workdir/$minecraftversion
+workdir="$basedir/work"
+minecraftversion=$(cat "$workdir/BuildData/info.json" | grep minecraftVersion | cut -d '"' -f 4)
+decompiledir="$workdir/$minecraftversion"
export importedmcdev=""
function import {
export importedmcdev="$importedmcdev $1"
file="${1}.java"
- target="$basedir/Spigot/Spigot-Server/src/main/java/$nms/$file"
+ target="$workdir/Spigot/Spigot-Server/src/main/java/$nms/$file"
base="$decompiledir/$nms/$file"
if [[ ! -f "$target" ]]; then
@@ -24,7 +24,7 @@ function import {
}
(
- cd Spigot/Spigot-Server/
+ cd "$workdir/Spigot/Spigot-Server/"
lastlog=$(git log -1 --oneline)
if [[ "$lastlog" = *"mc-dev Imports"* ]]; then
git reset --hard HEAD^
@@ -60,7 +60,7 @@ import PersistentVillage
import TileEntityEnderChest
(
- cd Spigot/Spigot-Server/
+ cd "$workdir/Spigot/Spigot-Server/"
git add src -A
echo -e "mc-dev Imports\n\n$MODLOG" | git commit src -F -
)
diff --git a/init.sh b/scripts/init.sh
index 95dc3b37c3..af9b1b9032 100755
--- a/init.sh
+++ b/scripts/init.sh
@@ -1,32 +1,27 @@
-#!/bin/bash
+#!/usr/bin/env bash
PS1="$"
-basedir=`pwd`
+basedir="$1"
workdir="$basedir/work"
-minecraftversion=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
+minecraftversion=$(cat "$workdir/BuildData/info.json" | grep minecraftVersion | cut -d '"' -f 4)
decompiledir="$workdir/$minecraftversion"
nms="$decompiledir/net/minecraft/server"
-cb=src/main/java/net/minecraft/server
-
-paperjar="Paper-Server/target/paper-${minecraftversion}.jar"
-vanillajar="work/${minecraftversion}/${minecraftversion}.jar"
-
-echo -e "mcver=${minecraftversion}\npaperjar=../${paperjar}\nvanillajar=../${vanillajar}\n" > paperclip.properties
+cb="src/main/java/net/minecraft/server"
patch=$(which patch 2>/dev/null)
if [ "x$patch" == "x" ]; then
- patch=$basedir/hctap.exe
+ patch="$basedir/hctap.exe"
fi
echo "Applying CraftBukkit patches to NMS..."
-cd "$basedir/CraftBukkit"
+cd "$workdir/CraftBukkit"
git checkout -B patched HEAD >/dev/null 2>&1
-rm -rf $cb
-mkdir -p $cb
+rm -rf "$cb"
+mkdir -p "$cb"
for file in $(ls nms-patches)
do
patchFile="nms-patches/$file"
- file="$(echo $file | cut -d. -f1).java"
+ file="$(echo "$file" | cut -d. -f1).java"
echo "Patching $file < $patchFile"
sed -i 's/\r//' "$nms/$file" > /dev/null
diff --git a/makemcdevsrc.sh b/scripts/makemcdevsrc.sh
index 375127b052..b5ea7daeab 100755
--- a/makemcdevsrc.sh
+++ b/scripts/makemcdevsrc.sh
@@ -1,14 +1,14 @@
-#!/bin/bash
+#!/usr/bin/env bash
PS1="$"
-workdir=work
-minecraftversion=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
-decompiledir=$workdir/$minecraftversion
-nms=$decompiledir/net/minecraft/server
-cb=src/main/java/net/minecraft/server
-papernms=Paper-Server/src/main/java/net/minecraft/server
-mcdevsrc=${decompiledir}/src/net/minecraft/server
+basedir="$1"
+workdir="$basedir/work"
+minecraftversion=$(cat "$basedir/BuildData/info.json" | grep minecraftVersion | cut -d '"' -f 4)
+decompiledir="$workdir/$minecraftversion"
+nms="$decompiledir/net/minecraft/server"
+papernms="Paper-Server/src/main/java/net/minecraft/server"
+mcdevsrc="${decompiledir}/src/net/minecraft/server"
rm -rf "${mcdevsrc}"
mkdir -p "${mcdevsrc}"
cp ${nms}/*.java "${mcdevsrc}/"
diff --git a/scripts/paperclip.sh b/scripts/paperclip.sh
new file mode 100755
index 0000000000..9840f3c944
--- /dev/null
+++ b/scripts/paperclip.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+basedir="$1"
+workdir="$basedir/work"
+mcver=$(cat "$workdir/BuildData/info.json" | grep minecraftVersion | cut -d '"' -f 4)
+paperjar="../../Paper-Server/target/paper-$mcver.jar"
+vanillajar="../$mcver/$mcver.jar"
+
+cd "$workdir/Paperclip"
+mvn clean package "-Dmcver=$mcver" "-Dpaperjar=$paperjar" "-Dvanillajar=$vanillajar"
+cd ..
+cp "$workdir/Paperclip/target/paperclip-${mcver}.jar" "$basedir/paperclip.jar"
+
+echo ""
+echo ""
+echo ""
+echo "Build success!"
+echo "Copied final jar to $basedir/paperclip.jar"
diff --git a/rebuildPatches.sh b/scripts/rebuildPatches.sh
index 003269f6ac..6416e42e85 100755
--- a/rebuildPatches.sh
+++ b/scripts/rebuildPatches.sh
@@ -1,7 +1,8 @@
-#!/bin/bash
+#!/usr/bin/env bash
PS1="$"
-basedir=`pwd`
+basedir="$1"
+workdir="$basedir/work"
echo "Rebuilding patch files from current fork state..."
git config core.safecrlf false
@@ -9,8 +10,8 @@ function cleanupPatches {
cd "$1"
for patch in *.patch; do
echo "$patch"
- gitver=$(tail -n 2 $patch | grep -ve "^$" | tail -n 1)
- diffs=$(git diff --staged $patch | grep -E "^(\+|\-)" | grep -Ev "(From [a-z0-9]{32,}|\-\-\- a|\+\+\+ b|.index)")
+ gitver=$(tail -n 2 "$patch" | grep -ve "^$" | tail -n 1)
+ diffs=$(git diff --staged "$patch" | grep -E "^(\+|\-)" | grep -Ev "(From [a-z0-9]{32,}|\-\-\- a|\+\+\+ b|.index)")
testver=$(echo "$diffs" | tail -n 2 | grep -ve "^$" | tail -n 1 | grep "$gitver")
if [ "x$testver" != "x" ]; then
@@ -18,15 +19,15 @@ function cleanupPatches {
fi
if [ "x$diffs" == "x" ] ; then
- git reset HEAD $patch >/dev/null
- git checkout -- $patch >/dev/null
+ git reset HEAD "$patch" >/dev/null
+ git checkout -- "$patch" >/dev/null
fi
done
}
function savePatches {
what=$1
- what_name=$(basename $what)
+ what_name=$(basename "$what")
target=$2
echo "Formatting patches for $what..."
@@ -42,5 +43,5 @@ function savePatches {
echo " Patches saved for $what to $what_name-Patches/"
}
-savePatches Spigot/Spigot-API Paper-API
-savePatches Spigot/Spigot-Server Paper-Server
+savePatches "$workdir/Spigot/Spigot-API" "Paper-API"
+savePatches "$workdir/Spigot/Spigot-Server" "Paper-Server"
diff --git a/remap.sh b/scripts/remap.sh
index 3bd79f3ba2..abfde02e6a 100755
--- a/remap.sh
+++ b/scripts/remap.sh
@@ -1,15 +1,15 @@
-#!/bin/bash
+#!/usr/bin/env bash
PS1="$"
-basedir=`pwd`
-workdir=$basedir/work
-minecraftversion=$(cat BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
-minecrafthash=$(cat BuildData/info.json | grep minecraftHash | cut -d '"' -f 4)
-accesstransforms=BuildData/mappings/$(cat BuildData/info.json | grep accessTransforms | cut -d '"' -f 4)
-classmappings=BuildData/mappings/$(cat BuildData/info.json | grep classMappings | cut -d '"' -f 4)
-membermappings=BuildData/mappings/$(cat BuildData/info.json | grep memberMappings | cut -d '"' -f 4)
-packagemappings=BuildData/mappings/$(cat BuildData/info.json | grep packageMappings | cut -d '"' -f 4)
-jarpath=$workdir/$minecraftversion/$minecraftversion
+basedir="$1"
+workdir="$basedir/work"
+minecraftversion=$(cat ${workdir}/BuildData/info.json | grep minecraftVersion | cut -d '"' -f 4)
+minecrafthash=$(cat ${workdir}/BuildData/info.json | grep minecraftHash | cut -d '"' -f 4)
+accesstransforms="$workdir/BuildData/mappings/"$(cat ${workdir}/BuildData/info.json | grep accessTransforms | cut -d '"' -f 4)
+classmappings="$workdir/BuildData/mappings/"$(cat ${workdir}/BuildData/info.json | grep classMappings | cut -d '"' -f 4)
+membermappings="$workdir/BuildData/mappings/"$(cat ${workdir}/BuildData/info.json | grep memberMappings | cut -d '"' -f 4)
+packagemappings="$workdir/BuildData/mappings/"$(cat ${workdir}/BuildData/info.json | grep packageMappings | cut -d '"' -f 4)
+jarpath="$workdir/$minecraftversion/$minecraftversion"
echo "Downloading unmapped vanilla jar..."
if [ ! -f "$jarpath.jar" ]; then
@@ -36,7 +36,7 @@ fi
echo "Applying class mappings..."
if [ ! -f "$jarpath-cl.jar" ]; then
- java -jar BuildData/bin/SpecialSource-2.jar map -i "$jarpath.jar" -m "$classmappings" -o "$jarpath-cl.jar" 1>/dev/null
+ java -jar "$workdir/BuildData/bin/SpecialSource-2.jar" map -i "$jarpath.jar" -m "$classmappings" -o "$jarpath-cl.jar" 1>/dev/null
if [ "$?" != "0" ]; then
echo "Failed to apply class mappings."
exit 1
@@ -45,7 +45,7 @@ fi
echo "Applying member mappings..."
if [ ! -f "$jarpath-m.jar" ]; then
- java -jar BuildData/bin/SpecialSource-2.jar map -i "$jarpath-cl.jar" -m "$membermappings" -o "$jarpath-m.jar" 1>/dev/null
+ java -jar "$workdir/BuildData/bin/SpecialSource-2.jar" map -i "$jarpath-cl.jar" -m "$membermappings" -o "$jarpath-m.jar" 1>/dev/null
if [ "$?" != "0" ]; then
echo "Failed to apply member mappings."
exit 1
@@ -54,7 +54,7 @@ fi
echo "Creating remapped jar..."
if [ ! -f "$jarpath-mapped.jar" ]; then
- java -jar BuildData/bin/SpecialSource.jar --kill-lvt -i "$jarpath-m.jar" --access-transformer "$accesstransforms" -m "$packagemappings" -o "$jarpath-mapped.jar" 1>/dev/null
+ java -jar "$workdir/BuildData/bin/SpecialSource.jar" --kill-lvt -i "$jarpath-m.jar" --access-transformer "$accesstransforms" -m "$packagemappings" -o "$jarpath-mapped.jar" 1>/dev/null
if [ "$?" != "0" ]; then
echo "Failed to create remapped jar."
exit 1
@@ -62,7 +62,7 @@ if [ ! -f "$jarpath-mapped.jar" ]; then
fi
echo "Installing remapped jar..."
-cd CraftBukkit # Need to be in a directory with a valid POM at the time of install.
+cd "$workdir/CraftBukkit" # Need to be in a directory with a valid POM at the time of install.
mvn install:install-file -q -Dfile="$jarpath-mapped.jar" -Dpackaging=jar -DgroupId=org.spigotmc -DartifactId=minecraft-server -Dversion="$minecraftversion-SNAPSHOT"
if [ "$?" != "0" ]; then
echo "Failed to install remapped jar."
diff --git a/upstreamMerge.sh b/scripts/upstreamMerge.sh
index c3d5db20ad..16dfaf48d1 100755
--- a/upstreamMerge.sh
+++ b/scripts/upstreamMerge.sh
@@ -1,10 +1,11 @@
-#!/bin/bash
+#!/usr/bin/env bash
PS1="$"
-basedir=`pwd`
+basedir="$1"
+workdir="$basedir/work"
function update {
- cd "$basedir/$1"
+ cd "$workdir/$1"
git fetch && git reset --hard origin/master
cd ../
git add $1
diff --git a/BuildData b/work/BuildData
-Subproject 46d0be39f2fae4732ebe544dfada3949a18e209
+Subproject 46d0be39f2fae4732ebe544dfada3949a18e209
diff --git a/Bukkit b/work/Bukkit
-Subproject 8ce4d2f45fbdb7cd85346b220f6a9d34f200091
+Subproject 8ce4d2f45fbdb7cd85346b220f6a9d34f200091
diff --git a/CraftBukkit b/work/CraftBukkit
-Subproject f01861f80bc8d903f72210e7d79c90c35473aa7
+Subproject f01861f80bc8d903f72210e7d79c90c35473aa7
diff --git a/work/Paperclip b/work/Paperclip
new file mode 160000
+Subproject 1fb6fefbe36461552cd263092d7700a57bb1f7c
diff --git a/Spigot b/work/Spigot
-Subproject a1b8bf3530b3f83fbd94cc8624d05426b0d9de5
+Subproject a1b8bf3530b3f83fbd94cc8624d05426b0d9de5