diff --git a/gradle.properties b/gradle.properties index 57b52ee..bc10229 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ group=ink.ptms.um -version=1.0.0-beta-31 +version=1.0.0-beta-32 taboolib_version=6.0.12-13 diff --git a/project/common/src/main/kotlin/ink/ptms/um/Skill.kt b/project/common/src/main/kotlin/ink/ptms/um/Skill.kt index aec2a61..21171d6 100644 --- a/project/common/src/main/kotlin/ink/ptms/um/Skill.kt +++ b/project/common/src/main/kotlin/ink/ptms/um/Skill.kt @@ -1,5 +1,6 @@ package ink.ptms.um +import ink.ptms.um.skill.SkillCaster import org.bukkit.Location import org.bukkit.entity.Entity @@ -37,6 +38,15 @@ interface Skill { targetFilter: (Entity) -> Boolean = { true }, ): Boolean + /** 获取技能是否正在冷却 */ + fun onCooldown(caster: Entity): Boolean + + /** 获取技能冷却 */ + fun getCooldown(caster: Entity): Float + + /** 设置技能冷却 */ + fun setCooldown(caster: Entity, time: Double) + /** 技能触发器 */ interface Trigger { @@ -50,4 +60,4 @@ interface Skill { /** 参数 */ val parameters: Map } -} \ No newline at end of file +} diff --git a/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Mythic4.kt b/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Mythic4.kt index 028b493..29d56a8 100644 --- a/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Mythic4.kt +++ b/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Mythic4.kt @@ -41,9 +41,7 @@ internal class Mythic4 : Mythic { override fun getItemId(itemStack: ItemStack): String? { /** 观看了低版本MythicItem 的写法 判断Display即可 判断ItemStack会触发大量创建ItemStack */ - return getItemList().firstOrNull { item -> - itemStack.getName().equals(item.displayName, true) - }?.internalName + return getItemList().firstOrNull { item -> itemStack.getName().equals(item.displayName, true) }?.internalName } override fun getItemStack(name: String): ItemStack? { diff --git a/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Skill4.kt b/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Skill4.kt index 680e837..1b2d8ec 100644 --- a/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Skill4.kt +++ b/project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/Skill4.kt @@ -47,6 +47,21 @@ internal class Skill4(val source: SkillMechanic) : Skill { ) } + /** 获取技能是否正在冷却 */ + override fun onCooldown(caster: Entity): Boolean { + return source.onCooldown(CasterImpl(BukkitAdapter.adapt(caster), emptyMap())) + } + + /** 获取技能冷却 */ + override fun getCooldown(caster: Entity): Float { + return source.getCooldown(CasterImpl(BukkitAdapter.adapt(caster), emptyMap())) + } + + /** 设置技能冷却 */ + override fun setCooldown(caster: Entity, time: Double) { + return source.setCooldown(CasterImpl(BukkitAdapter.adapt(caster), emptyMap()), time.toFloat()) + } + class Trigger(obj: Any) : Skill.Trigger { val source = obj as SkillTrigger @@ -84,4 +99,4 @@ internal class Skill4(val source: SkillMechanic) : Skill { return super.setEntityTargets(targets.filter { targetFilter.apply(it.bukkitEntity) }.toHashSet()) } } -} \ No newline at end of file +} diff --git a/project/implementation-v5/src/main/kotlin/ink/ptms/um/impl5/Skill5.kt b/project/implementation-v5/src/main/kotlin/ink/ptms/um/impl5/Skill5.kt index 6769691..0396244 100644 --- a/project/implementation-v5/src/main/kotlin/ink/ptms/um/impl5/Skill5.kt +++ b/project/implementation-v5/src/main/kotlin/ink/ptms/um/impl5/Skill5.kt @@ -48,6 +48,21 @@ internal class Skill5(obj: Any) : Skill { ) } + /** 获取技能是否正在冷却 */ + override fun onCooldown(caster: Entity): Boolean { + return source.onCooldown(CasterImpl(BukkitAdapter.adapt(caster), emptyMap())) + } + + /** 获取技能冷却 */ + override fun getCooldown(caster: Entity): Float { + return source.getCooldown(CasterImpl(BukkitAdapter.adapt(caster), emptyMap())) + } + + /** 设置技能冷却 */ + override fun setCooldown(caster: Entity, time: Double) { + return source.setCooldown(CasterImpl(BukkitAdapter.adapt(caster), emptyMap()), time) + } + class Trigger(obj: Any) : Skill.Trigger { val source = obj as SkillTrigger @@ -56,4 +71,4 @@ internal class Skill5(obj: Any) : Skill { } class CasterImpl(entity: AbstractEntity?, override val parameters: Map) : GenericCaster(entity), Skill.ActiveCaster -} \ No newline at end of file +}