const $ModularItem = Java.loadClass("se.mickelus.tetra.items.modular.ModularItem") const $ItemEffect = Java.loadClass("se.mickelus.tetra.effect.ItemEffect") let TetraUtil = {} /** * * @param {Internal.ItemStack} itemStack * @returns {Internal.ModularItem} */ TetraUtil.getItem = function(itemStack) { let item = itemStack.item if (!item instanceof $ModularItem) return null return item } /** * * @param {Internal.ItemStack} item * @returns {Internal.Collection} */ TetraUtil.getItemEffects = function(item) { let itemClass = TetraUtil.getItem(item) return itemClass.getEffects(item) } /** * * @param {Internal.ItemStack} item * @param {string} effectKey * @returns {boolean} */ TetraUtil.itemHasEffect = function(item, effectKey) { let itemClass = TetraUtil.getItem(item) return itemClass.getEffects(item).contains($ItemEffect.get(effectKey)) } /** * * @param {string} key * @returns {Internal.ItemEffect} */ TetraUtil.getEffectFromKey = function(key) { return $ItemEffect.get(effect) } /** * * @param {Internal.ItemStack} item * @param {string} effect * @returns {number} */ TetraUtil.getEffectEfficiency = function(item, effect) { let itemClass = TetraUtil.getItem(item) return itemClass.getEffectEfficiency(item, $ItemEffect.get(effect)) } /** * * @param {Internal.ItemStack} item * @param {string} effect * @returns {number} */ TetraUtil.getEffectLevel = function(item, effect) { let itemClass = TetraUtil.getItem(item) return itemClass.getEffectLevel(item, $ItemEffect.get(effect)) }