merge upstream

This commit is contained in:
Ben Kerllenevich
2022-06-09 07:12:26 -04:00
parent 9ab5b07c78
commit 4b168c7792
41 changed files with 253 additions and 270 deletions

View File

@@ -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 1794893cab3f26faa58745a95cb50d239f8a1484..9f07b6bb89b2f7424d874aca8399c9a31f3bf669 100644
index e25423b46ced54dd6b270d45a3c4502a01b2e227..f153176210618c5778056f351ac94a8fb6b4a4e3 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
@@ -2312,7 +2312,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
@@ -2311,7 +2311,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
public class TrackedEntity {
@@ -18,7 +18,7 @@ index 1794893cab3f26faa58745a95cb50d239f8a1484..9f07b6bb89b2f7424d874aca8399c9a3
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 3eb947e16684965b861a07591f18db838e7c874b..7e81bec1bbe2df498a62721d9b3b257ae4d3be9a 100644
index 0bc963fc214da203a6e505fdd5edee3b1efc03df..d8cb1d7cdd2d0ab28eaf3c91a0316af102f702e1 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
@@ -65,7 +65,7 @@ public class ServerEntity {
@@ -31,7 +31,7 @@ index 3eb947e16684965b861a07591f18db838e7c874b..7e81bec1bbe2df498a62721d9b3b257a
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 3b70e37140531884397696760dd9ef597c4655bc..86713a01e5e43f13f1aa0e0c53b299126f24b433 100644
index 7e927dec3e4e4fb65bf89a87cfa555045c58bb3a..22591789a33e0b08e9ee2529bc7d6b548310afa4 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -55,6 +55,12 @@ public class ItemEntity extends Entity {
@@ -47,7 +47,20 @@ index 3b70e37140531884397696760dd9ef597c4655bc..86713a01e5e43f13f1aa0e0c53b29912
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
super(type, world);
@@ -332,6 +338,15 @@ public class ItemEntity extends Entity {
@@ -81,6 +87,12 @@ public class ItemEntity extends Entity {
this.copyPosition(entity);
this.age = entity.age;
this.bobOffs = entity.bobOffs;
+ // Purpur start
+ if (level.purpurConfig.itemImmuneToCactus.contains(stack.getItem())) immuneToCactus = true;
+ if (level.purpurConfig.itemImmuneToExplosion.contains(stack.getItem())) immuneToExplosion = true;
+ if (level.purpurConfig.itemImmuneToFire.contains(stack.getItem())) immuneToFire = true;
+ if (level.purpurConfig.itemImmuneToLightning.contains(stack.getItem())) immuneToLightning = true;
+ // level end
}
@Override
@@ -332,6 +344,15 @@ public class ItemEntity extends Entity {
return false;
} else if (!this.getItem().getItem().canBeHurtBy(source)) {
return false;
@@ -63,19 +76,6 @@ index 3b70e37140531884397696760dd9ef597c4655bc..86713a01e5e43f13f1aa0e0c53b29912
} else if (this.level.isClientSide) {
return true;
} else {
@@ -518,6 +533,12 @@ public class ItemEntity extends Entity {
this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty
net.minecraft.resources.ResourceLocation location = net.minecraft.core.Registry.ITEM.getKey(stack.getItem()); // Paper
this.despawnRate = level.paperConfig.altItemDespawnRateMap.getOrDefault(location, level.spigotConfig.itemDespawnRate); // Paper
+ // Purpur start
+ if (level.purpurConfig.itemImmuneToCactus.contains(stack.getItem())) immuneToCactus = true;
+ if (level.purpurConfig.itemImmuneToExplosion.contains(stack.getItem())) immuneToExplosion = true;
+ if (level.purpurConfig.itemImmuneToFire.contains(stack.getItem())) immuneToFire = true;
+ if (level.purpurConfig.itemImmuneToLightning.contains(stack.getItem())) immuneToLightning = true;
+ // level end
}
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
index fea44ba6a6584b4a510af6a58cab07eecec6b68b..f3bf5199bc7ddf8a3d0dc67a184e7690efa659eb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java