diff --git a/gradle.properties b/gradle.properties index fd29c2ce4..24038dad7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ version = 1.21.11-R0.1-SNAPSHOT mcVersion = 1.21.11 apiVersion = 1.21.11 -paperCommit = 3ebc5b3320924e9122903dfd1f11abcf897300e6 +paperCommit = 93e81bfc7da64cc772119c2e8c3e8125dd4c4596 org.gradle.configuration-cache = true org.gradle.caching = true diff --git a/purpur-server/minecraft-patches/features/0001-Ridables.patch b/purpur-server/minecraft-patches/features/0001-Ridables.patch index 3f93ee356..a2ce458df 100644 --- a/purpur-server/minecraft-patches/features/0001-Ridables.patch +++ b/purpur-server/minecraft-patches/features/0001-Ridables.patch @@ -42,7 +42,7 @@ index 5130c0067f01eec31c69b9e71d904f932943b922..853bb92c034b6361ff8c55daf52f38a2 @Override public @Nullable LevelChunk getChunkIfLoaded(int x, int z) { diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java -index ed6bbef78fef8fd21b1fabc9f8008a141e17d437..889b2a20b01949351bd4d29fc450d9ba59324066 100644 +index 4d3ccd5373a75227e613c13df1d32cab5ce124bd..1423ee429d090955da06f23b0df0727359d11401 100644 --- a/net/minecraft/server/level/ServerPlayer.java +++ b/net/minecraft/server/level/ServerPlayer.java @@ -772,6 +772,15 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc @@ -75,10 +75,10 @@ index 5af26990d6cce42c3c12ac6d896ed3859c3497e3..0e17b54d7c3046cc85d15956793450ff if (itemType == Items.WATER_BUCKET && target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && resendData) { target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java -index b9d78afc5f2d1f0b3cffcb50f465bd1d057820ff..09f7026f4b03deef775ce085cafde2a9da69399f 100644 +index 5efb94bf1029fdbbd48937c1f3925421d6daacfd..c8bc831c49df48c3f2ea2ea2d22a0aec5d37923c 100644 --- a/net/minecraft/world/entity/Entity.java +++ b/net/minecraft/world/entity/Entity.java -@@ -3374,6 +3374,13 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3373,6 +3373,13 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name this.passengers = ImmutableList.copyOf(list); } @@ -92,7 +92,7 @@ index b9d78afc5f2d1f0b3cffcb50f465bd1d057820ff..09f7026f4b03deef775ce085cafde2a9 } } -@@ -3414,6 +3421,14 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -3413,6 +3420,14 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name return false; } // CraftBukkit end @@ -107,7 +107,7 @@ index b9d78afc5f2d1f0b3cffcb50f465bd1d057820ff..09f7026f4b03deef775ce085cafde2a9 if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) { this.passengers = ImmutableList.of(); } else { -@@ -5464,4 +5479,44 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name +@@ -5463,4 +5478,44 @@ public abstract class Entity implements SyncedDataHolder, DebugValueSource, Name return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition()); } // Paper end - Expose entity id counter @@ -243,7 +243,7 @@ index 527db90fa6faa6f39a80e64db16e28f1d616ce4d..23b51bcf8397a4fc9fdedbd4fcee3793 // Paper end - Add EntityMoveEvent if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) { diff --git a/net/minecraft/world/entity/Mob.java b/net/minecraft/world/entity/Mob.java -index dd0f83b9355271f7aab15eb49833f518e499595e..c519f3f501963bde3f1cadf24f88edd2a043215d 100644 +index cf2cbc3bf5e0000737ebeac3867f12d7e07bda01..94e7307c0d15fdef7f7dcb28473cb76661600b0e 100644 --- a/net/minecraft/world/entity/Mob.java +++ b/net/minecraft/world/entity/Mob.java @@ -156,8 +156,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch index 665396542..9ec640e01 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/entity/Entity.java.patch @@ -78,7 +78,7 @@ } public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) { -@@ -2573,7 +_,7 @@ +@@ -2572,7 +_,7 @@ output.putBoolean("Bukkit.invisible", this.persistentInvisibility); } // SPIGOT-6907: re-implement LivingEntity#setMaximumAir() @@ -87,7 +87,7 @@ output.putInt("Bukkit.MaxAirSupply", this.getMaxAirSupply()); } output.putInt("Spigot.ticksLived", this.totalEntityAge); // Paper -@@ -2660,6 +_,11 @@ +@@ -2659,6 +_,11 @@ output.putBoolean("Paper.FreezeLock", true); } // Paper end @@ -99,7 +99,7 @@ } catch (Throwable var7) { CrashReport crashReport = CrashReport.forThrowable(var7, "Saving entity NBT"); CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being saved"); -@@ -2780,6 +_,9 @@ +@@ -2779,6 +_,9 @@ } freezeLocked = input.getBooleanOr("Paper.FreezeLock", false); // Paper end @@ -109,7 +109,7 @@ } catch (Throwable var7) { CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT"); CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded"); -@@ -3043,6 +_,7 @@ +@@ -3042,6 +_,7 @@ if (this.isAlive() && this instanceof Leashable leashable2) { if (leashable2.getLeashHolder() == player) { if (!this.level().isClientSide()) { @@ -117,7 +117,7 @@ // Paper start - EntityUnleashEvent if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent( leashable2, player, hand, !player.hasInfiniteMaterials(), true -@@ -3473,15 +_,18 @@ +@@ -3472,15 +_,18 @@ return Vec3.directionFromRotation(this.getRotationVector()); } @@ -137,7 +137,7 @@ } } } -@@ -4221,7 +_,7 @@ +@@ -4220,7 +_,7 @@ } public boolean canUsePortal(boolean allowPassengers) { @@ -146,7 +146,7 @@ } public boolean canTeleport(Level fromLevel, Level toLevel) { -@@ -4740,6 +_,12 @@ +@@ -4739,6 +_,12 @@ return Mth.lerp(partialTick, this.yRotO, this.yRot); } @@ -159,7 +159,7 @@ // Paper start - optimise collisions public boolean updateFluidHeightAndDoFluidPushing(final TagKey fluid, final double flowScale) { if (this.touchingUnloadedChunk()) { -@@ -5160,7 +_,7 @@ +@@ -5159,7 +_,7 @@ } public float maxUpStep() { diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/item/TridentItem.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/item/TridentItem.java.patch index 16aa72e60..dcad885b4 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/item/TridentItem.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/item/TridentItem.java.patch @@ -15,5 +15,5 @@ ThrownTrident thrownTrident = tridentDelayed.projectile(); // Paper - PlayerLaunchProjectileEvent + thrownTrident.setActualEnchantments(stack.getEnchantments()); // Purpur - Add an option to fix MC-3304 projectile looting if (event.shouldConsume()) { - stack.hurtWithoutBreaking(1, player); // Paper - PlayerLaunchProjectileEvent + itemStack.hurtWithoutBreaking(1, player); // Paper - PlayerLaunchProjectileEvent - use itemStack; pickup item damage } diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch index 51043e267..09dd47afb 100644 --- a/purpur-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/level/Level.java.patch @@ -1,6 +1,6 @@ --- a/net/minecraft/world/level/Level.java +++ b/net/minecraft/world/level/Level.java -@@ -166,11 +_,55 @@ +@@ -165,11 +_,55 @@ } // Paper end - add paper world config @@ -56,7 +56,7 @@ public CraftWorld getWorld() { return this.world; } -@@ -846,6 +_,8 @@ +@@ -845,6 +_,8 @@ // Paper end - getblock optimisations - cache world height/sections this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config @@ -65,7 +65,7 @@ this.generator = generator; this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment); -@@ -2091,4 +_,14 @@ +@@ -2090,4 +_,14 @@ return this.moonrise$getEntityLookup().getEntityCount(); // Paper - rewrite chunk system } // Paper end - allow patching this logic diff --git a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch index 3874dd48f..7fcd80381 100644 --- a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftWorld.java.patch @@ -1,6 +1,6 @@ --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -1942,6 +_,52 @@ +@@ -1939,6 +_,52 @@ return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight()); } diff --git a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/Main.java.patch b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/Main.java.patch index e119ec6c7..90b5a610d 100644 --- a/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/Main.java.patch +++ b/purpur-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/Main.java.patch @@ -1,8 +1,8 @@ --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java -@@ -162,6 +_,14 @@ +@@ -169,6 +_,14 @@ .defaultsTo(new File[] {}) - .describedAs("Jar file"); + .describedAs("Plugin directory"); + // Purpur start - Purpur config files + this.acceptsAll(asList("purpur", "purpur-settings"), "File for purpur settings")