// Path: src/main/java/com/latenighters/runicarcana/capabilities/BasicCurioProvider.java
// public class BasicCurioProvider implements ICapabilityProvider {
// 
//     final LazyOptional<ICurio> capability;
// 
//     public BasicCurioProvider(ICurio curio) {
// 
//         this.capability = LazyOptional.of(() -> curio);
//     }
// 
//     @SuppressWarnings("ConstantConditions")
//     @Nonnull
//     @Override
//     public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
// 
//         return CuriosCapability.ITEM.orEmpty(cap, capability);
//     }
// }
// 
// Path: src/main/java/com/latenighters/runicarcana/common/setup/ModSetup.java
//     public class ModSetup {
// 
//     public static final ItemGroup ITEM_GROUP = new ItemGroup(RunicArcana.MODID) {
//         @Override
//         public ItemStack createIcon() {
//             return new ItemStack(Registration.CHALK.get());
//         }
//     };
// }
// 
// Path: src/main/java/com/latenighters/runicarcana/util/Util.java
// public class Util {
// 
//     public static ITextComponent loreStyle(ITextComponent textComponent){
//         return textComponent.applyTextStyle(TextFormatting.DARK_PURPLE).applyTextStyle(TextFormatting.ITALIC);
//     }
// 
//     public static ITextComponent loreStyle(String key, Object...args){
//         return loreStyle(new TranslationTextComponent(key, args));
//     }
// 
//     public static ITextComponent tooltipStyle(ITextComponent textComponent){
//         return textComponent.applyTextStyle(TextFormatting.GRAY);
//     }
// 
//     public static ITextComponent tooltipStyle(String key, Object... args){
//         return tooltipStyle(new TranslationTextComponent(key, args));
//     }
// 
//     public static void setPositionAndRotationAndUpdate(Entity entity, Double x, Double y, Double z, Float yaw, Float pitch) {
//         entity.setPositionAndUpdate(x, y, z);
//         entity.setPositionAndRotation(x, y, z, yaw, pitch);
//     }
// 
//     public static void setPositionAndRotationAndUpdate(Entity entity, Double x, Double y, Double z){
//         setPositionAndRotationAndUpdate(entity, x, y, z, entity.rotationYaw, entity.rotationPitch);
//     }
// 
//     public static boolean checkHeadspace(World world, BlockPos pos){
//         return world.isAirBlock(pos) && world.isAirBlock(pos.up());
//     }
// 
//     public static void spawnParticleGroup(World world, BasicParticleType type, LivingEntity entity) {
//         final Random rand = new Random();
//         if (world.isRemote) {
//             for (int i = 0; i < 30; ++i) {
//                 double d0 = rand.nextGaussian() * 0.02D;
//                 double d1 = rand.nextGaussian() * 0.02D;
//                 double d2 = rand.nextGaussian() * 0.02D;
//                 world.addParticle(
//                         type,
//                         entity.getPosX() + (double) (rand.nextFloat() * entity.getWidth() * 2.0F) - (double) entity.getWidth() - d0 * 10.0D,
//                         entity.getPosY() + (double) (rand.nextFloat() * entity.getHeight()) - d1 * 10.0D,
//                         entity.getPosZ() + (double) (rand.nextFloat() * entity.getWidth() * 2.0F) - (double) entity.getWidth() - d2 * 10.0D, d0, d1, d2
//                 );
//             }
// 
//         }
//     }
// 
// }


import com.latenighters.runicarcana.capabilities.BasicCurioProvider;
import com.latenighters.runicarcana.common.setup.ModSetup;
import com.latenighters.runicarcana.util.Util;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.MobEntity;
import net.minecraft.entity.boss.dragon.EnderDragonEntity;
import net.minecraft.entity.monster.IMob;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import top.theillusivec4.curios.api.capability.ICurio;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List;
            public void onCurioTick(String identifier, int index, LivingEntity livingEntity) {

                if (livingEntity.ticksExisted % 5 == 0) {
                    List<Entity> toKill = livingEntity.world.getEntitiesWithinAABB(LivingEntity.class, new AxisAlignedBB(
                            livingEntity.getPosX()+range,livingEntity.getPosY()+range, livingEntity.getPosZ()+range,
                            livingEntity.getPosX()-range,livingEntity.getPosY()-range, livingEntity.getPosZ()-range));

                    for (Entity e:toKill) {
                        if (e instanceof IMob && !(e instanceof EnderDragonEntity)){
                            e.setFire(1);
                            ((MobEntity)e).setHealth(0);
                            ((MobEntity)e).spawnExplosionParticle();
                        }
                    }
                }
            }

            @Override
            public void playEquipSound(LivingEntity livingEntity) {
                livingEntity.world
                        .playSound(null, livingEntity.getPosition(), SoundEvents.ITEM_ARMOR_EQUIP_GOLD,
                                SoundCategory.NEUTRAL, 1.0f, 1.0f);
            }

            @Override
            @Nonnull
            public DropRule getDropRule(LivingEntity livingEntity) {
                return DropRule.ALWAYS_KEEP;
            }

