let $MobEffectInstance = Java.loadClass("net.minecraft.world.effect.MobEffectInstance")
const effectDefaults = {
    amplifier: 0,
    ambient: true,
    visible: false
}

/**
 * 
 * @param {*} curiosItem 
 * @param {String[]} effectList 
 */
 function setEffectsOfCurios(curiosItem, effectList){
    effectList = effectList.map(effect => {
        let effectMap = {}
        effectMap.effect = effect.effect||effect
        Object.keys(effectDefaults).forEach(key => {
            effectMap[key] = effect[key]||effectDefaults[key]
        })
        console.log(effectMap)
        effectMap.hash = new $MobEffectInstance(effectMap.effect, -1, effectMap.amplifier, effectMap.ambient, effectMap.visible).hashCode()
        return effectMap        
    })
    global.curiosEffectMap.persist.push({curios: curiosItem, effectList: effectList})
}
console.log(global.curiosEffectMap)

/**
 * 
 * @param {*} curiosItem 
 * @param {String[]} effectList 
 */
 function setResistanceOfCurios(curiosItem, effectList){
    global.curiosEffectMap.resist.push({curios: curiosItem, effectList: effectList})
}

EquipmentEffectManager.modify(equipEffect => {
    equipEffect.addEffect(Ingredient.of("kubejs:gloves"), new $EffectInstance("minecraft:strength", -1, 4, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:gloves"), new $EffectInstance("minecraft:slowness", -1, 3, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:gloves"), new $EffectInstance("minecraft:glowing", -1, 3, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:htal"), new $EffectInstance("minecraft:regeneration", -1, 4, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:sring"), new $EffectInstance("minecraft:speed", -1, 4, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:hring"), new $EffectInstance("minecraft:haste", -1, 10, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:wing"), new $EffectInstance("attributeslib:flying", -1, 1, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:shield"), new $EffectInstance("minecraft:resistance", -1, 3, true, false))
    equipEffect.addEffect(Ingredient.of("kubejs:glasses"), new $EffectInstance("minecraft:night_vision", -1, 3, true, false))
    equipEffect.addResist(Ingredient.of("kubejs:glasses"), "minecraft:darkness")
})

// setEffectsOfCurios('kubejs:hring', [{effect: "minecraft:haste", amplifier: 9}])
// setEffectsOfCurios('kubejs:sring', [{effect: "minecraft:speed", amplifier: 4}])
// setEffectsOfCurios('kubejs:htal', [{effect: "minecraft:regeneration", amplifier: 4}])
// setEffectsOfCurios('kubejs:wing', [{effect: "attributeslib:flying", amplifier: 1}])
// setEffectsOfCurios('kubejs:shield', [{effect: "minecraft:resistance", amplifier: 4}])
// setEffectsOfCurios('kubejs:glasses', [{effect: "minecraft:night_vision", amplifier: 1}])
// setEffectsOfCurios('kubejs:gloves', [{effect: "minecraft:slowness", amplifier: 2}])
// setEffectsOfCurios('kubejs:gloves', [{effect: "minecraft:strength", amplifier: 4}])
// setEffectsOfCurios('kubejs:gloves', [{effect: "minecraft:glowing", amplifier: 0}])
