aboutsummaryrefslogtreecommitdiffhomepage
path: root/paper-server/patches/unapplied/net/minecraft/world/effect/SaturationMobEffect.java.patch
diff options
context:
space:
mode:
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.patch30
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;