diff options
Diffstat (limited to 'paper-server/patches/unapplied/net/minecraft/world/effect/SaturationMobEffect.java.patch')
-rw-r--r-- | paper-server/patches/unapplied/net/minecraft/world/effect/SaturationMobEffect.java.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/paper-server/patches/unapplied/net/minecraft/world/effect/SaturationMobEffect.java.patch b/paper-server/patches/unapplied/net/minecraft/world/effect/SaturationMobEffect.java.patch new file mode 100644 index 0000000000..5d38f090c8 --- /dev/null +++ b/paper-server/patches/unapplied/net/minecraft/world/effect/SaturationMobEffect.java.patch @@ -0,0 +1,30 @@ +--- a/net/minecraft/world/effect/SaturationMobEffect.java ++++ b/net/minecraft/world/effect/SaturationMobEffect.java +@@ -3,6 +3,10 @@ + import net.minecraft.server.level.ServerLevel; + import net.minecraft.world.entity.LivingEntity; + import net.minecraft.world.entity.player.Player; ++// CraftBukkit start ++import org.bukkit.craftbukkit.entity.CraftPlayer; ++import org.bukkit.craftbukkit.event.CraftEventFactory; ++// CraftBukkit end + + class SaturationMobEffect extends InstantenousMobEffect { + +@@ -13,7 +17,15 @@ + @Override + public boolean applyEffectTick(ServerLevel world, LivingEntity entity, int amplifier) { + if (entity instanceof Player entityhuman) { +- entityhuman.getFoodData().eat(amplifier + 1, 1.0F); ++ // CraftBukkit start ++ int oldFoodLevel = entityhuman.getFoodData().foodLevel; ++ org.bukkit.event.entity.FoodLevelChangeEvent event = CraftEventFactory.callFoodLevelChangeEvent(entityhuman, amplifier + 1 + oldFoodLevel); ++ if (!event.isCancelled()) { ++ entityhuman.getFoodData().eat(event.getFoodLevel() - oldFoodLevel, 1.0F); ++ } ++ ++ ((CraftPlayer) entityhuman.getBukkitEntity()).sendHealthUpdate(); ++ // CraftBukkit end + } + + return true; |