Skip to content

Commit c71f311

Browse files
committed
feat(compat):为ArcartX-Glimmer添加Orryx集成支持
feat(compat):添加`OrryxGlimmerRegister`以注册函数和对象 feat(compat):添加`OrryxGlimmerFunctions`提供玩家状态查询与操作 feat(compat):添加`OrryxPlayerObject`作为玩家对象的Glimmer封装
1 parent 0cbd678 commit c71f311

File tree

3 files changed

+380
-0
lines changed

3 files changed

+380
-0
lines changed
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
package org.gitee.orryx.compat.arcartx.glimmer
2+
3+
import org.bukkit.Bukkit
4+
import org.gitee.orryx.api.Orryx
5+
import priv.seventeen.artist.arcartx.glimmer.annotations.GlimmerInvokeHandler
6+
import priv.seventeen.artist.arcartx.glimmer.annotations.GlimmerNamespace
7+
import priv.seventeen.artist.arcartx.glimmer.callable.InvocationData
8+
9+
@GlimmerNamespace("Orryx")
10+
object OrryxGlimmerFunctions {
11+
12+
@GlimmerInvokeHandler("getMana")
13+
@JvmStatic
14+
fun getMana(data: InvocationData): Double {
15+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0.0
16+
return Orryx.api().consumptionValueAPI.manaInstance.getMana(player).join()
17+
}
18+
19+
@GlimmerInvokeHandler("getMaxMana")
20+
@JvmStatic
21+
fun getMaxMana(data: InvocationData): Double {
22+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0.0
23+
return Orryx.api().consumptionValueAPI.manaInstance.getMaxMana(player).join()
24+
}
25+
26+
@GlimmerInvokeHandler("setMana")
27+
@JvmStatic
28+
fun setMana(data: InvocationData) {
29+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
30+
val mana = data.get(1).stringValue().toDouble()
31+
Orryx.api().consumptionValueAPI.manaInstance.setMana(player, mana)
32+
}
33+
34+
@GlimmerInvokeHandler("giveMana")
35+
@JvmStatic
36+
fun giveMana(data: InvocationData) {
37+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
38+
val mana = data.get(1).stringValue().toDouble()
39+
Orryx.api().consumptionValueAPI.manaInstance.giveMana(player, mana)
40+
}
41+
42+
@GlimmerInvokeHandler("takeMana")
43+
@JvmStatic
44+
fun takeMana(data: InvocationData) {
45+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
46+
val mana = data.get(1).stringValue().toDouble()
47+
Orryx.api().consumptionValueAPI.manaInstance.takeMana(player, mana)
48+
}
49+
50+
@GlimmerInvokeHandler("getSpirit")
51+
@JvmStatic
52+
fun getSpirit(data: InvocationData): Double {
53+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0.0
54+
return Orryx.api().consumptionValueAPI.spiritInstance.getSpirit(player)
55+
}
56+
57+
@GlimmerInvokeHandler("getMaxSpirit")
58+
@JvmStatic
59+
fun getMaxSpirit(data: InvocationData): Double {
60+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0.0
61+
return Orryx.api().consumptionValueAPI.spiritInstance.getMaxSpirit(player).join()
62+
}
63+
64+
@GlimmerInvokeHandler("setSpirit")
65+
@JvmStatic
66+
fun setSpirit(data: InvocationData) {
67+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
68+
val spirit = data.get(1).stringValue().toDouble()
69+
Orryx.api().consumptionValueAPI.spiritInstance.setSpirit(player, spirit)
70+
}
71+
72+
@GlimmerInvokeHandler("giveSpirit")
73+
@JvmStatic
74+
fun giveSpirit(data: InvocationData) {
75+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
76+
val spirit = data.get(1).stringValue().toDouble()
77+
Orryx.api().consumptionValueAPI.spiritInstance.giveSpirit(player, spirit)
78+
}
79+
80+
@GlimmerInvokeHandler("takeSpirit")
81+
@JvmStatic
82+
fun takeSpirit(data: InvocationData) {
83+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
84+
val spirit = data.get(1).stringValue().toDouble()
85+
Orryx.api().consumptionValueAPI.spiritInstance.takeSpirit(player, spirit)
86+
}
87+
88+
@GlimmerInvokeHandler("castSkill")
89+
@JvmStatic
90+
fun castSkill(data: InvocationData) {
91+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
92+
val skill = data.get(1).stringValue()
93+
val level = data.get(2).stringValue().toInt()
94+
Orryx.api().skillAPI.castSkill(player, skill, level)
95+
}
96+
97+
@GlimmerInvokeHandler("isSuperBody")
98+
@JvmStatic
99+
fun isSuperBody(data: InvocationData): Boolean {
100+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return false
101+
return Orryx.api().profileAPI.isSuperBody(player)
102+
}
103+
104+
@GlimmerInvokeHandler("isInvincible")
105+
@JvmStatic
106+
fun isInvincible(data: InvocationData): Boolean {
107+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return false
108+
return Orryx.api().profileAPI.isInvincible(player)
109+
}
110+
111+
@GlimmerInvokeHandler("isSilence")
112+
@JvmStatic
113+
fun isSilence(data: InvocationData): Boolean {
114+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return false
115+
return Orryx.api().profileAPI.isSilence(player)
116+
}
117+
118+
@GlimmerInvokeHandler("setSuperBody")
119+
@JvmStatic
120+
fun setSuperBody(data: InvocationData) {
121+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
122+
val timeout = data.get(1).stringValue().toLong()
123+
Orryx.api().profileAPI.setSuperBody(player, timeout)
124+
}
125+
126+
@GlimmerInvokeHandler("setInvincible")
127+
@JvmStatic
128+
fun setInvincible(data: InvocationData) {
129+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
130+
val timeout = data.get(1).stringValue().toLong()
131+
Orryx.api().profileAPI.setInvincible(player, timeout)
132+
}
133+
134+
@GlimmerInvokeHandler("setSilence")
135+
@JvmStatic
136+
fun setSilence(data: InvocationData) {
137+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return
138+
val timeout = data.get(1).stringValue().toLong()
139+
Orryx.api().profileAPI.setSilence(player, timeout)
140+
}
141+
142+
@GlimmerInvokeHandler("getSkillCooldown")
143+
@JvmStatic
144+
fun getSkillCooldown(data: InvocationData): Long {
145+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0L
146+
val skill = data.get(1).stringValue()
147+
return Orryx.api().timerAPI.skillTimer.getCountdown(
148+
taboolib.common.platform.function.adaptPlayer(player), skill
149+
)
150+
}
151+
152+
@GlimmerInvokeHandler("getPoint")
153+
@JvmStatic
154+
fun getPoint(data: InvocationData): Int {
155+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0
156+
return Orryx.api().profileAPI.modifyProfile(player) { it.point }.join() ?: 0
157+
}
158+
159+
@GlimmerInvokeHandler("getJob")
160+
@JvmStatic
161+
fun getJob(data: InvocationData): String {
162+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return ""
163+
return Orryx.api().profileAPI.modifyProfile(player) { it.job }.join() ?: ""
164+
}
165+
166+
@GlimmerInvokeHandler("getJobLevel")
167+
@JvmStatic
168+
fun getJobLevel(data: InvocationData): Int {
169+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0
170+
return Orryx.api().jobAPI.modifyJob(player) { it.level }.join() ?: 0
171+
}
172+
173+
@GlimmerInvokeHandler("getJobExperience")
174+
@JvmStatic
175+
fun getJobExperience(data: InvocationData): Int {
176+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0
177+
return Orryx.api().jobAPI.modifyJob(player) { it.experienceOfLevel }.join() ?: 0
178+
}
179+
180+
@GlimmerInvokeHandler("getJobMaxExperience")
181+
@JvmStatic
182+
fun getJobMaxExperience(data: InvocationData): Int {
183+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0
184+
return Orryx.api().jobAPI.modifyJob(player) { it.maxExperienceOfLevel }.join() ?: 0
185+
}
186+
187+
@GlimmerInvokeHandler("getSkillLevel")
188+
@JvmStatic
189+
fun getSkillLevel(data: InvocationData): Int {
190+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return 0
191+
val skill = data.get(1).stringValue()
192+
return Orryx.api().skillAPI.modifySkill(player, skill) { it.level }.join() ?: 0
193+
}
194+
195+
@GlimmerInvokeHandler("isSkillLocked")
196+
@JvmStatic
197+
fun isSkillLocked(data: InvocationData): Boolean {
198+
val player = Bukkit.getPlayerExact(data.get(0).stringValue()) ?: return true
199+
val skill = data.get(1).stringValue()
200+
return Orryx.api().skillAPI.modifySkill(player, skill) { it.locked }.join() ?: true
201+
}
202+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.gitee.orryx.compat.arcartx.glimmer
2+
3+
import org.gitee.orryx.utils.ArcartXPlugin
4+
import priv.seventeen.artist.arcartx.glimmer.callable.CallableManager
5+
import taboolib.common.LifeCycle
6+
import taboolib.common.platform.Awake
7+
import taboolib.common.platform.function.console
8+
import taboolib.module.lang.sendLang
9+
10+
object OrryxGlimmerRegister {
11+
12+
@Awake(LifeCycle.ENABLE)
13+
private fun register() {
14+
if (!ArcartXPlugin.isEnabled) return
15+
try {
16+
CallableManager.INSTANCE.registerStaticFunction(OrryxGlimmerFunctions::class.java)
17+
CallableManager.INSTANCE.registerGlimmerObject(OrryxPlayerObject::class.java)
18+
console().sendLang("hook-true", "ArcartX-Glimmer")
19+
} catch (e: Exception) {
20+
e.printStackTrace()
21+
}
22+
}
23+
}
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
package org.gitee.orryx.compat.arcartx.glimmer
2+
3+
import org.bukkit.Bukkit
4+
import org.bukkit.entity.Player
5+
import org.gitee.orryx.api.Orryx
6+
import priv.seventeen.artist.arcartx.glimmer.annotations.GlimmerInvokeHandler
7+
import priv.seventeen.artist.arcartx.glimmer.annotations.GlimmerObjectConstructor
8+
import priv.seventeen.artist.arcartx.glimmer.callable.InvocationData
9+
import priv.seventeen.artist.arcartx.glimmer.`object`.IGlimmerObject
10+
11+
class OrryxPlayerObject: IGlimmerObject {
12+
13+
private val player: Player?
14+
15+
@GlimmerObjectConstructor("OrryxPlayer")
16+
constructor(data: InvocationData) {
17+
player = if (data.size() >= 1) {
18+
Bukkit.getPlayerExact(data.get(0).stringValue())
19+
} else {
20+
null
21+
}
22+
}
23+
24+
override fun stringValue(): String {
25+
return player?.name ?: "null"
26+
}
27+
28+
override fun getTypeName(): String {
29+
return "OrryxPlayer"
30+
}
31+
32+
@GlimmerInvokeHandler("getMana")
33+
fun getMana(data: InvocationData): Double {
34+
val p = player ?: return 0.0
35+
return Orryx.api().consumptionValueAPI.manaInstance.getMana(p).join()
36+
}
37+
38+
@GlimmerInvokeHandler("getMaxMana")
39+
fun getMaxMana(data: InvocationData): Double {
40+
val p = player ?: return 0.0
41+
return Orryx.api().consumptionValueAPI.manaInstance.getMaxMana(p).join()
42+
}
43+
44+
@GlimmerInvokeHandler("getSpirit")
45+
fun getSpirit(data: InvocationData): Double {
46+
val p = player ?: return 0.0
47+
return Orryx.api().consumptionValueAPI.spiritInstance.getSpirit(p)
48+
}
49+
50+
@GlimmerInvokeHandler("getMaxSpirit")
51+
fun getMaxSpirit(data: InvocationData): Double {
52+
val p = player ?: return 0.0
53+
return Orryx.api().consumptionValueAPI.spiritInstance.getMaxSpirit(p).join()
54+
}
55+
56+
@GlimmerInvokeHandler("getJob")
57+
fun getJob(data: InvocationData): String {
58+
val p = player ?: return ""
59+
return Orryx.api().profileAPI.modifyProfile(p) { it.job }.join() ?: ""
60+
}
61+
62+
@GlimmerInvokeHandler("getJobLevel")
63+
fun getJobLevel(data: InvocationData): Int {
64+
val p = player ?: return 0
65+
return Orryx.api().jobAPI.modifyJob(p) { it.level }.join() ?: 0
66+
}
67+
68+
@GlimmerInvokeHandler("getJobMaxLevel")
69+
fun getJobMaxLevel(data: InvocationData): Int {
70+
val p = player ?: return 0
71+
return Orryx.api().jobAPI.modifyJob(p) { it.maxLevel }.join() ?: 0
72+
}
73+
74+
@GlimmerInvokeHandler("getExperience")
75+
fun getExperience(data: InvocationData): Int {
76+
val p = player ?: return 0
77+
return Orryx.api().jobAPI.modifyJob(p) { it.experienceOfLevel }.join() ?: 0
78+
}
79+
80+
@GlimmerInvokeHandler("getMaxExperience")
81+
fun getMaxExperience(data: InvocationData): Int {
82+
val p = player ?: return 0
83+
return Orryx.api().jobAPI.modifyJob(p) { it.maxExperienceOfLevel }.join() ?: 0
84+
}
85+
86+
@GlimmerInvokeHandler("getPoint")
87+
fun getPoint(data: InvocationData): Int {
88+
val p = player ?: return 0
89+
return Orryx.api().profileAPI.modifyProfile(p) { it.point }.join() ?: 0
90+
}
91+
92+
@GlimmerInvokeHandler("getSkillLevel")
93+
fun getSkillLevel(data: InvocationData): Int {
94+
val p = player ?: return 0
95+
val skill = data.get(0).stringValue()
96+
return Orryx.api().skillAPI.modifySkill(p, skill) { it.level }.join() ?: 0
97+
}
98+
99+
@GlimmerInvokeHandler("isSkillLocked")
100+
fun isSkillLocked(data: InvocationData): Boolean {
101+
val p = player ?: return true
102+
val skill = data.get(0).stringValue()
103+
return Orryx.api().skillAPI.modifySkill(p, skill) { it.locked }.join() ?: true
104+
}
105+
106+
@GlimmerInvokeHandler("isSuperBody")
107+
fun isSuperBody(data: InvocationData): Boolean {
108+
val p = player ?: return false
109+
return Orryx.api().profileAPI.isSuperBody(p)
110+
}
111+
112+
@GlimmerInvokeHandler("isInvincible")
113+
fun isInvincible(data: InvocationData): Boolean {
114+
val p = player ?: return false
115+
return Orryx.api().profileAPI.isInvincible(p)
116+
}
117+
118+
@GlimmerInvokeHandler("isSilence")
119+
fun isSilence(data: InvocationData): Boolean {
120+
val p = player ?: return false
121+
return Orryx.api().profileAPI.isSilence(p)
122+
}
123+
124+
@GlimmerInvokeHandler("getSkillCooldown")
125+
fun getSkillCooldown(data: InvocationData): Long {
126+
val p = player ?: return 0L
127+
val skill = data.get(0).stringValue()
128+
return Orryx.api().timerAPI.skillTimer.getCountdown(
129+
taboolib.common.platform.function.adaptPlayer(p), skill
130+
)
131+
}
132+
133+
@GlimmerInvokeHandler("castSkill")
134+
fun castSkill(data: InvocationData) {
135+
val p = player ?: return
136+
val skill = data.get(0).stringValue()
137+
val level = data.get(1).stringValue().toInt()
138+
Orryx.api().skillAPI.castSkill(p, skill, level)
139+
}
140+
141+
@GlimmerInvokeHandler("getGroup")
142+
fun getGroup(data: InvocationData): String {
143+
val p = player ?: return ""
144+
return Orryx.api().jobAPI.modifyJob(p) { it.group }.join() ?: ""
145+
}
146+
147+
@GlimmerInvokeHandler("getFlag")
148+
fun getFlag(data: InvocationData): String {
149+
val p = player ?: return ""
150+
val flagName = data.get(0).stringValue()
151+
return Orryx.api().profileAPI.modifyProfile(p) {
152+
it.getFlag(flagName)?.toString()
153+
}.join() ?: ""
154+
}
155+
}

0 commit comments

Comments
 (0)