Update paperweight & build config for Spigot changes
This commit is contained in:
parent
211b20ffa5
commit
604ebc2cac
|
@ -0,0 +1,7 @@
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
*.sh text eol=lf
|
||||||
|
gradlew text eol=lf
|
||||||
|
*.bat text eol=crlf
|
||||||
|
|
||||||
|
*.jar binary
|
|
@ -1,3 +1,6 @@
|
||||||
|
.gradle/
|
||||||
|
build/
|
||||||
|
|
||||||
# Eclipse stuff
|
# Eclipse stuff
|
||||||
.classpath
|
.classpath
|
||||||
.project
|
.project
|
||||||
|
|
|
@ -3,22 +3,20 @@
|
||||||
# Hopper.getLevel()
|
# Hopper.getLevel()
|
||||||
# Entity.getCommandSenderWorld()
|
# Entity.getCommandSenderWorld()
|
||||||
# to getWorld(), which confuses our ability to map this method properly. This patch disambiguates it
|
# to getWorld(), which confuses our ability to map this method properly. This patch disambiguates it
|
||||||
net/minecraft/world/level/block/entity/IHopper v ()Lnet/minecraft/world/level/World; getLevel
|
net/minecraft/world/item/trading/IMerchant fD ()Lnet/minecraft/world/level/World; getLevel
|
||||||
net/minecraft/world/entity/vehicle/EntityMinecartHopper v ()Lnet/minecraft/world/level/World; getLevel
|
net/minecraft/world/entity/npc/EntityVillagerAbstract fD ()Lnet/minecraft/world/level/World; getLevel
|
||||||
net/minecraft/world/item/trading/IMerchant eV ()Lnet/minecraft/world/level/World; getLevel
|
|
||||||
net/minecraft/world/entity/npc/EntityVillagerAbstract eV ()Lnet/minecraft/world/level/World; getLevel
|
|
||||||
|
|
||||||
# CraftBukkit mappings sometimes have mappings for child classes and not parent classes
|
# CraftBukkit mappings sometimes have mappings for child classes and not parent classes
|
||||||
# We handle this fine for deobf but this breaks reobf. These Patches fix those cases
|
# We handle this fine for deobf but this breaks reobf. These Patches fix those cases
|
||||||
|
|
||||||
# BossBattle -> BossBattleServer
|
# BossBattle -> BossBattleServer
|
||||||
net/minecraft/world/BossBattle a (F)V setProgress
|
# net/minecraft/world/BossBattle a (F)V setProgress
|
||||||
net/minecraft/world/BossBattle c (Z)Lnet/minecraft/world/BossBattle; setCreateFog
|
# net/minecraft/world/BossBattle c (Z)Lnet/minecraft/world/BossBattle; setCreateFog
|
||||||
net/minecraft/world/BossBattle a (Z)Lnet/minecraft/world/BossBattle; setDarkenSky
|
# net/minecraft/world/BossBattle a (Z)Lnet/minecraft/world/BossBattle; setDarkenSky
|
||||||
net/minecraft/world/BossBattle b (Z)Lnet/minecraft/world/BossBattle; setPlayMusic
|
# net/minecraft/world/BossBattle b (Z)Lnet/minecraft/world/BossBattle; setPlayMusic
|
||||||
|
|
||||||
# IChunkProvider -> ChunkProviderServer
|
# IChunkProvider -> ChunkProviderServer
|
||||||
net/minecraft/world/level/chunk/IChunkProvider b (II)Z isLoaded
|
# net/minecraft/world/level/chunk/IChunkProvider b (II)Z isLoaded
|
||||||
|
|
||||||
# BehaviorWorkComposter -> BehaviorWork
|
# BehaviorWorkComposter -> BehaviorWork
|
||||||
net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter a (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/npc/EntityVillager;)V doWork
|
# net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter a (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/npc/EntityVillager;)V doWork
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
--- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch
|
|
||||||
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.patch
|
|
||||||
@@ -1,14 +1,5 @@
|
|
||||||
--- a/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java
|
|
||||||
+++ b/net/minecraft/world/entity/ai/behavior/BehaviorWorkComposter.java
|
|
||||||
-@@ -24,7 +24,7 @@
|
|
||||||
- public BehaviorWorkComposter() {}
|
|
||||||
-
|
|
||||||
- @Override
|
|
||||||
-- protected void a(WorldServer worldserver, EntityVillager entityvillager) {
|
|
||||||
-+ protected void doWork(WorldServer worldserver, EntityVillager entityvillager) { // PAIL
|
|
||||||
- Optional<GlobalPos> optional = entityvillager.getBehaviorController().getMemory(MemoryModuleType.JOB_SITE);
|
|
||||||
-
|
|
||||||
- if (optional.isPresent()) {
|
|
||||||
@@ -43,7 +43,7 @@
|
|
||||||
BlockPosition blockposition = globalpos.getBlockPosition();
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
--- a/net/minecraft/server/level/ChunkProviderServer.patch
|
|
||||||
+++ b/net/minecraft/server/level/ChunkProviderServer.patch
|
|
||||||
@@ -74,8 +74,8 @@
|
|
||||||
+ return playerchunk == null || playerchunk.oldTicketLevel > i; // CraftBukkit using oldTicketLevel for isLoaded checks
|
|
||||||
}
|
|
||||||
|
|
||||||
- public boolean isLoaded(int i, int j) {
|
|
||||||
-@@ -282,19 +308,19 @@
|
|
||||||
+ @Override
|
|
||||||
+@@ -283,19 +309,19 @@
|
|
||||||
public boolean a(Entity entity) {
|
|
||||||
long i = ChunkCoordIntPair.pair(MathHelper.floor(entity.locX()) >> 4, MathHelper.floor(entity.locZ()) >> 4);
|
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean a(long i, Function<PlayerChunk, CompletableFuture<Either<Chunk, PlayerChunk.Failure>>> function) {
|
|
||||||
-@@ -316,11 +342,31 @@
|
|
||||||
+@@ -317,11 +343,31 @@
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void close() throws IOException {
|
|
||||||
@@ -131,7 +131,7 @@
|
|
||||||
public void tick(BooleanSupplier booleansupplier) {
|
|
||||||
this.world.getMethodProfiler().enter("purge");
|
|
||||||
this.chunkMapDistance.purgeTickets();
|
|
||||||
-@@ -340,12 +386,12 @@
|
|
||||||
+@@ -341,12 +387,12 @@
|
|
||||||
this.lastTickTime = i;
|
|
||||||
WorldData worlddata = this.world.getWorldData();
|
|
||||||
boolean flag = this.world.isDebugWorld();
|
|
||||||
@@ -146,7 +146,7 @@
|
|
||||||
|
|
||||||
this.world.getMethodProfiler().enter("naturalSpawnCount");
|
|
||||||
int l = this.chunkMapDistance.b();
|
|
||||||
-@@ -532,12 +578,18 @@
|
|
||||||
+@@ -533,12 +579,18 @@
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected boolean executeNext() {
|
|
|
@ -10,41 +10,41 @@ c net/minecraft/world/level/World net/minecraft/world/level/Level
|
||||||
|
|
||||||
# CraftBukkit adds the server field, clashes with a Mojang field
|
# CraftBukkit adds the server field, clashes with a Mojang field
|
||||||
c net/minecraft/server/network/PlayerConnection net/minecraft/server/network/ServerGamePacketListenerImpl
|
c net/minecraft/server/network/PlayerConnection net/minecraft/server/network/ServerGamePacketListenerImpl
|
||||||
f Lorg/bukkit/craftbukkit/CraftServer; server craftServer
|
m ()Lorg/bukkit/craftbukkit/entity/CraftPlayer; getPlayer getCraftPlayer
|
||||||
|
|
||||||
# CraftBukkit adds the player field, clashes with a Mojang field
|
# CraftBukkit adds the player field, clashes with a Mojang field
|
||||||
c net/minecraft/world/inventory/ContainerWorkbench net/minecraft/world/inventory/CraftingMenu
|
#c net/minecraft/world/inventory/ContainerWorkbench net/minecraft/world/inventory/CraftingMenu
|
||||||
f Lnet/minecraft/world/entity/player/PlayerInventory; player playerInventory
|
# f Lnet/minecraft/world/entity/player/PlayerInventory; player playerInventory
|
||||||
|
|
||||||
# CraftBukkit adds the getType() method, clashes with a Mojang method
|
# CraftBukkit adds the getType() method, clashes with a Mojang method
|
||||||
c net/minecraft/world/entity/EntityAreaEffectCloud net/minecraft/world/entity/AreaEffectCloud
|
c net/minecraft/world/entity/EntityAreaEffectCloud net/minecraft/world/entity/AreaEffectCloud
|
||||||
m ()Ljava/lang/String; getType getTypeCb
|
m ()Ljava/lang/String; getType getPotionType
|
||||||
|
|
||||||
# CraftBukkit adds the getType() method, clashes with a Mojang method
|
# CraftBukkit adds the getType() method, clashes with a Mojang method
|
||||||
c net/minecraft/world/entity/projectile/EntityTippedArrow net/minecraft/world/entity/projectile/Arrow
|
c net/minecraft/world/entity/projectile/EntityTippedArrow net/minecraft/world/entity/projectile/Arrow
|
||||||
m ()Ljava/lang/String; getType getTypeCb
|
m ()Ljava/lang/String; getType getPotionType
|
||||||
|
|
||||||
# CraftBukkit adds the getLevel() method, clashes with original method
|
# CraftBukkit adds the getLevel() method, clashes with original method
|
||||||
c net/minecraft/world/level/block/entity/TileEntityBeacon net/minecraft/world/level/block/entity/BeaconBlockEntity
|
#c net/minecraft/world/level/block/entity/TileEntityBeacon net/minecraft/world/level/block/entity/BeaconBlockEntity
|
||||||
m ()I getLevel getLevelCb
|
# m ()I getLevel getLevelCb
|
||||||
|
|
||||||
# CraftBukkit adds the getLootTable() method, clashes with original method
|
# CraftBukkit adds the getLootTable() method, clashes with original method
|
||||||
c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob
|
#c net/minecraft/world/entity/EntityInsentient net/minecraft/world/entity/Mob
|
||||||
m ()Lnet/minecraft/resources/MinecraftKey; getLootTable getLootTableCb
|
# m ()Lnet/minecraft/resources/MinecraftKey; getLootTable getLootTableCb
|
||||||
|
|
||||||
# CraftBukkit adds the canCollideWith() method, clashes with original method
|
# CraftBukkit adds the canCollideWith() method, clashes with original method
|
||||||
c net/minecraft/world/entity/Entity net/minecraft/world/entity/Entity
|
#c net/minecraft/world/entity/Entity net/minecraft/world/entity/Entity
|
||||||
m (Lnet/minecraft/world/entity/Entity;)Z canCollideWith canCollideWithCb
|
# m (Lnet/minecraft/world/entity/Entity;)Z canCollideWith canCollideWithCb
|
||||||
|
|
||||||
# CraftBukkit adds a new `a` method which allows passing the Entity parameter
|
# CraftBukkit adds a new `a` method which allows passing the Entity parameter
|
||||||
# It uses `a` to match the original method (with just 1 param), so this patch makes them match
|
# It uses `a` to match the original method (with just 1 param), so this patch makes them match
|
||||||
c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel
|
#c net/minecraft/server/level/WorldServer net/minecraft/server/level/ServerLevel
|
||||||
m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform
|
# m (Lnet/minecraft/server/level/WorldServer;Lnet/minecraft/world/entity/Entity;)V a makeObsidianPlatform
|
||||||
|
|
||||||
# CraftBukkit adds `getMinecraftWorld()` to `GeneratorAccess`, which matches `WorldAccess.getMinecraftWorld()`
|
# CraftBukkit adds `getMinecraftWorld()` to `GeneratorAccess`, which matches `WorldAccess.getMinecraftWorld()`
|
||||||
# But that method in `WorldAccess` is called `getLevel()` in Mojang mappings
|
# But that method in `WorldAccess` is called `getLevel()` in Mojang mappings
|
||||||
c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAccessor
|
#c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAccessor
|
||||||
m ()Lnet/minecraft/server/level/WorldServer; getMinecraftWorld getLevel
|
# m ()Lnet/minecraft/server/level/WorldServer; getMinecraftWorld getLevel
|
||||||
|
|
||||||
# SpecialSource2 automatically maps methods to the name of synthetic methods that point to it in an attempt to
|
# SpecialSource2 automatically maps methods to the name of synthetic methods that point to it in an attempt to
|
||||||
# normalize method names with what is expected by the super class. This is _extremely_ stupid and flawed however
|
# normalize method names with what is expected by the super class. This is _extremely_ stupid and flawed however
|
||||||
|
@ -68,9 +68,9 @@ c net/minecraft/world/level/GeneratorAccess net/minecraft/world/level/LevelAcces
|
||||||
# This is allowed because the synthetic method for serialize() has a different descriptor, using Object as the second
|
# This is allowed because the synthetic method for serialize() has a different descriptor, using Object as the second
|
||||||
# parameter. This breaks when SpecialSource2 does it's "magic" of course. This patch manually fixes this case by adding
|
# parameter. This breaks when SpecialSource2 does it's "magic" of course. This patch manually fixes this case by adding
|
||||||
# both correct mappings
|
# both correct mappings
|
||||||
c net/minecraft/world/level/storage/loot/entries/LootEntryAbstract$Serializer net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer$Serializer
|
#c net/minecraft/world/level/storage/loot/entries/LootEntryAbstract$Serializer net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer$Serializer
|
||||||
m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V a serialize
|
# m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V a serialize
|
||||||
p 0 json
|
# p 0 json
|
||||||
p 1 entry
|
# p 1 entry
|
||||||
p 2 context
|
# p 2 context
|
||||||
m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V serializeType serializeCustom
|
# m (Lcom/google/gson/JsonObject;Lnet/minecraft/world/level/storage/loot/entries/LootEntryAbstract;Lcom/google/gson/JsonSerializationContext;)V serializeType serializeCustom
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
plugins {
|
plugins {
|
||||||
java
|
java
|
||||||
id("com.github.johnrengelman.shadow") version "7.0.0" apply false
|
id("com.github.johnrengelman.shadow") version "7.0.0" apply false
|
||||||
id("io.papermc.paperweight") version "1.0.0-SNAPSHOT"
|
id("io.papermc.paperweight.core") version "1.0.0-SNAPSHOT"
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "com.destroystokyo.paper"
|
group = "com.destroystokyo.paper"
|
||||||
|
@ -15,7 +15,7 @@ allprojects {
|
||||||
|
|
||||||
java {
|
java {
|
||||||
toolchain {
|
toolchain {
|
||||||
languageVersion.set(JavaLanguageVersion.of(11))
|
languageVersion.set(JavaLanguageVersion.of(16))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ repositories {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
paramMappings("org.quiltmc:yarn:1.16.5+build.6:mergedv2")
|
paramMappings("org.quiltmc:yarn:1.17+build.2:mergedv2")
|
||||||
remapper("org.quiltmc:tiny-remapper:0.3.2:fat@jar")
|
remapper("org.quiltmc:tiny-remapper:0.3.2:fat@jar")
|
||||||
decompiler("net.minecraftforge:forgeflower:1.5.498.5@jar")
|
decompiler("net.minecraftforge:forgeflower:1.5.498.5@jar")
|
||||||
paperclip("io.papermc:paperclip:2.0.0-SNAPSHOT@jar")
|
paperclip("io.papermc:paperclip:2.0.0-SNAPSHOT@jar")
|
||||||
|
@ -77,7 +77,5 @@ paperweight {
|
||||||
mappingsPatch.set(file("build-data/mappings-patch.tiny"))
|
mappingsPatch.set(file("build-data/mappings-patch.tiny"))
|
||||||
|
|
||||||
additionalSpigotMemberMappings.set(file("build-data/additional-spigot-member-mappings.csrg"))
|
additionalSpigotMemberMappings.set(file("build-data/additional-spigot-member-mappings.csrg"))
|
||||||
|
|
||||||
craftBukkitPatchPatchesDir.set(file("build-data/craftbukkit-patch-patches"))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +1,3 @@
|
||||||
mcVersion = 1.16
|
mcVersion = 1.17
|
||||||
projectVersion = 1.17-R0.1-SNAPSHOT
|
projectVersion = 1.17-R0.1-SNAPSHOT
|
||||||
packageVersion = 1_17_R1
|
packageVersion = 1_17_R1
|
||||||
|
|
258
paper
258
paper
|
@ -1,258 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# resolve shell-specifics
|
|
||||||
case "$(echo "$SHELL" | sed -E 's|/usr(/local)?||g')" in
|
|
||||||
"/bin/zsh")
|
|
||||||
RCPATH="$HOME/.zshrc"
|
|
||||||
SOURCE="${BASH_SOURCE[0]:-${(%):-%N}}"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
RCPATH="$HOME/.bashrc"
|
|
||||||
if [[ -f "$HOME/.bash_aliases" ]]; then
|
|
||||||
RCPATH="$HOME/.bash_aliases"
|
|
||||||
fi
|
|
||||||
SOURCE="${BASH_SOURCE[0]}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# get base dir regardless of execution location
|
|
||||||
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
|
||||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
||||||
SOURCE="$(readlink "$SOURCE")"
|
|
||||||
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
||||||
done
|
|
||||||
SOURCE=$([[ "$SOURCE" = /* ]] && echo "$SOURCE" || echo "$PWD/${SOURCE#./}")
|
|
||||||
basedir=$(dirname "$SOURCE")
|
|
||||||
gitcmd="git -c commit.gpgsign=false"
|
|
||||||
|
|
||||||
source "$basedir/scripts/functions.sh"
|
|
||||||
|
|
||||||
"$basedir"/scripts/requireDeps.sh || exit 1
|
|
||||||
|
|
||||||
failed=0
|
|
||||||
case "$1" in
|
|
||||||
"rb" | "rbp" | "rebuild")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/rebuildPatches.sh "$basedir" $2 || exit 1
|
|
||||||
) || failed=1
|
|
||||||
;;
|
|
||||||
"rbf" | "rbfull")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/rebuildPatches.sh "$basedir" "nofilter" || exit 1
|
|
||||||
) || failed=1
|
|
||||||
;;
|
|
||||||
"p" | "patch")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/build.sh "$basedir" || exit 1
|
|
||||||
) || failed=1
|
|
||||||
;;
|
|
||||||
"j" | "jar")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/build.sh "$basedir" "--jar" || exit 1
|
|
||||||
) || failed=1
|
|
||||||
;;
|
|
||||||
"b" | "build")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/build.sh "$basedir" || exit 1
|
|
||||||
(cd Paper-API ; mvn clean install) || exit 1
|
|
||||||
(cd Paper-MojangAPI ; mvn clean install) || exit 1
|
|
||||||
(cd Paper-Server ; mvn clean package) || exit 1
|
|
||||||
echo "Paper jar successfully built"
|
|
||||||
ls -la Paper-Server/target/paper*.jar
|
|
||||||
) || failed=1
|
|
||||||
;;
|
|
||||||
"i" | "install")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/build.sh "$basedir" || exit 1
|
|
||||||
mvn clean install || exit 1
|
|
||||||
echo "Paper jar successfully built and installed to local repo"
|
|
||||||
) || failed=1
|
|
||||||
;;
|
|
||||||
"pc" | "paperclip")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/paperclip.sh "$basedir" || exit 1
|
|
||||||
) || failed=1
|
|
||||||
;;
|
|
||||||
"make")
|
|
||||||
(
|
|
||||||
if [[ "$2" = "bacon" ]] ; then
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/build.sh "$basedir" "--jar"
|
|
||||||
fi
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
"m" | "mcdev")
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/makemcdevsrc.sh "$basedir"
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
"t" | "test" | "testserver")
|
|
||||||
(
|
|
||||||
cd "$basedir"
|
|
||||||
shift
|
|
||||||
scripts/testServer.sh "$basedir" "$@"
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
"td" | "testdir")
|
|
||||||
cd "${PAPER_TEST_DIR:-$basedir/work/test-server}"
|
|
||||||
;;
|
|
||||||
"u" | "up" | "upstream")
|
|
||||||
(
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/upstreamMerge.sh "$basedir" "$2"
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
"cu" | "commitup" | "commitupstream" | "upc" | "upcommit" | "upstreamcommit")
|
|
||||||
(
|
|
||||||
cd "$basedir"
|
|
||||||
shift
|
|
||||||
scripts/upstreamCommit.sh "$@"
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
"r" | "root")
|
|
||||||
cd "$basedir"
|
|
||||||
;;
|
|
||||||
"a" | "api")
|
|
||||||
cd "$basedir/Paper-API"
|
|
||||||
;;
|
|
||||||
"s" | "server")
|
|
||||||
cd "$basedir/Paper-Server"
|
|
||||||
;;
|
|
||||||
"c" | "clean")
|
|
||||||
rm -rf Paper-API
|
|
||||||
rm -rf Paper-Server
|
|
||||||
rm -rf work
|
|
||||||
echo "Cleaned build files"
|
|
||||||
;;
|
|
||||||
"con" | "continue")
|
|
||||||
if [ -d ".git/rebase-apply" ]; then
|
|
||||||
git -c commit.gpgsign=false am --continue
|
|
||||||
elif [ -d ".git/rebase-merge" ]; then
|
|
||||||
git -c commit.gpgsign=false rebase --continue
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"e" | "edit")
|
|
||||||
case "$2" in
|
|
||||||
"s" | "server")
|
|
||||||
mkdir -p "$basedir/work/Temp"
|
|
||||||
echo "$basedir/Paper-Server" > "$basedir/work/Temp/PAPER_LAST_EDIT"
|
|
||||||
cd "$basedir/Paper-Server"
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
|
|
||||||
paperstash
|
|
||||||
$gitcmd rebase -i upstream/upstream
|
|
||||||
paperunstash
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
"a" | "api")
|
|
||||||
mkdir -p "$basedir/work/Temp"
|
|
||||||
echo "$basedir/Paper-API" > "$basedir/work/Temp/PAPER_LAST_EDIT"
|
|
||||||
cd "$basedir/Paper-API"
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
|
|
||||||
paperstash
|
|
||||||
$gitcmd rebase -i upstream/upstream
|
|
||||||
paperunstash
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
"c" | "continue")
|
|
||||||
cd "$( < "$basedir/work/Temp/PAPER_LAST_EDIT")"
|
|
||||||
rm -f "$basedir/work/Temp/PAPER_LAST_EDIT"
|
|
||||||
(
|
|
||||||
set -e
|
|
||||||
|
|
||||||
$gitcmd add .
|
|
||||||
$gitcmd commit --amend
|
|
||||||
$gitcmd rebase --continue
|
|
||||||
|
|
||||||
cd "$basedir"
|
|
||||||
scripts/rebuildPatches.sh "$basedir"
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "You must edit either the api or server."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
|
||||||
"setup")
|
|
||||||
if [[ -f "$RCPATH" ]] ; then
|
|
||||||
NAME="paper"
|
|
||||||
if [[ ! -z "${2+x}" ]] ; then
|
|
||||||
NAME="$2"
|
|
||||||
fi
|
|
||||||
(grep "alias $NAME=" "$RCPATH" > /dev/null) && (sed -i "s|alias $NAME=.*|alias $NAME='. $SOURCE'|g" "$RCPATH") || (echo "alias $NAME='. $SOURCE'" >> "$RCPATH")
|
|
||||||
alias "$NAME=. $SOURCE"
|
|
||||||
echo "You can now just type '$NAME' at any time to access the paper tool."
|
|
||||||
else
|
|
||||||
echo "We were unable to setup the paper build tool alias: $RCPATH is missing"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "PaperMC build tool command. This provides a variety of commands to build and manage the PaperMC build"
|
|
||||||
echo "environment. For all of the functionality of this command to be available, you must first run the"
|
|
||||||
echo "'setup' command. View below for details. For essential building and patching, you do not need to do the setup."
|
|
||||||
echo ""
|
|
||||||
echo " Normal commands:"
|
|
||||||
echo " * rb, rebuild | Rebuild patches, can be called from anywhere."
|
|
||||||
echo " * p, patch | Apply all patches to the project without building it. Can be run from anywhere."
|
|
||||||
echo " * j, jar | Apply all patches and build the project, paperclip.jar will be output. Can be run from anywhere."
|
|
||||||
echo " * i, install | Build and install paper into the local repo. Can be run from anywhere."
|
|
||||||
echo " * m, mcdev | Setup decompiled sources for non-modified NMS files to be imported into an IDE. Can be run from anywhere."
|
|
||||||
echo " * u, up, upstream | Updates the submodules used by Paper to their latest upstream versions."
|
|
||||||
echo " * upc, upstreamcommit | Creates the correctly-formatted upstream commit after updating upstream."
|
|
||||||
echo " * c, clean | Removes all generated files, Paper-API, Paper-Server, and work."
|
|
||||||
echo " * t, testserver | Run the test server with the set of plugins Paper uses as a basis for server tests."
|
|
||||||
echo " * con, continue | Shortcut command for running git am --continue, or git rebase --continue."
|
|
||||||
echo ""
|
|
||||||
echo " These commands require the setup command before use:"
|
|
||||||
echo " * r, root | Change directory to the root of the project."
|
|
||||||
echo " * a. api | Move to the Paper-API directory."
|
|
||||||
echo " * s, server | Move to the Paper-Server directory."
|
|
||||||
echo " * td, testdirectory | Move to the test-server directory."
|
|
||||||
echo " * e, edit | Use to edit a specific patch, give it the argument \"server\" or \"api\""
|
|
||||||
echo " | respectively to edit the correct project. Use the argument \"continue\" after"
|
|
||||||
echo " | the changes have been made to finish and rebuild patches. Can be called from anywhere."
|
|
||||||
echo ""
|
|
||||||
echo " * setup | Add an alias to $RCPATH to allow full functionality of this script. Run as:"
|
|
||||||
echo " | . ./paper setup"
|
|
||||||
echo " | After you run this command you'll be able to just run 'paper' from anywhere."
|
|
||||||
echo " | The default name for the resulting alias is 'paper', you can give an argument to override"
|
|
||||||
echo " | this default, such as:"
|
|
||||||
echo " | . ./paper setup example"
|
|
||||||
echo " | Which will allow you to run 'example' instead."
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
unset RCPATH
|
|
||||||
unset SOURCE
|
|
||||||
unset basedir
|
|
||||||
unset -f color
|
|
||||||
unset -f colorend
|
|
||||||
unset -f paperstash
|
|
||||||
unset -f paperunstash
|
|
||||||
if [[ "$failed" == "1" ]]; then
|
|
||||||
unset failed
|
|
||||||
false
|
|
||||||
else
|
|
||||||
unset failed
|
|
||||||
true
|
|
||||||
fi
|
|
55
pom.xml
55
pom.xml
|
@ -1,55 +0,0 @@
|
||||||
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<!-- Avoid making changes to this file, it has to be deployed manually -->
|
|
||||||
<groupId>com.destroystokyo.paper</groupId>
|
|
||||||
<artifactId>paper-parent</artifactId>
|
|
||||||
<version>dev-SNAPSHOT</version>
|
|
||||||
<packaging>pom</packaging>
|
|
||||||
|
|
||||||
<name>Paper-Parent</name>
|
|
||||||
<description>Parent project for all Paper modules.</description>
|
|
||||||
<url>https://github.com/PaperMC/Paper</url>
|
|
||||||
|
|
||||||
<modules>
|
|
||||||
<module>Paper-API</module>
|
|
||||||
<module>Paper-MojangAPI</module>
|
|
||||||
<module>Paper-Server</module>
|
|
||||||
</modules>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<defaultGoal>clean install</defaultGoal>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<repositories>
|
|
||||||
<repository>
|
|
||||||
<id>md_5-releases</id>
|
|
||||||
<url>https://repo.md-5.net/content/repositories/releases/</url>
|
|
||||||
</repository>
|
|
||||||
<repository>
|
|
||||||
<id>aikar</id>
|
|
||||||
<url>https://repo.aikar.co/content/groups/aikar/</url>
|
|
||||||
</repository>
|
|
||||||
<repository>
|
|
||||||
<id>destroystokyo-repo</id>
|
|
||||||
<url>https://papermc.io/repo/repository/maven-public/</url>
|
|
||||||
</repository>
|
|
||||||
</repositories>
|
|
||||||
|
|
||||||
<distributionManagement>
|
|
||||||
<repository>
|
|
||||||
<id>papermc-releases</id>
|
|
||||||
<url>https://papermc.io/repo/repository/maven-releases/</url>
|
|
||||||
</repository>
|
|
||||||
<snapshotRepository>
|
|
||||||
<id>papermc-snapshots</id>
|
|
||||||
<url>https://papermc.io/repo/repository/maven-snapshots/</url>
|
|
||||||
</snapshotRepository>
|
|
||||||
</distributionManagement>
|
|
||||||
</project>
|
|
|
@ -2,10 +2,9 @@ pluginManagement {
|
||||||
repositories {
|
repositories {
|
||||||
gradlePluginPortal()
|
gradlePluginPortal()
|
||||||
maven("https://wav.jfrog.io/artifactory/repo/")
|
maven("https://wav.jfrog.io/artifactory/repo/")
|
||||||
mavenLocal()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rootProject.name = "Paper"
|
rootProject.name = "Paper"
|
||||||
|
|
||||||
include("Paper-API", "Paper-Server", "Paper-MojangAPI")
|
include("Paper-API", "Paper-Server")
|
||||||
|
|
Loading…
Reference in New Issue