@@ -11,29 +11,21 @@
|
||||
public class EntityCow extends EntityAnimal {
|
||||
|
||||
public EntityCow(EntityTypes<? extends EntityCow> entitytypes, World world) {
|
||||
@@ -55,13 +60,22 @@
|
||||
@@ -52,8 +57,16 @@
|
||||
ItemStack itemstack = entityhuman.b(enumhand);
|
||||
|
||||
if (itemstack.getItem() == Items.BUCKET && !entityhuman.abilities.canInstantlyBuild && !this.isBaby()) {
|
||||
if (itemstack.getItem() == Items.BUCKET && !this.isBaby()) {
|
||||
+ // CraftBukkit start - Got milk?
|
||||
+ org.bukkit.event.player.PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman.world, entityhuman, this.getChunkCoordinates(), this.getChunkCoordinates(), null, itemstack, Items.MILK_BUCKET);
|
||||
+ org.bukkit.event.player.PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent((WorldServer) entityhuman.world, entityhuman, this.getChunkCoordinates(), this.getChunkCoordinates(), null, itemstack, Items.MILK_BUCKET);
|
||||
+
|
||||
+ if (event.isCancelled()) {
|
||||
+ return false;
|
||||
+ return EnumInteractionResult.PASS;
|
||||
+ }
|
||||
+
|
||||
+ ItemStack result = CraftItemStack.asNMSCopy(event.getItemStack());
|
||||
entityhuman.a(SoundEffects.ENTITY_COW_MILK, 1.0F, 1.0F);
|
||||
itemstack.subtract(1);
|
||||
if (itemstack.isEmpty()) {
|
||||
- entityhuman.a(enumhand, new ItemStack(Items.MILK_BUCKET));
|
||||
- } else if (!entityhuman.inventory.pickup(new ItemStack(Items.MILK_BUCKET))) {
|
||||
- entityhuman.drop(new ItemStack(Items.MILK_BUCKET), false);
|
||||
+ entityhuman.a(enumhand, result);
|
||||
+ } else if (!entityhuman.inventory.pickup(result)) {
|
||||
+ entityhuman.drop(result, false);
|
||||
}
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
entityhuman.playSound(SoundEffects.ENTITY_COW_MILK, 1.0F, 1.0F);
|
||||
- ItemStack itemstack1 = ItemLiquidUtil.a(itemstack, entityhuman, Items.MILK_BUCKET.r());
|
||||
+ ItemStack itemstack1 = ItemLiquidUtil.a(itemstack, entityhuman, CraftItemStack.asNMSCopy(event.getItemStack())); // CraftBukkit
|
||||
|
||||
return true;
|
||||
} else {
|
||||
entityhuman.a(enumhand, itemstack1);
|
||||
return EnumInteractionResult.a(this.world.isClientSide);
|
||||
|
||||
Reference in New Issue
Block a user