aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/world/entity/animal/EntityWolf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-remap/og/net/minecraft/world/entity/animal/EntityWolf.patch')
-rw-r--r--patch-remap/og/net/minecraft/world/entity/animal/EntityWolf.patch76
1 files changed, 76 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/entity/animal/EntityWolf.patch b/patch-remap/og/net/minecraft/world/entity/animal/EntityWolf.patch
new file mode 100644
index 0000000000..8114754db0
--- /dev/null
+++ b/patch-remap/og/net/minecraft/world/entity/animal/EntityWolf.patch
@@ -0,0 +1,76 @@
+--- a/net/minecraft/world/entity/animal/EntityWolf.java
++++ b/net/minecraft/world/entity/animal/EntityWolf.java
+@@ -70,6 +70,12 @@
+ import net.minecraft.world.phys.Vec3D;
+ import org.joml.Vector3f;
+
++// CraftBukkit start
++import org.bukkit.event.entity.EntityRegainHealthEvent;
++import org.bukkit.event.entity.EntityTargetEvent;
++import org.bukkit.craftbukkit.event.CraftEventFactory;
++// CraftBukkit end
++
+ public class EntityWolf extends EntityTameableAnimal implements IEntityAngerable {
+
+ private static final DataWatcherObject<Boolean> DATA_INTERESTED_ID = DataWatcher.defineId(EntityWolf.class, DataWatcherRegistry.BOOLEAN);
+@@ -298,15 +304,19 @@
+ } else {
+ Entity entity = damagesource.getEntity();
+
+- if (!this.level().isClientSide) {
+- this.setOrderedToSit(false);
+- }
++ // CraftBukkit - move diff down
+
+ if (entity != null && !(entity instanceof EntityHuman) && !(entity instanceof EntityArrow)) {
+ f = (f + 1.0F) / 2.0F;
+ }
+
+- return super.hurt(damagesource, f);
++ // CraftBukkit start
++ boolean result = super.hurt(damagesource, f);
++ if (!this.level().isClientSide && result) {
++ this.setOrderedToSit(false);
++ }
++ return result;
++ // CraftBukkit end
+ }
+ }
+
+@@ -326,7 +336,7 @@
+ super.setTame(flag);
+ if (flag) {
+ this.getAttribute(GenericAttributes.MAX_HEALTH).setBaseValue(20.0D);
+- this.setHealth(20.0F);
++ this.setHealth(this.getMaxHealth()); // CraftBukkit - 20.0 -> getMaxHealth()
+ } else {
+ this.getAttribute(GenericAttributes.MAX_HEALTH).setBaseValue(8.0D);
+ }
+@@ -349,7 +359,7 @@
+ itemstack.shrink(1);
+ }
+
+- this.heal((float) item.getFoodProperties().getNutrition());
++ this.heal((float) item.getFoodProperties().getNutrition(), EntityRegainHealthEvent.RegainReason.EATING); // CraftBukkit
+ return EnumInteractionResult.SUCCESS;
+ } else {
+ if (item instanceof ItemDye) {
+@@ -377,7 +387,7 @@
+ this.setOrderedToSit(!this.isOrderedToSit());
+ this.jumping = false;
+ this.navigation.stop();
+- this.setTarget((EntityLiving) null);
++ this.setTarget((EntityLiving) null, EntityTargetEvent.TargetReason.FORGOT_TARGET, true); // CraftBukkit - reason
+ return EnumInteractionResult.SUCCESS;
+ } else {
+ return enuminteractionresult;
+@@ -388,7 +398,8 @@
+ itemstack.shrink(1);
+ }
+
+- if (this.random.nextInt(3) == 0) {
++ // CraftBukkit - added event call and isCancelled check.
++ if (this.random.nextInt(3) == 0 && !CraftEventFactory.callEntityTameEvent(this, entityhuman).isCancelled()) {
+ this.tame(entityhuman);
+ this.navigation.stop();
+ this.setTarget((EntityLiving) null);