mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-17 21:33:49 -07:00
SPIGOT-5208: Reset state on cancelled EntityTransformEvent to prevent event spam
This commit is contained in:
@@ -1,17 +1,18 @@
|
||||
--- a/net/minecraft/server/EntityZombieVillager.java
|
||||
+++ b/net/minecraft/server/EntityZombieVillager.java
|
||||
@@ -3,6 +3,10 @@
|
||||
@@ -3,6 +3,11 @@
|
||||
import com.mojang.datafixers.Dynamic;
|
||||
import java.util.UUID;
|
||||
import javax.annotation.Nullable;
|
||||
+// CraftBukkit start
|
||||
+import org.bukkit.craftbukkit.event.CraftEventFactory;
|
||||
+import org.bukkit.entity.ZombieVillager;
|
||||
+import org.bukkit.event.entity.EntityTransformEvent;
|
||||
+// CraftBukkit end
|
||||
|
||||
public class EntityZombieVillager extends EntityZombie implements VillagerDataHolder {
|
||||
|
||||
@@ -13,6 +17,7 @@
|
||||
@@ -13,6 +18,7 @@
|
||||
private NBTBase bB;
|
||||
private NBTTagCompound bC;
|
||||
private int bD;
|
||||
@@ -19,7 +20,7 @@
|
||||
|
||||
public EntityZombieVillager(EntityTypes<? extends EntityZombieVillager> entitytypes, World world) {
|
||||
super(entitytypes, world);
|
||||
@@ -75,6 +80,11 @@
|
||||
@@ -75,6 +81,11 @@
|
||||
public void tick() {
|
||||
if (!this.world.isClientSide && this.isAlive() && this.isConverting()) {
|
||||
int i = this.getConversionProgress();
|
||||
@@ -31,7 +32,7 @@
|
||||
|
||||
this.conversionTime -= i;
|
||||
if (this.conversionTime <= 0) {
|
||||
@@ -122,8 +132,11 @@
|
||||
@@ -122,8 +133,11 @@
|
||||
this.conversionPlayer = uuid;
|
||||
this.conversionTime = i;
|
||||
this.getDataWatcher().set(EntityZombieVillager.CONVERTING, true);
|
||||
@@ -45,7 +46,7 @@
|
||||
this.world.broadcastEntityEffect(this, (byte) 16);
|
||||
}
|
||||
|
||||
@@ -146,14 +159,20 @@
|
||||
@@ -146,14 +160,21 @@
|
||||
entityvillager.setAgeRaw(-24000);
|
||||
}
|
||||
|
||||
@@ -60,6 +61,7 @@
|
||||
- worldserver.addEntity(entityvillager);
|
||||
+ // CraftBukkit start
|
||||
+ if (CraftEventFactory.callEntityTransformEvent(this, entityvillager, EntityTransformEvent.TransformReason.CURED).isCancelled()) {
|
||||
+ ((ZombieVillager) getBukkitEntity()).setConversionTime(-1); // SPIGOT-5208: End conversion to stop event spam
|
||||
+ return;
|
||||
+ }
|
||||
+ this.die(); // CraftBukkit - from above
|
||||
@@ -68,7 +70,7 @@
|
||||
if (this.conversionPlayer != null) {
|
||||
EntityHuman entityhuman = worldserver.b(this.conversionPlayer);
|
||||
|
||||
@@ -163,7 +182,7 @@
|
||||
@@ -163,7 +184,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user