Files
CatServer/patches/net/minecraft/block/BlockCake.java.patch

34 lines
1.5 KiB
Diff

--- ../src-base/minecraft/net/minecraft/block/BlockCake.java
+++ ../src-work/minecraft/net/minecraft/block/BlockCake.java
@@ -8,9 +8,11 @@
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
+import net.minecraft.network.play.server.SPacketUpdateHealth;
import net.minecraft.stats.StatList;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.EnumFacing;
@@ -66,7 +68,17 @@
if (player.canEat(false))
{
player.addStat(StatList.CAKE_SLICES_EATEN);
- player.getFoodStats().addStats(2, 0.1F);
+ // CraftBukkit start
+ int oldFoodLevel = player.getFoodStats().foodLevel;
+
+ org.bukkit.event.entity.FoodLevelChangeEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callFoodLevelChangeEvent(player, 2 + oldFoodLevel);
+
+ if (!event.isCancelled()) {
+ player.getFoodStats().addStats(event.getFoodLevel() - oldFoodLevel, 0.1F);
+ }
+
+ ((EntityPlayerMP) player).connection.sendPacket(new SPacketUpdateHealth(((EntityPlayerMP) player).getBukkitEntity().getScaledHealth(), player.getFoodStats().foodLevel, player.getFoodStats().foodSaturationLevel));
+ // CraftBukkit end
int i = ((Integer)state.getValue(BITES)).intValue();
if (i < 6)