fix fire and lava immunity options, closes #1431

This commit is contained in:
granny
2023-09-13 15:53:44 -07:00
parent bd327aee94
commit 7927f53553

View File

@@ -18,7 +18,7 @@ index 8ab959dd588b5154b63e133b2e937fa2d0ab8e52..fb11b020d52988360562db23d8568e5e
public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) { public ServerEntity(ServerLevel worldserver, Entity entity, int i, boolean flag, Consumer<Packet<?>> consumer, Set<ServerPlayerConnection> trackedPlayers) {
this.trackedPlayers = 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 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 d39f31e7cf315c7cdc1daab28164380e44dd8341..f5f7f384329fdc96fce794c3cf5439d2ab8ecc8b 100644 index d39f31e7cf315c7cdc1daab28164380e44dd8341..028b83b8e835cfdad19ae9edad76c524b98ead7f 100644
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
@@ -56,6 +56,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -56,6 +56,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
@@ -34,22 +34,24 @@ index d39f31e7cf315c7cdc1daab28164380e44dd8341..f5f7f384329fdc96fce794c3cf5439d2
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) { public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
super(type, world); super(type, world);
@@ -352,6 +358,15 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -346,7 +352,16 @@ public class ItemEntity extends Entity implements TraceableEntity {
return false;
} else if (!this.getItem().getItem().canBeHurtBy(source)) { @Override
return false; public boolean hurt(DamageSource source, float amount) {
- if (this.isInvulnerableTo(source)) {
+ // Purpur start + // Purpur start
+ } else if ( + if (
+ (immuneToCactus && source.is(net.minecraft.world.damagesource.DamageTypes.CACTUS)) || + (immuneToCactus && source.is(net.minecraft.world.damagesource.DamageTypes.CACTUS)) ||
+ (immuneToFire && (source.is(DamageTypeTags.IS_FIRE) && source.is(net.minecraft.world.damagesource.DamageTypes.IN_FIRE)) || + (immuneToFire && (source.is(DamageTypeTags.IS_FIRE) || source.is(net.minecraft.world.damagesource.DamageTypes.ON_FIRE) || source.is(net.minecraft.world.damagesource.DamageTypes.IN_FIRE))) ||
+ (immuneToLightning && source.is(net.minecraft.world.damagesource.DamageTypes.LIGHTNING_BOLT)) || + (immuneToLightning && source.is(net.minecraft.world.damagesource.DamageTypes.LIGHTNING_BOLT)) ||
+ (immuneToExplosion && source.is(DamageTypeTags.IS_EXPLOSION))) + (immuneToExplosion && source.is(DamageTypeTags.IS_EXPLOSION))
+ ) { + ) {
+ return false; + return false;
+ } else if (this.isInvulnerableTo(source)) {
+ // Purpur end + // Purpur end
} else if (this.level().isClientSide) { return false;
return true; } else if (!this.getItem().isEmpty() && this.getItem().is(Items.NETHER_STAR) && source.is(DamageTypeTags.IS_EXPLOSION)) {
} else { return false;
@@ -549,6 +564,12 @@ public class ItemEntity extends Entity implements TraceableEntity { @@ -549,6 +564,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
// com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit // Paper - Remove check // com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit // Paper - Remove check
this.getEntityData().set(ItemEntity.DATA_ITEM, stack); this.getEntityData().set(ItemEntity.DATA_ITEM, stack);