mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 08:27:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@173bd93c [ci/skip] Rebuild patches PaperMC/Paper@a47cb98c Add check for null player name in Team methods (#13468) PaperMC/Paper@ebf50865 Expand wateranimal-spawn-height config for nautilus (#13488) PaperMC/Paper@179626d5 Fix a few inverted checks for skulls (#13502) PaperMC/Paper@5fa4be93 feature: expose mannequin poses (#13429) PaperMC/Paper@1fd9d085 Fix backward compat for World#setPVP (#13503) PaperMC/Paper@350fd5e3 Prevent negative anger level for neutral mobs (#13504) PaperMC/Paper@575df562 Add zip error reporting to PaperPluginClassLoader (#13505) PaperMC/Paper@51239f4b Fix usage message on spigot reload command (#13494) PaperMC/Paper@ede8d0df Format paper-api mob goals in debug renderer (#13495) PaperMC/Paper@444a2ba1 Change thrown trident item to use copy of ItemStack of count 1 (#13394) PaperMC/Paper@93e81bfc Add support for loading plugins from extra directories (#13447)
This commit is contained in:
@@ -3,7 +3,7 @@ version = 1.21.11-R0.1-SNAPSHOT
|
|||||||
|
|
||||||
mcVersion = 1.21.11
|
mcVersion = 1.21.11
|
||||||
apiVersion = 1.21.11
|
apiVersion = 1.21.11
|
||||||
paperCommit = 3ebc5b3320924e9122903dfd1f11abcf897300e6
|
paperCommit = 93e81bfc7da64cc772119c2e8c3e8125dd4c4596
|
||||||
|
|
||||||
org.gradle.configuration-cache = true
|
org.gradle.configuration-cache = true
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ index 5130c0067f01eec31c69b9e71d904f932943b922..853bb92c034b6361ff8c55daf52f38a2
|
|||||||
@Override
|
@Override
|
||||||
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
|
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
|
||||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
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
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||||
+++ b/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
|
@@ -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) {
|
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
|
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
|
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
|
--- a/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/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);
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -107,7 +107,7 @@ index b9d78afc5f2d1f0b3cffcb50f465bd1d057820ff..09f7026f4b03deef775ce085cafde2a9
|
|||||||
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
|
||||||
this.passengers = ImmutableList.of();
|
this.passengers = ImmutableList.of();
|
||||||
} else {
|
} 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());
|
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
|
||||||
}
|
}
|
||||||
// Paper end - Expose entity id counter
|
// Paper end - Expose entity id counter
|
||||||
@@ -243,7 +243,7 @@ index 527db90fa6faa6f39a80e64db16e28f1d616ce4d..23b51bcf8397a4fc9fdedbd4fcee3793
|
|||||||
// Paper end - Add EntityMoveEvent
|
// Paper end - Add EntityMoveEvent
|
||||||
if (this.level() instanceof ServerLevel serverLevel && this.isSensitiveToWater() && this.isInWaterOrRain()) {
|
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
|
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
|
--- a/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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
|
@@ -156,8 +156,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) {
|
public boolean causeFallDamage(double fallDistance, float damageMultiplier, DamageSource damageSource) {
|
||||||
@@ -2573,7 +_,7 @@
|
@@ -2572,7 +_,7 @@
|
||||||
output.putBoolean("Bukkit.invisible", this.persistentInvisibility);
|
output.putBoolean("Bukkit.invisible", this.persistentInvisibility);
|
||||||
}
|
}
|
||||||
// SPIGOT-6907: re-implement LivingEntity#setMaximumAir()
|
// SPIGOT-6907: re-implement LivingEntity#setMaximumAir()
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
output.putInt("Bukkit.MaxAirSupply", this.getMaxAirSupply());
|
output.putInt("Bukkit.MaxAirSupply", this.getMaxAirSupply());
|
||||||
}
|
}
|
||||||
output.putInt("Spigot.ticksLived", this.totalEntityAge); // Paper
|
output.putInt("Spigot.ticksLived", this.totalEntityAge); // Paper
|
||||||
@@ -2660,6 +_,11 @@
|
@@ -2659,6 +_,11 @@
|
||||||
output.putBoolean("Paper.FreezeLock", true);
|
output.putBoolean("Paper.FreezeLock", true);
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
} catch (Throwable var7) {
|
} catch (Throwable var7) {
|
||||||
CrashReport crashReport = CrashReport.forThrowable(var7, "Saving entity NBT");
|
CrashReport crashReport = CrashReport.forThrowable(var7, "Saving entity NBT");
|
||||||
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being saved");
|
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being saved");
|
||||||
@@ -2780,6 +_,9 @@
|
@@ -2779,6 +_,9 @@
|
||||||
}
|
}
|
||||||
freezeLocked = input.getBooleanOr("Paper.FreezeLock", false);
|
freezeLocked = input.getBooleanOr("Paper.FreezeLock", false);
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
} catch (Throwable var7) {
|
} catch (Throwable var7) {
|
||||||
CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT");
|
CrashReport crashReport = CrashReport.forThrowable(var7, "Loading entity NBT");
|
||||||
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
|
CrashReportCategory crashReportCategory = crashReport.addCategory("Entity being loaded");
|
||||||
@@ -3043,6 +_,7 @@
|
@@ -3042,6 +_,7 @@
|
||||||
if (this.isAlive() && this instanceof Leashable leashable2) {
|
if (this.isAlive() && this instanceof Leashable leashable2) {
|
||||||
if (leashable2.getLeashHolder() == player) {
|
if (leashable2.getLeashHolder() == player) {
|
||||||
if (!this.level().isClientSide()) {
|
if (!this.level().isClientSide()) {
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
// Paper start - EntityUnleashEvent
|
// Paper start - EntityUnleashEvent
|
||||||
if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent(
|
if (!org.bukkit.craftbukkit.event.CraftEventFactory.handlePlayerUnleashEntityEvent(
|
||||||
leashable2, player, hand, !player.hasInfiniteMaterials(), true
|
leashable2, player, hand, !player.hasInfiniteMaterials(), true
|
||||||
@@ -3473,15 +_,18 @@
|
@@ -3472,15 +_,18 @@
|
||||||
return Vec3.directionFromRotation(this.getRotationVector());
|
return Vec3.directionFromRotation(this.getRotationVector());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4221,7 +_,7 @@
|
@@ -4220,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canUsePortal(boolean allowPassengers) {
|
public boolean canUsePortal(boolean allowPassengers) {
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
public boolean canTeleport(Level fromLevel, Level toLevel) {
|
||||||
@@ -4740,6 +_,12 @@
|
@@ -4739,6 +_,12 @@
|
||||||
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
return Mth.lerp(partialTick, this.yRotO, this.yRot);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
// Paper start - optimise collisions
|
// Paper start - optimise collisions
|
||||||
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
||||||
if (this.touchingUnloadedChunk()) {
|
if (this.touchingUnloadedChunk()) {
|
||||||
@@ -5160,7 +_,7 @@
|
@@ -5159,7 +_,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
public float maxUpStep() {
|
public float maxUpStep() {
|
||||||
|
|||||||
@@ -15,5 +15,5 @@
|
|||||||
ThrownTrident thrownTrident = tridentDelayed.projectile(); // Paper - PlayerLaunchProjectileEvent
|
ThrownTrident thrownTrident = tridentDelayed.projectile(); // Paper - PlayerLaunchProjectileEvent
|
||||||
+ thrownTrident.setActualEnchantments(stack.getEnchantments()); // Purpur - Add an option to fix MC-3304 projectile looting
|
+ thrownTrident.setActualEnchantments(stack.getEnchantments()); // Purpur - Add an option to fix MC-3304 projectile looting
|
||||||
if (event.shouldConsume()) {
|
if (event.shouldConsume()) {
|
||||||
stack.hurtWithoutBreaking(1, player); // Paper - PlayerLaunchProjectileEvent
|
itemStack.hurtWithoutBreaking(1, player); // Paper - PlayerLaunchProjectileEvent - use itemStack; pickup item damage
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/minecraft/world/level/Level.java
|
--- a/net/minecraft/world/level/Level.java
|
||||||
+++ b/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
|
// Paper end - add paper world config
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
public CraftWorld getWorld() {
|
public CraftWorld getWorld() {
|
||||||
return this.world;
|
return this.world;
|
||||||
}
|
}
|
||||||
@@ -846,6 +_,8 @@
|
@@ -845,6 +_,8 @@
|
||||||
// Paper end - getblock optimisations - cache world height/sections
|
// Paper end - getblock optimisations - cache world height/sections
|
||||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) levelData).getLevelName()); // Spigot
|
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
|
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
this.generator = generator;
|
this.generator = generator;
|
||||||
this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment);
|
this.world = new CraftWorld((ServerLevel) this, generator, biomeProvider, environment);
|
||||||
|
|
||||||
@@ -2091,4 +_,14 @@
|
@@ -2090,4 +_,14 @@
|
||||||
return this.moonrise$getEntityLookup().getEntityCount(); // Paper - rewrite chunk system
|
return this.moonrise$getEntityLookup().getEntityCount(); // Paper - rewrite chunk system
|
||||||
}
|
}
|
||||||
// Paper end - allow patching this logic
|
// Paper end - allow patching this logic
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
+++ b/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());
|
return (this.getHandle().getDragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().getDragonFight());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/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[] {})
|
.defaultsTo(new File[] {})
|
||||||
.describedAs("Jar file");
|
.describedAs("Plugin directory");
|
||||||
|
|
||||||
+ // Purpur start - Purpur config files
|
+ // Purpur start - Purpur config files
|
||||||
+ this.acceptsAll(asList("purpur", "purpur-settings"), "File for purpur settings")
|
+ this.acceptsAll(asList("purpur", "purpur-settings"), "File for purpur settings")
|
||||||
|
|||||||
Reference in New Issue
Block a user