aboutsummaryrefslogtreecommitdiffhomepage
path: root/patch-remap/og/net/minecraft/world/entity/animal/EntityCat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-remap/og/net/minecraft/world/entity/animal/EntityCat.patch')
-rw-r--r--patch-remap/og/net/minecraft/world/entity/animal/EntityCat.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/patch-remap/og/net/minecraft/world/entity/animal/EntityCat.patch b/patch-remap/og/net/minecraft/world/entity/animal/EntityCat.patch
new file mode 100644
index 0000000000..5f15487654
--- /dev/null
+++ b/patch-remap/og/net/minecraft/world/entity/animal/EntityCat.patch
@@ -0,0 +1,51 @@
+--- a/net/minecraft/world/entity/animal/EntityCat.java
++++ b/net/minecraft/world/entity/animal/EntityCat.java
+@@ -413,7 +413,7 @@
+ }
+ } else if (this.isFood(itemstack)) {
+ this.usePlayerItem(entityhuman, enumhand, itemstack);
+- if (this.random.nextInt(3) == 0) {
++ if (this.random.nextInt(3) == 0 && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTameEvent(this, entityhuman).isCancelled()) { // CraftBukkit
+ this.tame(entityhuman);
+ this.setOrderedToSit(true);
+ this.level().broadcastEntityEvent(this, (byte) 7);
+@@ -475,7 +475,7 @@
+ private static class PathfinderGoalTemptChance extends PathfinderGoalTempt {
+
+ @Nullable
+- private EntityHuman selectedPlayer;
++ private EntityLiving selectedPlayer; // CraftBukkit
+ private final EntityCat cat;
+
+ public PathfinderGoalTemptChance(EntityCat entitycat, double d0, RecipeItemStack recipeitemstack, boolean flag) {
+@@ -616,7 +616,15 @@
+ while (iterator.hasNext()) {
+ ItemStack itemstack = (ItemStack) iterator.next();
+
+- this.cat.level().addFreshEntity(new EntityItem(this.cat.level(), (double) blockposition_mutableblockposition.getX() - (double) MathHelper.sin(this.cat.yBodyRot * 0.017453292F), (double) blockposition_mutableblockposition.getY(), (double) blockposition_mutableblockposition.getZ() + (double) MathHelper.cos(this.cat.yBodyRot * 0.017453292F), itemstack));
++ // CraftBukkit start
++ EntityItem entityitem = new EntityItem(this.cat.level(), (double) blockposition_mutableblockposition.getX() - (double) MathHelper.sin(this.cat.yBodyRot * 0.017453292F), (double) blockposition_mutableblockposition.getY(), (double) blockposition_mutableblockposition.getZ() + (double) MathHelper.cos(this.cat.yBodyRot * 0.017453292F), itemstack);
++ org.bukkit.event.entity.EntityDropItemEvent event = new org.bukkit.event.entity.EntityDropItemEvent(this.cat.getBukkitEntity(), (org.bukkit.entity.Item) entityitem.getBukkitEntity());
++ entityitem.level().getCraftServer().getPluginManager().callEvent(event);
++ if (event.isCancelled()) {
++ continue;
++ }
++ this.cat.level().addFreshEntity(entityitem);
++ // CraftBukkit end
+ }
+
+ }
+@@ -648,10 +656,10 @@
+ private final EntityCat cat;
+
+ public a(EntityCat entitycat, Class<T> oclass, float f, double d0, double d1) {
+- Predicate predicate = IEntitySelector.NO_CREATIVE_OR_SPECTATOR;
++ // Predicate predicate = IEntitySelector.NO_CREATIVE_OR_SPECTATOR; // CraftBukkit - decompile error
+
+- Objects.requireNonNull(predicate);
+- super(entitycat, oclass, f, d0, d1, predicate::test);
++ // Objects.requireNonNull(predicate); // CraftBukkit - decompile error
++ super(entitycat, oclass, f, d0, d1, IEntitySelector.NO_CREATIVE_OR_SPECTATOR::test); // CraftBukkit - decompile error
+ this.cat = entitycat;
+ }
+