diff --git a/src/main/java/net/Chipperfluff/chipi/item/MepMilkItem.java b/src/main/java/net/Chipperfluff/chipi/item/MepMilkItem.java index 88598d9..7d5149b 100644 --- a/src/main/java/net/Chipperfluff/chipi/item/MepMilkItem.java +++ b/src/main/java/net/Chipperfluff/chipi/item/MepMilkItem.java @@ -1,12 +1,14 @@ package net.Chipperfluff.chipi.item; -import net.Chipperfluff.chipi.effect.ModEffects; import net.minecraft.entity.LivingEntity; -import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.util.UseAction; import net.minecraft.world.World; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.Chipperfluff.chipi.effect.ModEffects; public class MepMilkItem extends Item { @@ -14,17 +16,37 @@ public class MepMilkItem extends Item { super(settings); } + @Override + public UseAction getUseAction(ItemStack stack) { + return UseAction.DRINK; + } + + @Override + public int getMaxUseTime(ItemStack stack) { + return 32; + } + @Override public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { + if (!world.isClient) { + int durationSeconds = 5 + world.random.nextInt(6); + int durationTicks = durationSeconds * 20; + user.addStatusEffect( new StatusEffectInstance( ModEffects.CHIPI_BLESSING, - 20 * 20, + durationTicks, 0 ) ); + } - return new ItemStack(Items.BUCKET); + + if (user instanceof PlayerEntity player && !player.getAbilities().creativeMode) { + return new ItemStack(Items.BUCKET); + } + + return stack; } } diff --git a/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java b/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java index 6c67260..06ed085 100644 --- a/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java +++ b/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java @@ -4,5 +4,15 @@ import net.minecraft.item.FoodComponent; public class ModFoodComponents { - public static final FoodComponent NUT = new FoodComponent.Builder().hunger(4).saturationModifier(0.3f).snack().build(); + public static final FoodComponent NUT = + new FoodComponent.Builder() + .hunger(4) + .saturationModifier(0.3f) + .snack() + .build(); + + public static final FoodComponent MEP_MILK = + new FoodComponent.Builder() + .alwaysEdible() + .build(); } diff --git a/src/main/java/net/Chipperfluff/chipi/item/ModItems.java b/src/main/java/net/Chipperfluff/chipi/item/ModItems.java index 66c2f7d..09d47be 100644 --- a/src/main/java/net/Chipperfluff/chipi/item/ModItems.java +++ b/src/main/java/net/Chipperfluff/chipi/item/ModItems.java @@ -86,7 +86,7 @@ public class ModItems { public static final Item MEP_MILK = Registry.register( Registries.ITEM, new Identifier(ChipiMod.MOD_ID, "mep_milk"), - new MepMilkItem(new Item.Settings().maxCount(1).recipeRemainder(Items.BUCKET)) + new MepMilkItem(new Item.Settings().maxCount(1).recipeRemainder(Items.BUCKET).food(ModFoodComponents.MEP_MILK)) ); // ===== ARMOR =====