Files
CatServer/patches/net/minecraft/entity/ai/EntityAIHarvestFarmland.java.patch

52 lines
2.8 KiB
Diff

--- ../src-base/minecraft/net/minecraft/entity/ai/EntityAIHarvestFarmland.java
+++ ../src-work/minecraft/net/minecraft/entity/ai/EntityAIHarvestFarmland.java
@@ -71,6 +71,7 @@
if (this.currentTask == 0 && block instanceof BlockCrops && ((BlockCrops)block).isMaxAge(iblockstate))
{
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.theVillager, blockpos, Blocks.AIR, 0).isCancelled())
world.destroyBlock(blockpos, true);
}
else if (this.currentTask == 1 && iblockstate.getMaterial() == Material.AIR)
@@ -84,26 +85,36 @@
if (itemstack != null)
{
+ Block planted = null;
if (itemstack.getItem() == Items.WHEAT_SEEDS)
{
- world.setBlockState(blockpos, Blocks.WHEAT.getDefaultState(), 3);
+ //world.setBlockState(blockpos, Blocks.WHEAT.getDefaultState(), 3);
+ planted = Blocks.WHEAT;
flag = true;
}
else if (itemstack.getItem() == Items.POTATO)
{
- world.setBlockState(blockpos, Blocks.POTATOES.getDefaultState(), 3);
+ //world.setBlockState(blockpos, Blocks.POTATOES.getDefaultState(), 3);
+ planted = Blocks.POTATOES;
flag = true;
}
else if (itemstack.getItem() == Items.CARROT)
{
- world.setBlockState(blockpos, Blocks.CARROTS.getDefaultState(), 3);
+ //world.setBlockState(blockpos, Blocks.CARROTS.getDefaultState(), 3);
+ planted = Blocks.CARROTS;
flag = true;
}
else if (itemstack.getItem() == Items.BEETROOT_SEEDS)
{
- world.setBlockState(blockpos, Blocks.BEETROOTS.getDefaultState(), 3);
+ //world.setBlockState(blockpos, Blocks.BEETROOTS.getDefaultState(), 3);
+ planted = Blocks.BEETROOTS;
flag = true;
}
+ if (planted != null && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(this.theVillager, blockpos, planted, 0).isCancelled()) {
+ world.setBlockState(blockpos, planted.getDefaultState(), 3);
+ } else {
+ flag = false;
+ }
}
if (flag)