mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@730882f Chunk System and Starlight WIP PaperMC/Paper@512fd08 Update Gradle Wrapper to v8.8 PaperMC/Paper@097284d Bump tiny-remapper to 0.10.3 PaperMC/Paper@ee9b820 Update more optimization patches PaperMC/Paper@5d834b1 rebuild patches PaperMC/Paper@4bc15f1 Updated Upstream (Bukkit/CraftBukkit) PaperMC/Paper@0b6701d Revert DamageSource#getCausingEntity to vanilla PaperMC/Paper@5bd7f4e Update AbstractArrow item method implementations for 1.20.6 (#10885) PaperMC/Paper@fb511c6 Fix Player#sendBlockState (#10855) PaperMC/Paper@b420038 Fix ItemMeta#removeEnchantments (#10886) PaperMC/Paper@a835ad1 Merge remote-tracking branch 'origin/dev/1.21' into dev/1.21 PaperMC/Paper@04dad71 Improve enchantWithLevels logic PaperMC/Paper@0008fa1 Add back more optimization patches PaperMC/Paper@56b5b7d Fix max chunk status checks PaperMC/Paper@c1aefee correctly change enchantment registry to a 'delayed' version PaperMC/Paper@d41636f Add back RecipeIterator fixes patch (#10887) PaperMC/Paper@7df4725 Configurable damage tick when blocking with shield (#10877) PaperMC/Paper@3555a77 Properly forward DispenseEvent #getItem to saddle PaperMC/Paper@e339ec2 Deprecate BlockData#getDestroySpeed for removal PaperMC/Paper@b090c65 Remove unnecessary changes from chunk status fix PaperMC/Paper@5e7cd07 add some generated typed/tag keys PaperMC/Paper@5a5412c Owen fixing stuff!!! PaperMC/Paper@7240d9d Restore functionality to sand dupe setting
This commit is contained in:
@@ -5,12 +5,12 @@ Subject: [PATCH] Ridables
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
|
||||
index 12ff8886bb53ca15db745989c25b9bd2f45335e4..c86f669448b5ec93c54784192b470c7ebce8cfa2 100644
|
||||
index 2767d6f97e8b314d23a8e62f22dfd396f5660d31..a64e5997b94cc8173f0512d1e282355f14f098ec 100644
|
||||
--- a/src/main/java/net/minecraft/core/BlockPos.java
|
||||
+++ b/src/main/java/net/minecraft/core/BlockPos.java
|
||||
@@ -60,6 +60,12 @@ public class BlockPos extends Vec3i {
|
||||
private static final int Z_OFFSET = PACKED_Y_LENGTH;
|
||||
private static final int X_OFFSET = PACKED_Y_LENGTH + PACKED_Z_LENGTH;
|
||||
@@ -61,6 +61,12 @@ public class BlockPos extends Vec3i {
|
||||
private static final int X_OFFSET = 38;
|
||||
// Paper end - Optimize Bit Operations by inlining
|
||||
|
||||
+ // Purpur start
|
||||
+ public BlockPos(net.minecraft.world.entity.Entity entity) {
|
||||
@@ -22,34 +22,34 @@ index 12ff8886bb53ca15db745989c25b9bd2f45335e4..c86f669448b5ec93c54784192b470c7e
|
||||
super(x, y, z);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 6915522f669631779c1fb8a8e2db330f4b9fb921..1d934bf1fbd1c439ad40e7dbc86b29349ef21457 100644
|
||||
index 7e32eecacf6f5e832dbfd0455e4bab1302a33d46..32d574d1f52577c67883d99309ff03a9fae123dc 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1649,6 +1649,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
ServerLevel worldserver = (ServerLevel) iterator.next();
|
||||
@@ -1660,6 +1660,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
worldserver.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
|
||||
worldserver.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = worldserver.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
|
||||
+ worldserver.hasRidableMoveEvent = org.purpurmc.purpur.event.entity.RidableMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Purpur
|
||||
|
||||
this.profiler.push(() -> {
|
||||
String s = String.valueOf(worldserver);
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 3f17212fc814156e2d3e8c7d4cf40680ab5cdbb5..2e3e9f572c0d29dfd9544c41b2f02f34d6b50786 100644
|
||||
index fb0db51493e343c781876b9db773fa3fc9a8d666..e8ed80cf7d7519eab614e5ae5326755b40c76623 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -229,6 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
public final UUID uuid;
|
||||
@@ -229,6 +229,7 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
||||
public boolean hasPhysicsEvent = true; // Paper - BlockPhysicsEvent
|
||||
public boolean hasEntityMoveEvent; // Paper - Add EntityMoveEvent
|
||||
private final alternate.current.wire.WireHandler wireHandler = new alternate.current.wire.WireHandler(this); // Paper - optimize redstone (Alternate Current)
|
||||
+ public boolean hasRidableMoveEvent = false; // Purpur
|
||||
|
||||
public LevelChunk getChunkIfLoaded(int x, int z) {
|
||||
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 2c02e1ccc8005c1bff952d4aa17557002c7e3d84..720f96ab9fd525f5a97302da24b68509fb45eb84 100644
|
||||
index 47afcbc699a992358871fe90929f71b4d47d9601..ae41c955ec6cfe284fec5f8e79cb827ea20facc0 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -771,6 +771,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
|
||||
@@ -806,6 +806,15 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player imple
|
||||
this.trackEnteredOrExitedLavaOnVehicle();
|
||||
this.updatePlayerAttributes();
|
||||
this.advancements.flushDirty(this);
|
||||
@@ -66,7 +66,7 @@ index 2c02e1ccc8005c1bff952d4aa17557002c7e3d84..720f96ab9fd525f5a97302da24b68509
|
||||
|
||||
private void updatePlayerAttributes() {
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 60f6f17aea41ffaa277bff380924cc752eb3e62a..78181ad76f9835f900f7583bdefb0e7e56f863f3 100644
|
||||
index be2e97e4de911ad9570a9b4e9f3c5fafa93f6203..224a4d09bca571e6b440ea3011fbd13f785c78db 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2716,6 +2716,8 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -79,7 +79,7 @@ index 60f6f17aea41ffaa277bff380924cc752eb3e62a..78181ad76f9835f900f7583bdefb0e7e
|
||||
if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) {
|
||||
entity.getBukkitEntity().update(ServerGamePacketListenerImpl.this.player);
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4a80c1601 100644
|
||||
index 134af1086b63bcdcca4bce9f3534bd19a82db774..67aa0563c33bc9a98facfff6bf5a1a8ace483d99 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -383,7 +383,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -91,7 +91,7 @@ index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4
|
||||
private float eyeHeight;
|
||||
public boolean isInPowderSnow;
|
||||
public boolean wasInPowderSnow;
|
||||
@@ -2851,6 +2851,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -2933,6 +2933,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
this.passengers = ImmutableList.copyOf(list);
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4
|
||||
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
|
||||
}
|
||||
}
|
||||
@@ -2890,6 +2897,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -2972,6 +2979,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return false;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -120,7 +120,7 @@ index 6735bea3a56e0b44eb22dcd403a6b937e31b45c7..4454f9b41c3ebeb98d71b9b891e657b4
|
||||
if (this.passengers.size() == 1 && this.passengers.get(0) == entity) {
|
||||
this.passengers = ImmutableList.of();
|
||||
} else {
|
||||
@@ -4717,4 +4732,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -4814,4 +4829,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return ((net.minecraft.server.level.ServerChunkCache) level.getChunkSource()).isPositionTicking(this);
|
||||
}
|
||||
// Paper end - Expose entity id counter
|
||||
@@ -190,7 +190,7 @@ index 09fdea983772612ef3fff6b2da3cf469a34e4ec0..aa76a24421cdb3908a3544d92eb3d1e3
|
||||
protected ParticleOptions getInkParticle() {
|
||||
return ParticleTypes.GLOW_SQUID_INK;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 23ce3f5fefceaeff5011f91f04ec8b200a503d21..fcc73ac45c963bd18f1658149295c672598f3ddd 100644
|
||||
index 25a7dfddb44a11f6e20c459141a61270c0c12d4c..6b5d09b34c9fe88548a14e64e9aa42841e9031f5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -237,9 +237,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -259,7 +259,7 @@ index 23ce3f5fefceaeff5011f91f04ec8b200a503d21..fcc73ac45c963bd18f1658149295c672
|
||||
// Paper end - Add EntityMoveEvent
|
||||
if (!this.level().isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
index 5bac748649f43d74b13e7c0b4d355e67654ad59e..ec3e0e076cb9f2b5160988ab78d6ab7b33f9490f 100644
|
||||
index 7b93c6a04cca2ac31d137f06ef83bb08559b10bf..091d2b1646068657120ee4244d79cbf7867a9cf7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||
@@ -160,8 +160,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
@@ -273,7 +273,7 @@ index 5bac748649f43d74b13e7c0b4d355e67654ad59e..ec3e0e076cb9f2b5160988ab78d6ab7b
|
||||
this.jumpControl = new JumpControl(this);
|
||||
this.bodyRotationControl = this.createBodyControl();
|
||||
this.navigation = this.createNavigation(world);
|
||||
@@ -1493,7 +1493,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
@@ -1506,7 +1506,7 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
|
||||
|
||||
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
|
||||
@@ -282,7 +282,7 @@ index 5bac748649f43d74b13e7c0b4d355e67654ad59e..ec3e0e076cb9f2b5160988ab78d6ab7b
|
||||
}
|
||||
|
||||
public boolean isWithinRestriction() {
|
||||
@@ -1791,4 +1791,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
@@ -1804,4 +1804,56 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
|
||||
|
||||
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
|
||||
}
|
||||
@@ -4918,7 +4918,7 @@ index 38bf417a9ad4647f4af24d969f3bf4fed9c4bad7..ba560ab0340c06614547dcddbdcbd1bb
|
||||
|
||||
public static void applyDarknessAround(ServerLevel world, Vec3 pos, @Nullable Entity entity, int range) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
index 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e6ea579ff 100644
|
||||
index 7e1871401ec5e3e9a85232053490259f132aec0a..7c4c545fca0858caac1cf98ad24b6d59be79dc32 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
|
||||
@@ -156,6 +156,28 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -4950,11 +4950,11 @@ index 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e
|
||||
@Override
|
||||
public Brain<Villager> getBrain() {
|
||||
return (Brain<Villager>) super.getBrain(); // CraftBukkit - decompile error
|
||||
@@ -239,6 +261,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
protected void customServerAiStep() {
|
||||
@@ -256,6 +278,11 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
// Paper end
|
||||
this.level().getProfiler().push("villagerBrain");
|
||||
this.getBrain().tick((ServerLevel) this.level(), this);
|
||||
+ /*// Purpur start // Purpur - TODO: Pufferfish
|
||||
if (!inactive) this.getBrain().tick((ServerLevel) this.level(), this); // Paper
|
||||
+ /*// Purpur start // Purpur - TODO: Pufferfish
|
||||
+ if (!inactive && (getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) { // Purpur - only use brain if no rider
|
||||
+ this.getBrain().tick((ServerLevel) this.level(), this); // Paper
|
||||
+ }
|
||||
@@ -4962,7 +4962,7 @@ index 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e
|
||||
this.level().getProfiler().pop();
|
||||
if (this.assignProfessionWhenSpawned) {
|
||||
this.assignProfessionWhenSpawned = false;
|
||||
@@ -294,7 +321,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -312,7 +339,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
if (!itemstack.is(Items.VILLAGER_SPAWN_EGG) && this.isAlive() && !this.isTrading() && !this.isSleeping()) {
|
||||
if (this.isBaby()) {
|
||||
this.setUnhappy();
|
||||
@@ -4971,7 +4971,7 @@ index 393588661c41b490ee6bce2f687962f7ddeff7d4..d7545f978cde231e9c154631ab7f225e
|
||||
} else {
|
||||
if (!this.level().isClientSide) {
|
||||
boolean flag = this.getOffers().isEmpty();
|
||||
@@ -308,9 +335,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
@@ -326,9 +353,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
|
||||
}
|
||||
|
||||
if (flag) {
|
||||
@@ -5024,7 +5024,7 @@ index 0af34e0f9c9696fbcb11b12fb27472ef17ad532a..d514faecb9e6b244aa043383fa072316
|
||||
this.openTradingScreen(player, this.getDisplayName(), 1);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index ffb888262ba81073062f6f513c36108688d0f158..6506e5b2165cabcc27543beeae83812dd108a252 100644
|
||||
index 0526f4c701b4d945f26c5f382e9efac86cc568fa..0f7c4e39d5569c8f6387bc003d29d4b7d59d77e0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -207,6 +207,19 @@ public abstract class Player extends LivingEntity {
|
||||
|
||||
Reference in New Issue
Block a user