diff options
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.patch | 51 |
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; + } + |