fun getAttrData(entity: LivingEntity) : AttributeData = AttributePlus.attributeManager.getAttributeData(entity.uniqueId, entity)
fun runEntityTask(millis: Long, id: String, entity: LivingEntity, block: () -> Unit)
fun getAttributeSource(itemStack: ItemStack, async: Boolean) = AttributeSource(itemStack, async)
fun getAttributeSource(list: List<String>, async: Boolean) = AttributeSource(list, async)
fun addSourceAttribute(attributeData: AttributeData, source: String, attr: AttributeSource, async: Boolean = false)
fun addSourceAttribute(attributeData: AttributeData, source: String, itemStack: ItemStack?, async: Boolean = false)
fun addSourceAttribute(attributeData: AttributeData, source: String, list: List<String>?, async: Boolean = false)
fun addSourceAttribute(attributeData: AttributeData, source: String, attribute: HashMap<String, Array<Number>>?, async: Boolean = false)
fun takeSourceAttribute(attributeData: AttributeData, source: String)
fun attackTo(entity: LivingEntity, attacker: LivingEntity, damage: Double)
fun runAttributeAttackEntity(attacker: LivingEntity, entity: LivingEntity, damage: Double, callBeforeEvent: Boolean, callCancel: Boolean)
fun createStaticAttributeSource(content: List<String>): AttributeSource
fun addStaticAttributeSource(data: AttributeData, source: String, content: List<String>)