// Path: src/main/java/com/latenighters/runicarcana/capabilities/BasicCurioProvider.java
// public class BasicCurioProvider implements ICapabilityProvider {
// 
//     final LazyOptional<ICurio> capability;
// 
//     public BasicCurioProvider(ICurio curio) {
// 
//         this.capability = LazyOptional.of(() -> curio);
//     }
// 
//     @SuppressWarnings("ConstantConditions")
//     @Nonnull
//     @Override
//     public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
// 
//         return CuriosCapability.ITEM.orEmpty(cap, capability);
//     }
// }
// 
// Path: src/main/java/com/latenighters/runicarcana/common/setup/ModSetup.java
//     public class ModSetup {
// 
//     public static final ItemGroup ITEM_GROUP = new ItemGroup(RunicArcana.MODID) {
//         @Override
//         public ItemStack createIcon() {
//             return new ItemStack(Registration.CHALK.get());
//         }
//     };
// }
// 
// Path: src/main/java/com/latenighters/runicarcana/util/Util.java
// public class Util {
// 
//     public static ITextComponent loreStyle(ITextComponent textComponent){
//         return textComponent.applyTextStyle(TextFormatting.DARK_PURPLE).applyTextStyle(TextFormatting.ITALIC);
//     }
// 
//     public static ITextComponent loreStyle(String key, Object...args){
//         return loreStyle(new TranslationTextComponent(key, args));
//     }
// 
//     public static ITextComponent tooltipStyle(ITextComponent textComponent){
//         return textComponent.applyTextStyle(TextFormatting.GRAY);
//     }
// 
//     public static ITextComponent tooltipStyle(String key, Object... args){
//         return tooltipStyle(new TranslationTextComponent(key, args));
//     }
// 
//     public static void setPositionAndRotationAndUpdate(Entity entity, Double x, Double y, Double z, Float yaw, Float pitch) {
//         entity.setPositionAndUpdate(x, y, z);
//         entity.setPositionAndRotation(x, y, z, yaw, pitch);
//     }
// 
//     public static void setPositionAndRotationAndUpdate(Entity entity, Double x, Double y, Double z){
//         setPositionAndRotationAndUpdate(entity, x, y, z, entity.rotationYaw, entity.rotationPitch);
//     }
// 
//     public static boolean checkHeadspace(World world, BlockPos pos){
//         return world.isAirBlock(pos) && world.isAirBlock(pos.up());
//     }
// 
//     public static void spawnParticleGroup(World world, BasicParticleType type, LivingEntity entity) {
//         final Random rand = new Random();
//         if (world.isRemote) {
//             for (int i = 0; i < 30; ++i) {
//                 double d0 = rand.nextGaussian() * 0.02D;
//                 double d1 = rand.nextGaussian() * 0.02D;
//                 double d2 = rand.nextGaussian() * 0.02D;
//                 world.addParticle(
//                         type,
//                         entity.getPosX() + (double) (rand.nextFloat() * entity.getWidth() * 2.0F) - (double) entity.getWidth() - d0 * 10.0D,
//                         entity.getPosY() + (double) (rand.nextFloat() * entity.getHeight()) - d1 * 10.0D,
//                         entity.getPosZ() + (double) (rand.nextFloat() * entity.getWidth() * 2.0F) - (double) entity.getWidth() - d2 * 10.0D, d0, d1, d2
//                 );
//             }
// 
//         }
//     }
// 
// }


// Path: src/main/java/com/latenighters/runicarcana/common/items/trinkets/EliminationRingItem.java
import com.latenighters.runicarcana.capabilities.BasicCurioProvider;
import com.latenighters.runicarcana.common.setup.ModSetup;
import com.latenighters.runicarcana.util.Util;
import net.minecraft.client.util.ITooltipFlag;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.MobEntity;
import net.minecraft.entity.boss.dragon.EnderDragonEntity;
import net.minecraft.entity.monster.IMob;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.world.World;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import top.theillusivec4.curios.api.capability.ICurio;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List;

            public void onCurioTick(String identifier, int index, LivingEntity livingEntity) {

                if (livingEntity.ticksExisted % 5 == 0) {
                    List<Entity> toKill = livingEntity.world.getEntitiesWithinAABB(LivingEntity.class, new AxisAlignedBB(
                            livingEntity.getPosX()+range,livingEntity.getPosY()+range, livingEntity.getPosZ()+range,
                            livingEntity.getPosX()-range,livingEntity.getPosY()-range, livingEntity.getPosZ()-range));

                    for (Entity e:toKill) {
                        if (e instanceof IMob && !(e instanceof EnderDragonEntity)){
                            e.setFire(1);
                            ((MobEntity)e).setHealth(0);
                            ((MobEntity)e).spawnExplosionParticle();
                        }
                    }
                }
            }

            @Override
            public void playEquipSound(LivingEntity livingEntity) {
                livingEntity.world
                        .playSound(null, livingEntity.getPosition(), SoundEvents.ITEM_ARMOR_EQUIP_GOLD,
                                SoundCategory.NEUTRAL, 1.0f, 1.0f);
            }

            @Override
            @Nonnull
            public DropRule getDropRule(LivingEntity livingEntity) {
                return DropRule.ALWAYS_KEEP;
            }

            @Override