Cleanup and restructure the project

This commit is contained in:
DemonWav 2016-04-01 22:55:54 -05:00
parent cd3d8fb27e
commit 8b66d99e73
21 changed files with 193 additions and 115 deletions

17
.gitignore vendored
View file

@ -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

22
.gitmodules vendored
View file

@ -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

@ -1 +0,0 @@
Subproject commit 6bff72410effad0b2b0b0d8471a477f42bd484ff

View file

@ -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

View file

@ -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"

View file

@ -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

11
scripts/build.sh Executable file
View file

@ -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

View file

@ -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

70
scripts/envSetup.sh Normal file
View file

@ -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
}

View file

@ -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 -
)

View file

@ -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

View file

@ -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}/"

17
scripts/paperclip.sh Executable file
View file

@ -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"

View file

@ -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"

View file

@ -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."

View file

@ -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

View file

1
work/Paperclip Submodule

@ -0,0 +1 @@
Subproject commit 1fb6fefbe36461552cd263092d7700a57bb1f7c3

View file