diff --git a/src/main/java/com/jenny/magic/items/AmuletEffect.java b/src/main/java/com/jenny/magic/items/AmuletEffect.java new file mode 100644 index 0000000..1ba331e --- /dev/null +++ b/src/main/java/com/jenny/magic/items/AmuletEffect.java @@ -0,0 +1,35 @@ +package com.jenny.magic.items; + +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; + +import java.util.Optional; + +public class AmuletEffect extends BaseItem { + private MobEffect effect; + private int delay, duration, amplifier; + + public AmuletEffect(Properties pProperties, MobEffect effect, int delay, int duration, int amplifier) { + super(pProperties.stacksTo(1)); + this.effect = effect; + this.delay = delay; + this.duration = duration; + this.amplifier = amplifier; + } + + @Override + public void inventoryTick(@NotNull ItemStack pStack, @NotNull Level pLevel, @NotNull Entity pEntity, int pSlotId, boolean pIsSelected) { + if (!pLevel.isClientSide && ((ServerLevel) pLevel).getServer().getTickCount() % this.delay == 0) { + if (pEntity instanceof LivingEntity p) { + p.addEffect(new MobEffectInstance(effect, this.duration, this.amplifier, true, true, true, null, Optional.empty())); + System.out.println("test1878567"); + } + } + } +} diff --git a/src/main/java/com/jenny/magic/items/items.java b/src/main/java/com/jenny/magic/items/items.java index 94fb701..58344e4 100644 --- a/src/main/java/com/jenny/magic/items/items.java +++ b/src/main/java/com/jenny/magic/items/items.java @@ -1,6 +1,7 @@ package com.jenny.magic.items; import net.minecraft.ChatFormatting; +import net.minecraft.world.effect.MobEffects; import net.minecraft.world.item.Item; import net.minecraft.world.level.biome.Biomes; import net.minecraftforge.eventbus.api.IEventBus; @@ -22,6 +23,9 @@ public class items { public static final RegistryObject SCROLL_REPEL = ITEMS.register("scroll_repel", () -> new RepelScroll(new Item.Properties().stacksTo(16))); public static final RegistryObject SCROLL_BONEMEAL = ITEMS.register("scroll_bonemeal", () -> new BonemealScroll(new Item.Properties().stacksTo(16))); public static final RegistryObject AMULET_REPAIR = ITEMS.register("amulet_repair", () -> new AmuletRepair(new Item.Properties())); + public static final RegistryObject AMULET_BREATHING = ITEMS.register("amulet_breathing", () -> new AmuletEffect(new Item.Properties(), MobEffects.WATER_BREATHING, 100, 200, 1)); + public static final RegistryObject AMULET_NIGHTVISION = ITEMS.register("amulet_nightvision", () -> new AmuletEffect(new Item.Properties(), MobEffects.NIGHT_VISION, 200, 500, 1)); + public static final RegistryObject DRAGON_HEART = ITEMS.register("dragon_heart", () -> new QualityItem(new Item.Properties())); public static void register(IEventBus bus) {