Skip to content

Commit 5867d01

Browse files
authored
Merge pull request #3 from ErrorCraft/fix/hunger_desync
Send a packet to force update the food level on the client after setting the hunger (Fixes #2)
2 parents 6635b9c + f210c23 commit 5867d01

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

src/main/java/errorcraft/entitymodifiers/entity/modifier/modifiers/SetHungerEntityModifier.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import net.minecraft.entity.player.PlayerEntity;
1212
import net.minecraft.loot.context.LootContext;
1313
import net.minecraft.loot.provider.number.LootNumberProvider;
14+
import net.minecraft.network.packet.s2c.play.HealthUpdateS2CPacket;
15+
import net.minecraft.server.network.ServerPlayerEntity;
1416
import net.minecraft.util.JsonHelper;
1517
import net.minecraft.util.math.MathHelper;
1618

@@ -40,6 +42,10 @@ private void setHunger(PlayerEntity player, LootContext lootContext) {
4042
HungerManager hungerManager = player.getHungerManager();
4143
int newHunger = this.add ? hungerManager.getFoodLevel() : 0;
4244
hungerManager.setFoodLevel(MathHelper.clamp(newHunger + this.hungerProvider.nextInt(lootContext), 0, 20));
45+
46+
if (player instanceof ServerPlayerEntity serverPlayer) {
47+
serverPlayer.networkHandler.sendPacket(new HealthUpdateS2CPacket(serverPlayer.getHealth(), hungerManager.getFoodLevel(), hungerManager.getSaturationLevel()));
48+
}
4349
}
4450

4551
public static class Serialiser implements EntityModifier.Serialiser<SetHungerEntityModifier> {

0 commit comments

Comments
 (0)