diff --git a/fabric/build_all_versions.sh b/fabric/build_all_versions.sh index ded1fc6..66fa105 100755 --- a/fabric/build_all_versions.sh +++ b/fabric/build_all_versions.sh @@ -17,6 +17,9 @@ versions["1.18.2"]="openjdk17" versions["1.19.4"]="openjdk17" versions["1.20.1"]="openjdk17" versions["1.20.2"]="openjdk17" +versions["1.20.4"]="openjdk17" +versions["1.21.3"]="openjdk21" +versions["1.21.4"]="openjdk21" for version in "${!versions[@]}"; do java=${versions[$version]} diff --git a/paper-unpatched/Dockerfile b/paper-unpatched/Dockerfile new file mode 100644 index 0000000..c60481a --- /dev/null +++ b/paper-unpatched/Dockerfile @@ -0,0 +1,23 @@ +ARG MC_VERSION + +FROM mrletsplay/paper:${MC_VERSION} + +ENV MC_VERSION=${MC_VERSION} + +ENV UID=1000 +ENV GID=1000 + +RUN apk add git + +ADD ./bin /usr/local/bin + +ADD ./patches /build/patches + +VOLUME ["/minecraft"] + +WORKDIR /minecraft + +EXPOSE 25565 + +ENTRYPOINT ["build_paper"] +CMD ["java", "-Xmx2G", "-Xms2G", "-jar", "paper.jar"] diff --git a/paper-unpatched/bin/build_paper b/paper-unpatched/bin/build_paper new file mode 100755 index 0000000..a46f79a --- /dev/null +++ b/paper-unpatched/bin/build_paper @@ -0,0 +1,24 @@ +#!/bin/sh + +if test ! -f "paper.jar" -o "$PAPER_REBUILD" == "true"; then + echo "Building Paper" + cd /build + + git config --global user.name "nobody" + git config --global user.email "nobody@example.com" + git clone https://github.com/PaperMC/Paper + cd Paper + git checkout ver/$MC_VERSION # Will fail for newest version + + cp -rv /build/patches/* patches/server + + ./gradlew applyPatches + ./gradlew createReobfBundlerJar + cp build/libs/paper-bundler-*-reobf.jar /minecraft/paper.jar + + cd /minecraft +fi + +echo "Run setup" + +PAPER_UPDATE_ON_START=false exec setup "$@" diff --git a/paper-unpatched/build_all_versions.sh b/paper-unpatched/build_all_versions.sh new file mode 100755 index 0000000..3cdd561 --- /dev/null +++ b/paper-unpatched/build_all_versions.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +#!/bin/sh + +declare -A versions +versions["1.8.8"]=openjdk8 +versions["1.9.4"]=openjdk8 +versions["1.10.2"]=openjdk8 +versions["1.11.2"]=openjdk8 +versions["1.12.2"]=openjdk8 +versions["1.13.2"]=openjdk8 +versions["1.14.4"]=openjdk8 +versions["1.15.2"]=openjdk8 +versions["1.16.5"]=openjdk8 +versions["1.17.1"]=openjdk8 +versions["1.18.2"]=openjdk17 +versions["1.19.4"]=openjdk17 + +for version in "${!versions[@]}"; do + java_version="${versions[$version]}" + echo $version $java_version + docker build --build-arg MC_VERSION=$version -t mrletsplay/paper:$version-unpatched . +done diff --git a/paper-unpatched/patches/9998-Remove-sand-duping-fix.patch b/paper-unpatched/patches/9998-Remove-sand-duping-fix.patch new file mode 100644 index 0000000..a89d1e5 --- /dev/null +++ b/paper-unpatched/patches/9998-Remove-sand-duping-fix.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MrLetsplay2003 +Date: Sat, 27 Aug 2022 14:25:07 +0200 +Subject: [PATCH] Remove sand duping fix + + +diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +index b2d1a17867cdbaad0c6e5c2376c716f9461af124..a17bd98e3cf6ef9365dbffcf410a980f1c72484b 100644 +--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java ++++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java +@@ -128,9 +128,9 @@ public class FallingBlockEntity extends Entity { + @Override + public void tick() { + // Paper start - fix sand duping +- if (this.isRemoved()) { ++ /*if (this.isRemoved()) { + return; +- } ++ }*/ + // Paper end - fix sand duping + if (this.blockState.isAir()) { + this.discard(); +@@ -145,9 +145,9 @@ public class FallingBlockEntity extends Entity { + this.move(MoverType.SELF, this.getDeltaMovement()); + + // Paper start - fix sand duping +- if (this.isRemoved()) { ++ /*if (this.isRemoved()) { + return; +- } ++ }*/ + // Paper end - fix sand duping + + // Paper start - Configurable EntityFallingBlock height nerf diff --git a/paper-unpatched/patches/9999-Remove-end-portal-patch.patch b/paper-unpatched/patches/9999-Remove-end-portal-patch.patch new file mode 100644 index 0000000..429f8da --- /dev/null +++ b/paper-unpatched/patches/9999-Remove-end-portal-patch.patch @@ -0,0 +1,63 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: MrLetsplay2003 +Date: Thu, 8 Dec 2022 19:11:41 +0100 +Subject: [PATCH] Remove end portal patch + + +diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java +index 22cd5f0e40d7e3cd04793a9dda29d113428fa093..fd241cf9cd9086407fdca71a3336949c8b009e0c 100644 +--- a/src/main/java/net/minecraft/world/entity/Entity.java ++++ b/src/main/java/net/minecraft/world/entity/Entity.java +@@ -511,7 +511,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + } + // Paper end - optimise entity tracking + // Paper start - make end portalling safe +- public BlockPos portalBlock; ++ /*public BlockPos portalBlock; + public ServerLevel portalWorld; + public void tickEndPortal() { + BlockPos pos = this.portalBlock; +@@ -538,7 +538,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + return; + } + this.teleportTo(worldserver, null); +- } ++ }*/ + // Paper end - make end portalling safe + + public Entity(EntityType type, Level world) { +@@ -2898,7 +2898,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { + } + + this.processPortalCooldown(); +- this.tickEndPortal(); // Paper - make end portalling safe ++ //this.tickEndPortal(); // Paper - make end portalling safe + } + } + +diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +index 15c5cccfe02c924c02f605eb47dd0b420b189891..1529fd5ecc196404d566520893630b160d82ee38 100644 +--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java +@@ -53,9 +53,19 @@ public class EndPortalBlock extends BaseEntityBlock { + // return; // CraftBukkit - always fire event in case plugins wish to change it + } + ++ // CraftBukkit start - Entity in portal ++ EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ())); ++ world.getCraftServer().getPluginManager().callEvent(event); ++ ++ if (entity instanceof ServerPlayer) { ++ ((ServerPlayer) entity).changeDimension(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL); ++ return; ++ } ++ // CraftBukkit end ++ entity.changeDimension(worldserver); + // Paper start - move all of this logic into portal tick +- entity.portalWorld = ((ServerLevel)world); +- entity.portalBlock = pos.immutable(); ++ //entity.portalWorld = ((ServerLevel)world); ++ //entity.portalBlock = pos.immutable(); + // Paper end - move all of this logic into portal tick + } + diff --git a/paper/build_all_versions.sh b/paper/build_all_versions.sh index 397f561..802cbbc 100755 --- a/paper/build_all_versions.sh +++ b/paper/build_all_versions.sh @@ -17,6 +17,9 @@ versions["1.18.2"]="openjdk17 false" versions["1.19.4"]="openjdk17 true" versions["1.20.1"]="openjdk17 true" versions["1.20.2"]="openjdk17 true" +versions["1.20.4"]="openjdk17 true" +versions["1.21.3"]="openjdk21 true" +versions["1.21.4"]="openjdk21 true" for version in "${!versions[@]}"; do params=(${versions[$version]})