mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
Update to 1.18.2
This commit is contained in:
@@ -5,10 +5,10 @@ Subject: [PATCH] Item entity immunities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index ca07ba8eb33f1b4f10aba9f4b4c7c1078f80f61b..5ce3feae48e97eaa64798a401e399adc3c8f57f8 100644
|
||||
index 5a1a0ccf163488d5c4ec377821afaa95abebddcb..f8713a8b5abbb246a13646f05ece7438f6151a79 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -2190,7 +2190,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -2242,7 +2242,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
|
||||
public class TrackedEntity {
|
||||
|
||||
@@ -18,7 +18,7 @@ index ca07ba8eb33f1b4f10aba9f4b4c7c1078f80f61b..5ce3feae48e97eaa64798a401e399adc
|
||||
private final int range;
|
||||
SectionPos lastSectionPos;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
index e80176708db486190dd527e3ade5fc690ceb39f7..e3d7a80f8c4b68933875ef90006b79776b4ab000 100644
|
||||
index 937a93d134dc986fe23e5676d58f7619524b9bf3..65f1f919a689f6f7960d731b250582bd521c4eea 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -67,7 +67,7 @@ public class ServerEntity {
|
||||
@@ -31,7 +31,7 @@ index e80176708db486190dd527e3ade5fc690ceb39f7..e3d7a80f8c4b68933875ef90006b7977
|
||||
public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) {
|
||||
this.trackedPlayers = trackedPlayers;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||
index 7889c9832c6a1ac2afebe4e1030495b3ea52fc2b..ee5d8fc20dc761d71eaebb6d0a7ecbbe611bcdd4 100644
|
||||
index e5b8bcfe0d69cc0deecdf54662d553f16550fd2a..1c5aa4e7b06c2b2ce32ea63140154db3c5c58231 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||
@@ -54,6 +54,12 @@ public class ItemEntity extends Entity {
|
||||
@@ -47,7 +47,7 @@ index 7889c9832c6a1ac2afebe4e1030495b3ea52fc2b..ee5d8fc20dc761d71eaebb6d0a7ecbbe
|
||||
|
||||
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
|
||||
super(type, world);
|
||||
@@ -327,6 +333,16 @@ public class ItemEntity extends Entity {
|
||||
@@ -327,6 +333,15 @@ public class ItemEntity extends Entity {
|
||||
return false;
|
||||
} else if (!this.getItem().getItem().canBeHurtBy(source)) {
|
||||
return false;
|
||||
@@ -58,13 +58,12 @@ index 7889c9832c6a1ac2afebe4e1030495b3ea52fc2b..ee5d8fc20dc761d71eaebb6d0a7ecbbe
|
||||
+ (immuneToLightning && source == DamageSource.LIGHTNING_BOLT) ||
|
||||
+ (immuneToExplosion && source.isExplosion())
|
||||
+ ) {
|
||||
+ respawnOnClient();
|
||||
+ return false;
|
||||
+ // Purpur end
|
||||
} else if (this.level.isClientSide) {
|
||||
return true;
|
||||
} else {
|
||||
// CraftBukkit start
|
||||
if (org.bukkit.craftbukkit.event.CraftEventFactory.handleNonLivingEntityDamageEvent(this, source, amount)) {
|
||||
@@ -509,6 +525,12 @@ public class ItemEntity extends Entity {
|
||||
@@ -511,6 +526,12 @@ public class ItemEntity extends Entity {
|
||||
com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit
|
||||
this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
|
||||
this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty
|
||||
@@ -77,24 +76,6 @@ index 7889c9832c6a1ac2afebe4e1030495b3ea52fc2b..ee5d8fc20dc761d71eaebb6d0a7ecbbe
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -599,4 +621,17 @@ public class ItemEntity extends Entity {
|
||||
public SoundSource getSoundSource() {
|
||||
return SoundSource.AMBIENT;
|
||||
}
|
||||
+
|
||||
+ // Purpur start
|
||||
+ public void respawnOnClient() {
|
||||
+ Packet<?> spawnPacket = new ClientboundAddEntityPacket(this);
|
||||
+ Packet<?> metadataPacket = new net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket(getId(), getEntityData(), true);
|
||||
+ for (net.minecraft.server.network.ServerPlayerConnection connection : this.tracker.serverEntity.trackedPlayers) {
|
||||
+ if (!connection.getPlayer().purpurClient) {
|
||||
+ connection.send(spawnPacket);
|
||||
+ connection.send(metadataPacket);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
||||
index 8d56f0ab748373e55c0166b92382c126fe8e5381..0637e074dbe4a10bc19e7bf9dd79e2d966b07b1d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
|
||||
|
||||
Reference in New Issue
Block a user