diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinPlayerEntity.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinPlayerEntity.java index 2b864d18..73b5ae7b 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinPlayerEntity.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinPlayerEntity.java @@ -31,6 +31,7 @@ import net.minecraft.entity.attribute.EntityAttributes; import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.effect.StatusEffect; import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.player.HungerManager; import net.minecraft.entity.player.PlayerAbilities; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; @@ -65,6 +66,9 @@ public abstract class MixinPlayerEntity extends LivingEntity { @Final PlayerInventory inventory; + @Shadow + protected HungerManager hungerManager; + @Unique private static final EntityDimensions viaFabricPlus$sneaking_dimensions_v1_13_2 = EntityDimensions.changing(0.6F, 1.65F).withEyeHeight(1.54F). withAttachments(EntityAttachments.builder().add(EntityAttachmentType.VEHICLE, PlayerEntity.VEHICLE_ATTACHMENT_POS)); @@ -121,6 +125,13 @@ public abstract class MixinPlayerEntity extends LivingEntity { return ProtocolTranslator.getTargetVersion().newerThan(ProtocolVersion.v1_15_2) && instance.hasStatusEffect(registryEntry); } + @Inject(method = "canConsume", at = @At("HEAD"), cancellable = true) + private void preventEatingFoodInCreative(boolean ignoreHunger, CallbackInfoReturnable cir) { + if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_14_4)) { + cir.setReturnValue(!this.abilities.invulnerable && (ignoreHunger || this.hungerManager.isNotFull())); + } + } + @Inject(method = "checkFallFlying", at = @At("HEAD"), cancellable = true) private void replaceFallFlyingCondition(CallbackInfoReturnable cir) { if (ProtocolTranslator.getTargetVersion().olderThanOrEqualTo(ProtocolVersion.v1_14_4)) {