Skip to content

Commit 8b094c6

Browse files
authored
Merge pull request #4 from XiaoJie-150/master
跟进插件版本号
2 parents 980af15 + c7188ad commit 8b094c6

15 files changed

+277
-10
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
group=ink.ptms.um
2-
version=1.0.2
2+
version=1.0.3
33
taboolib_version=6.1.1-beta12

project/common/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import io.izzel.taboolib.gradle.UNIVERSAL
44
val taboolib_version: String by project
55

66
plugins {
7-
id("io.izzel.taboolib") version "2.0.0"
7+
id("io.izzel.taboolib") version "2.0.11"
88
}
99

1010
taboolib {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package ink.ptms.um.event
2+
3+
import ink.ptms.um.skill.SkillConfig
4+
import ink.ptms.um.skill.condition.BaseCondition
5+
import taboolib.platform.type.BukkitProxyEvent
6+
7+
/** project name universal-mythic
8+
* package ink.ptms.um.event
9+
* time 2024/7/4
10+
* author 劫
11+
*/
12+
class MobConditionLoadEvent(val name: String, val config: SkillConfig) : BukkitProxyEvent() {
13+
var skillCondition: BaseCondition? = null
14+
15+
fun register(condition: BaseCondition) {
16+
skillCondition = condition
17+
}
18+
19+
fun fire(): MobConditionLoadEvent {
20+
call()
21+
return this
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package ink.ptms.um.skill.condition
2+
3+
/** project name universal-mythic
4+
* package ink.ptms.um.skill.condition
5+
* time 2024/7/6
6+
* author 香香软软的枫溪宝贝
7+
*/
8+
interface BaseCondition {
9+
companion object {
10+
@JvmStatic
11+
fun isSubclass(subclass: BaseCondition): Boolean {
12+
return when (subclass) {
13+
is CasterCondition -> true
14+
is EntityCondition -> true
15+
is LocationCondition -> true
16+
is SkillMetadataCondition -> true
17+
is EntityComparisonCondition -> true
18+
is EntityLocationDistanceCondition -> true
19+
else -> false
20+
}
21+
}
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ink.ptms.um.skill.condition
2+
3+
import ink.ptms.um.skill.SkillCaster
4+
5+
/** project name universal-mythic
6+
* package ink.ptms.um.skill.condition
7+
* time 2024/7/6
8+
* author 劫
9+
*/
10+
interface CasterCondition:BaseCondition {
11+
fun check(skillCaster: SkillCaster):Boolean
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ink.ptms.um.skill.condition
2+
3+
import org.bukkit.entity.Entity
4+
5+
/** project name universal-mythic
6+
* package ink.ptms.um.skill.condition
7+
* time 2024/7/6
8+
* author 劫
9+
*/
10+
interface EntityComparisonCondition : BaseCondition {
11+
fun check(caster: Entity?, entity: Entity?): Boolean
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ink.ptms.um.skill.condition
2+
3+
import org.bukkit.entity.Entity
4+
5+
/** project name universal-mythic
6+
* package ink.ptms.um.skill.condition
7+
* time 2024/7/6
8+
* author 劫
9+
*/
10+
interface EntityCondition:BaseCondition {
11+
fun check(entity: Entity):Boolean
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package ink.ptms.um.skill.condition
2+
3+
import org.bukkit.Location
4+
import org.bukkit.entity.Entity
5+
6+
/** project name universal-mythic
7+
* package ink.ptms.um.skill.condition
8+
* time 2024/7/6
9+
* author 劫
10+
*/
11+
interface EntityLocationDistanceCondition : BaseCondition {
12+
fun check(entity: Entity?, location: Location): Boolean
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ink.ptms.um.skill.condition
2+
3+
import org.bukkit.Location
4+
5+
/** project name universal-mythic
6+
* package ink.ptms.um.skill.condition
7+
* time 2024/7/6
8+
* author 劫
9+
*/
10+
interface LocationCondition:BaseCondition {
11+
fun check(location: Location):Boolean
12+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ink.ptms.um.skill.condition
2+
3+
import ink.ptms.um.skill.SkillMeta
4+
5+
/** project name universal-mythic
6+
* package ink.ptms.um.skill.condition
7+
* time 2024/7/6
8+
* author 劫
9+
*/
10+
interface SkillMetadataCondition :BaseCondition{
11+
fun check(skill:SkillMeta):Boolean
12+
}

project/implementation-v4/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.izzel.taboolib.gradle.UNIVERSAL
55
val taboolib_version: String by project
66

77
plugins {
8-
id("io.izzel.taboolib") version "2.0.0"
8+
id("io.izzel.taboolib") version "2.0.11"
99
}
1010

1111
taboolib {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package ink.ptms.um.impl4
2+
3+
import ink.ptms.um.event.MobConditionLoadEvent
4+
import ink.ptms.um.skill.condition.*
5+
import io.lumine.xikage.mythicmobs.adapters.AbstractEntity
6+
import io.lumine.xikage.mythicmobs.adapters.AbstractLocation
7+
import io.lumine.xikage.mythicmobs.api.bukkit.events.MythicConditionLoadEvent
8+
import io.lumine.xikage.mythicmobs.io.MythicLineConfig
9+
import io.lumine.xikage.mythicmobs.skills.SkillCaster
10+
import io.lumine.xikage.mythicmobs.skills.SkillCondition
11+
import io.lumine.xikage.mythicmobs.skills.SkillMetadata
12+
import io.lumine.xikage.mythicmobs.skills.conditions.*
13+
import taboolib.common.platform.Ghost
14+
import taboolib.common.platform.event.SubscribeEvent
15+
16+
/** project name universal-mythic
17+
* package ink.ptms.um.impl4
18+
* time 2024/7/6
19+
* author 劫
20+
*/
21+
internal object MobListenerCondition {
22+
23+
@Ghost
24+
@SubscribeEvent
25+
fun onSkillConditionEvent(event: MythicConditionLoadEvent) {
26+
val e = MobConditionLoadEvent(event.config.key, event.config.toUniversal()).fire()
27+
val registerCondition = e.skillCondition ?: return
28+
if (!BaseCondition.isSubclass(registerCondition)) {
29+
error("Unsupported skill: $registerCondition")
30+
}
31+
event.register(ProxyCondition(registerCondition, event.config))
32+
}
33+
34+
class ProxyCondition(private val skillCondition: BaseCondition, config: MythicLineConfig) : SkillCondition(config.line), ICasterCondition,
35+
IEntityComparisonCondition, IEntityCondition, IEntityLocationComparisonCondition, ILocationCondition, ISkillMetaCondition {
36+
37+
override fun check(p0: SkillCaster?): Boolean {
38+
return if (skillCondition is CasterCondition) {
39+
p0?.toUniversal()?.let { skillCondition.check(it) } ?: false
40+
} else false
41+
}
42+
43+
override fun check(p0: AbstractEntity?, p1: AbstractEntity?): Boolean {
44+
return if (skillCondition is EntityComparisonCondition) {
45+
skillCondition.check(p0?.bukkitEntity, p1?.bukkitEntity)
46+
} else false
47+
}
48+
49+
override fun check(p0: AbstractEntity?): Boolean {
50+
return if (skillCondition is EntityCondition) {
51+
p0?.let { skillCondition.check(it.bukkitEntity) } ?: false
52+
} else false
53+
}
54+
55+
override fun check(p0: AbstractEntity?, p1: AbstractLocation?): Boolean {
56+
return if (skillCondition is EntityLocationDistanceCondition) {
57+
p1?.let { skillCondition.check(p0?.bukkitEntity, it.toBukkit()) } ?: false
58+
} else false
59+
}
60+
61+
override fun check(p0: AbstractLocation?): Boolean {
62+
return if (skillCondition is LocationCondition) {
63+
p0?.toBukkit()?.let { skillCondition.check(it) } ?: false
64+
} else false
65+
}
66+
67+
override fun check(p0: SkillMetadata?): Boolean {
68+
return if (skillCondition is SkillMetadataCondition) {
69+
p0?.toUniversal()?.let { skillCondition.check(it) } ?: false
70+
} else false
71+
}
72+
73+
74+
}
75+
}

project/implementation-v4/src/main/kotlin/ink/ptms/um/impl4/MobListenerSkill.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,12 @@ import io.lumine.xikage.mythicmobs.adapters.AbstractEntity
1010
import io.lumine.xikage.mythicmobs.adapters.AbstractLocation
1111
import io.lumine.xikage.mythicmobs.api.bukkit.events.MythicMechanicLoadEvent
1212
import io.lumine.xikage.mythicmobs.io.MythicLineConfig
13-
import io.lumine.xikage.mythicmobs.skills.INoTargetSkill
14-
import io.lumine.xikage.mythicmobs.skills.ITargetedEntitySkill
15-
import io.lumine.xikage.mythicmobs.skills.ITargetedLocationSkill
16-
import io.lumine.xikage.mythicmobs.skills.SkillMechanic
17-
import io.lumine.xikage.mythicmobs.skills.SkillMetadata
13+
import io.lumine.xikage.mythicmobs.skills.*
1814
import taboolib.common.platform.Ghost
1915
import taboolib.common.platform.event.SubscribeEvent
2016
import taboolib.common.platform.function.warning
2117

18+
2219
internal object MobListenerSkill {
2320

2421
@Ghost
@@ -59,4 +56,4 @@ internal object MobListenerSkill {
5956
return false
6057
}
6158
}
62-
}
59+
}

project/implementation-v5/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.izzel.taboolib.gradle.UNIVERSAL
55
val taboolib_version: String by project
66

77
plugins {
8-
id("io.izzel.taboolib") version "2.0.0"
8+
id("io.izzel.taboolib") version "2.0.11"
99
}
1010

1111
taboolib {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package ink.ptms.um.impl5
2+
3+
import ink.ptms.um.event.MobConditionLoadEvent
4+
import ink.ptms.um.skill.condition.*
5+
import io.lumine.mythic.api.adapters.AbstractEntity
6+
import io.lumine.mythic.api.adapters.AbstractLocation
7+
import io.lumine.mythic.api.config.MythicLineConfig
8+
import io.lumine.mythic.api.skills.SkillCaster
9+
import io.lumine.mythic.api.skills.SkillMetadata
10+
import io.lumine.mythic.api.skills.conditions.*
11+
import io.lumine.mythic.bukkit.events.MythicConditionLoadEvent
12+
import io.lumine.mythic.core.skills.SkillCondition
13+
import taboolib.common.platform.Ghost
14+
import taboolib.common.platform.event.SubscribeEvent
15+
16+
/** project name universal-mythic
17+
* package ink.ptms.um.impl5
18+
* time 2024/7/6
19+
* author 劫
20+
*/
21+
internal object MobListenerCondition {
22+
@Ghost
23+
@SubscribeEvent
24+
fun onMythicConditionLoad(event: MythicConditionLoadEvent) {
25+
val e = MobConditionLoadEvent(event.conditionName, event.config.toUniversal()).fire()
26+
val registerCondition = e.skillCondition ?: return
27+
// 如果注册的条件,不在这些类型中,那么就是无效的技能类型
28+
if (!BaseCondition.isSubclass(registerCondition)) {
29+
error("Unsupported skill: $registerCondition")
30+
}
31+
event.register(ProxyCondition(registerCondition, event.config))
32+
33+
}
34+
35+
class ProxyCondition(private val skillCondition: BaseCondition, config: MythicLineConfig) : SkillCondition(config.line),
36+
ICasterCondition, IEntityComparisonCondition, IEntityCondition, IEntityLocationComparisonCondition,
37+
ILocationCondition, ISkillMetaCondition {
38+
override fun check(p0: SkillCaster?): Boolean {
39+
return if (skillCondition is CasterCondition) {
40+
p0?.toUniversal()?.let { skillCondition.check(it) } ?: false
41+
} else false
42+
}
43+
44+
override fun check(p0: AbstractEntity?, p1: AbstractEntity?): Boolean {
45+
return if (skillCondition is EntityComparisonCondition) {
46+
skillCondition.check(p0?.bukkitEntity, p1?.bukkitEntity)
47+
} else false
48+
}
49+
50+
override fun check(p0: AbstractEntity?): Boolean {
51+
return if (skillCondition is EntityCondition) {
52+
p0?.let { skillCondition.check(it.bukkitEntity) } ?: false
53+
} else false
54+
}
55+
56+
override fun check(p0: AbstractEntity?, p1: AbstractLocation?): Boolean {
57+
return if (skillCondition is EntityLocationDistanceCondition) {
58+
p1?.let { skillCondition.check(p0?.bukkitEntity, it.toBukkit()) } ?: false
59+
} else false
60+
}
61+
62+
override fun check(p0: AbstractLocation?): Boolean {
63+
return if (skillCondition is LocationCondition) {
64+
p0?.toBukkit()?.let { skillCondition.check(it) } ?: false
65+
} else false
66+
}
67+
68+
override fun check(p0: SkillMetadata?): Boolean {
69+
return if (skillCondition is SkillMetadataCondition) {
70+
p0?.toUniversal()?.let { skillCondition.check(it) } ?: false
71+
} else false
72+
}
73+
74+
75+
}
76+
}

0 commit comments

Comments
 (0)