Skip to content

Commit 09ea9cb

Browse files
authored
fix mobs not burning in daylight (#1689)
1 parent 8734844 commit 09ea9cb

2 files changed

Lines changed: 32 additions & 4 deletions

File tree

purpur-server/minecraft-patches/features/0018-API-for-any-mob-to-burn-daylight.patch

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ index 34e0fbef06b0c7aededf27fe9dc64f3f6f33e3ae..ce3e5ec505ac37c820436bcf7c7d6452
3535
this.type = entityType;
3636
this.level = level;
3737
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
38-
index 385f7664d51056efd47f685514a98b71784e8ba3..4bd5e7cbaab0998e782bc67d3ba079a80ac40789 100644
38+
index f22862464068180a4276175bf79c40394523703f..3d93e89e7bad80cd5b5c7ccbb738980f4b3469bc 100644
3939
--- a/net/minecraft/world/entity/LivingEntity.java
4040
+++ b/net/minecraft/world/entity/LivingEntity.java
4141
@@ -286,6 +286,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -58,7 +58,7 @@ index 385f7664d51056efd47f685514a98b71784e8ba3..4bd5e7cbaab0998e782bc67d3ba079a8
5858
} // Paper - The sleeping pos will always also set the actual pos, so a desync suggests something is wrong
5959
}, this::clearSleepingPos);
6060
input.read("Brain", Codec.PASSTHROUGH).ifPresent(dynamic -> this.brain = this.makeBrain((Dynamic<?>)dynamic));
61-
+ this.shouldBurnInDay = input.getBooleanOr("Purpur.ShouldBurnInDay", false); // Purpur - API for any mob to burn daylight
61+
+ this.shouldBurnInDay = input.getBooleanOr("Purpur.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - API for any mob to burn daylight
6262
this.lastHurtByPlayer = EntityReference.read(input, "last_hurt_by_player");
6363
this.lastHurtByPlayerMemoryTime = input.getIntOr("last_hurt_by_player_memory_time", 0);
6464
this.lastHurtByMob = EntityReference.read(input, "last_hurt_by_mob");
@@ -207,9 +207,18 @@ index 9baec22561093d64157d93449e84c23b3f238b39..3f331215ef49c52fa3a53bcf744159d2
207207

208208
@Override
209209
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
210-
index 67dc738faef3ab414bf791692090aaea3dbe7385..2c7f11e165ea9f59dca6de559c7bcba39977cb19 100644
210+
index 67dc738faef3ab414bf791692090aaea3dbe7385..512195d639e84684a32ad6fb53e527996b0a4d21 100644
211211
--- a/net/minecraft/world/entity/monster/Phantom.java
212212
+++ b/net/minecraft/world/entity/monster/Phantom.java
213+
@@ -53,7 +53,7 @@ public class Phantom extends Mob implements Enemy {
214+
// Paper start
215+
@Nullable
216+
public java.util.UUID spawningEntity;
217+
- public boolean shouldBurnInDay = true;
218+
+ //public boolean shouldBurnInDay = true; // Purpur - API for any mob to burn daylight
219+
// Paper end
220+
private static final net.minecraft.world.item.crafting.Ingredient TORCH = net.minecraft.world.item.crafting.Ingredient.of(net.minecraft.world.item.Items.TORCH, net.minecraft.world.item.Items.SOUL_TORCH); // Purpur - Phantoms burn in light
221+
213222
@@ -62,6 +62,7 @@ public class Phantom extends Mob implements Enemy {
214223
this.xpReward = 5;
215224
this.moveControl = new Phantom.PhantomMoveControl(this);
@@ -266,7 +275,7 @@ index 67dc738faef3ab414bf791692090aaea3dbe7385..2c7f11e165ea9f59dca6de559c7bcba3
266275
// Paper start
267276
output.storeNullable("Paper.SpawningEntity", net.minecraft.core.UUIDUtil.CODEC, this.spawningEntity);
268277
- output.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay);
269-
+ output.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - implemented in LivingEntity - API for any mob to burn daylight
278+
+ //output.putBoolean("Paper.ShouldBurnInDay", this.shouldBurnInDay); // Purpur - implemented in LivingEntity - API for any mob to burn daylight
270279
// Paper end
271280
}
272281

purpur-server/paper-patches/features/0005-API-for-any-mob-to-burn-daylight.patch

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,22 @@ index 69d92e708bac7925ff30e403e94200236536b670..fc4fa99a993a017676da2be3cb254399
4444
+ }
4545
+ // Purpur end - API for any mob to burn daylight
4646
}
47+
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
48+
index cabdcbef0e6f7ca41ff5677bc2e6a81665ca812d..c47ca9ab164b6abd28e979c94456918162e49214 100644
49+
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
50+
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPhantom.java
51+
@@ -35,12 +35,12 @@ public class CraftPhantom extends CraftMob implements Phantom, CraftEnemy {
52+
53+
@Override
54+
public boolean shouldBurnInDay() {
55+
- return this.getHandle().shouldBurnInDay;
56+
+ return this.getHandle().shouldBurnInDay(); // Purpur - API for any mob to burn daylight
57+
}
58+
59+
@Override
60+
public void setShouldBurnInDay(boolean shouldBurnInDay) {
61+
- this.getHandle().shouldBurnInDay = shouldBurnInDay;
62+
+ this.getHandle().setShouldBurnInDay(shouldBurnInDay); // Purpur - API for any mob to burn daylight
63+
}
64+
65+
@Override

0 commit comments

Comments
 (0)