SPIGOT-7997: Cancelling EntityTransformEvent does not reset StrayConversionTime

This commit is contained in:
Doc 2025-01-20 21:14:38 +11:00 committed by md_5
parent 8da2a0a646
commit 21d34ea471
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -1,11 +1,22 @@
--- a/net/minecraft/world/entity/monster/EntitySkeleton.java --- a/net/minecraft/world/entity/monster/EntitySkeleton.java
+++ b/net/minecraft/world/entity/monster/EntitySkeleton.java +++ b/net/minecraft/world/entity/monster/EntitySkeleton.java
@@ -99,7 +99,7 @@ @@ -94,12 +94,17 @@
}
protected void doFreezeConversion() {
- this.convertTo(EntityTypes.STRAY, ConversionParams.single(this, true, true), (entityskeletonstray) -> {
+ net.minecraft.world.entity.monster.EntitySkeletonStray converted = this.convertTo(EntityTypes.STRAY, ConversionParams.single(this, true, true), (entityskeletonstray) -> { // CraftBukkit
if (!this.isSilent()) {
this.level().levelEvent((EntityHuman) null, 1048, this.blockPosition(), 0); this.level().levelEvent((EntityHuman) null, 1048, this.blockPosition(), 0);
} }
- }); - });
+ }, org.bukkit.event.entity.EntityTransformEvent.TransformReason.FROZEN, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.FROZEN); // CraftBukkit - add spawn and transform reasons + // CraftBukkit start
+ }, org.bukkit.event.entity.EntityTransformEvent.TransformReason.FROZEN, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.FROZEN);
+ if (converted == null) {
+ ((org.bukkit.entity.Skeleton) getBukkitEntity()).setConversionTime(-1); // CraftBukkit - SPIGOT-7997: End conversion to stop event spam
+ }
+ // CraftBukkit end
} }
@Override @Override