48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
--- a/net/minecraft/world/entity/IEntityAngerable.java
|
|
+++ b/net/minecraft/world/entity/IEntityAngerable.java
|
|
@@ -10,6 +10,10 @@
|
|
import net.minecraft.world.level.GameRules;
|
|
import net.minecraft.world.level.World;
|
|
|
|
+// CraftBukkit start
|
|
+import org.bukkit.event.entity.EntityTargetEvent;
|
|
+// CraftBukkit end
|
|
+
|
|
public interface IEntityAngerable {
|
|
|
|
String TAG_ANGER_TIME = "AngerTime";
|
|
@@ -34,13 +38,13 @@
|
|
default void readPersistentAngerSaveData(World world, NBTTagCompound nbttagcompound) {
|
|
this.setRemainingPersistentAngerTime(nbttagcompound.getIntOr("AngerTime", 0));
|
|
if (world instanceof WorldServer worldserver) {
|
|
- UUID uuid = (UUID) nbttagcompound.read("AngryAt", UUIDUtil.CODEC).orElse((Object) null);
|
|
+ UUID uuid = (UUID) nbttagcompound.read("AngryAt", UUIDUtil.CODEC).orElse(null); // CraftBukkit - decompile error
|
|
|
|
this.setPersistentAngerTarget(uuid);
|
|
Entity entity = uuid != null ? worldserver.getEntity(uuid) : null;
|
|
|
|
if (entity instanceof EntityLiving entityliving) {
|
|
- this.setTarget(entityliving);
|
|
+ this.setTarget(entityliving, EntityTargetEvent.TargetReason.UNKNOWN, false); // CraftBukkit
|
|
}
|
|
|
|
}
|
|
@@ -96,7 +100,7 @@
|
|
default void stopBeingAngry() {
|
|
this.setLastHurtByMob((EntityLiving) null);
|
|
this.setPersistentAngerTarget((UUID) null);
|
|
- this.setTarget((EntityLiving) null);
|
|
+ this.setTarget((EntityLiving) null, org.bukkit.event.entity.EntityTargetEvent.TargetReason.FORGOT_TARGET, true); // CraftBukkit
|
|
this.setRemainingPersistentAngerTime(0);
|
|
}
|
|
|
|
@@ -107,6 +111,8 @@
|
|
|
|
void setTarget(@Nullable EntityLiving entityliving);
|
|
|
|
+ boolean setTarget(@Nullable EntityLiving entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason reason, boolean fireEvent); // CraftBukkit
|
|
+
|
|
boolean canAttack(EntityLiving entityliving);
|
|
|
|
@Nullable
|