Skip to content

Commit 3706ede

Browse files
committed
Added script apis.
1 parent 327d8aa commit 3706ede

File tree

9 files changed

+102
-0
lines changed

9 files changed

+102
-0
lines changed

common/src/main/kotlin/me/scoretwo/fastscript/api/plugin/ScriptPlugin.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ abstract class ScriptPlugin(val plugin: GlobalPlugin): GlobalPlugin {
1919

2020
abstract fun toOriginalPlugin(): Any?
2121
abstract fun toOriginalSender(sender: GlobalSender): Any?
22+
abstract fun toGlobalSender(any: Any?): GlobalSender
2223
abstract fun toOriginalPlayer(player: GlobalPlayer): Any?
24+
abstract fun toGlobalPlayer(any: Any?): GlobalPlayer
2325
abstract fun toOriginalServer(): Any?
2426

2527
abstract fun registerListener(any: Any?): Boolean

common/src/main/kotlin/me/scoretwo/fastscript/api/script/Script.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,14 @@ abstract class Script(
5050
fun execute(expansion: FastScriptExpansion?, sender: GlobalSender, main: String = option.main, args: Array<Any?> = arrayOf()): Any? =
5151
expansion?.execute(this, sender, main, args)
5252

53+
fun eval(script: String, sign: String, sender: GlobalSender, vararg args: String) = let {
54+
FastScript.instance.scriptManager.eval(FastScript.instance.scriptManager.getScript(script) ?: return@let null, sign, sender, *args)
55+
}
56+
57+
fun execute(script: String, sign: String, sender: GlobalSender, main: String = FastScript.instance.scriptManager.getScript(script)?.configOption?.main ?: "main", args: Array<Any?> = arrayOf()) = let {
58+
FastScript.instance.scriptManager.execute(FastScript.instance.scriptManager.getScript(script) ?: return@let null, sign, sender, main, args)
59+
}
60+
5361
fun registerListener(any: Any?) {
5462
if (!plugin.registerListener(any))
5563
plugin.server.console.sendMessage(

common/src/main/kotlin/me/scoretwo/fastscript/api/script/ScriptManager.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import me.scoretwo.fastscript.api.utils.process.ProcessResultType
1010
import me.scoretwo.fastscript.listeners.ScriptFileListener
1111
import me.scoretwo.utils.bukkit.configuration.yaml.ConfigurationSection
1212
import me.scoretwo.utils.bukkit.configuration.yaml.patchs.ignoreCase
13+
import me.scoretwo.utils.sender.GlobalPlayer
1314
import me.scoretwo.utils.sender.GlobalSender
1415
import me.scoretwo.utils.server.task.TaskType
1516
import org.apache.commons.io.monitor.FileAlterationListener
@@ -242,10 +243,23 @@ class ScriptManager {
242243
section.isString(section.ignoreCase("main"))
243244

244245

246+
245247
fun eval(script: CustomScript, sign: String, sender: GlobalSender, vararg args: String) =
246248
script.eval(sign, sender, *args).also { evaluateCount += 1; operationCount += 1 }
247249

248250
fun execute(script: CustomScript, sign: String, sender: GlobalSender, main: String = script.configOption.main, args: Array<Any?> = arrayOf()) =
249251
script.execute(sign, sender, main, args).also { executeCount += 1; operationCount += 1 }
250252

253+
254+
fun eval(script: String, sign: String, sender: GlobalSender, vararg args: String) = let {
255+
eval(getScript(script) ?: return@let null, sign, sender, *args)
256+
}
257+
258+
fun execute(script: String, sign: String, sender: GlobalSender, main: String = getScript(script)?.configOption?.main ?: "main", args: Array<Any?> = arrayOf()) = let {
259+
execute(getScript(script) ?: return@let null, sign, sender, main, args)
260+
}
261+
262+
fun setPlaceholder(player: GlobalPlayer, text: String) = plugin.setPlaceholder(player, text)
263+
264+
fun setPlaceholder(sender: Any, text: String) = plugin.setPlaceholder(plugin.toGlobalPlayer(sender), text)
251265
}

common/src/main/kotlin/me/scoretwo/fastscript/expansion/typeengine/TypeEngineExpansion.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ abstract class TypeEngineExpansion: FastScriptExpansion() {
3333
newEngine.put("plugin", plugin.toOriginalPlugin())
3434
newEngine.put("script", script)
3535
newEngine.put("server", plugin.toOriginalServer())
36+
newEngine.put("setPlaceholder", FastScript.instance.scriptManager::setPlaceholder)
3637
newEngine.put("globalServer", plugin.server)
3738
newEngine.put("scriptManager", FastScript.instance.scriptManager)
3839
newEngine.put("expansionManager", FastScript.instance.expansionManager)

version-control/FastScript-bukkit/src/main/kotlin/me/scoretwo/fastscript/bukkit/BukkitPlugin.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import org.bukkit.Sound
1919
import org.bukkit.entity.Player
2020
import org.bukkit.event.HandlerList
2121
import org.bukkit.event.Listener
22+
import org.omg.CORBA.portable.UnknownException
2223

2324
class BukkitPlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
2425

@@ -103,6 +104,20 @@ class BukkitPlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
103104

104105
override fun toOriginalServer() = Bukkit.getServer()
105106

107+
override fun toGlobalPlayer(any: Any?): GlobalPlayer {
108+
if (any !is Player) {
109+
throw Exception("$any not a player!")
110+
}
111+
return any.toGlobalPlayer()
112+
}
113+
114+
override fun toGlobalSender(any: Any?): GlobalSender {
115+
if (any !is Player) {
116+
throw Exception("$any not a player!")
117+
}
118+
return any.toGlobalPlayer()
119+
}
120+
106121
override fun registerListener(any: Any?): Boolean {
107122
if (any !is Listener) {
108123
return false

version-control/FastScript-bungee/src/main/kotlin/me/scoretwo/fastscript/bungee/BungeePlugin.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ import me.scoretwo.fastscript.api.utils.ExecType
66
import me.scoretwo.utils.bungee.command.registerBungeeCommands
77
import me.scoretwo.utils.bungee.command.toBungeePlayer
88
import me.scoretwo.utils.bungee.command.toBungeeSender
9+
import me.scoretwo.utils.bungee.command.toGlobalPlayer
910
import me.scoretwo.utils.bungee.plugin.toBungeePlugin
1011
import me.scoretwo.utils.plugin.GlobalPlugin
1112
import me.scoretwo.utils.sender.GlobalPlayer
1213
import me.scoretwo.utils.sender.GlobalSender
1314
import net.md_5.bungee.api.ProxyServer
15+
import net.md_5.bungee.api.connection.ProxiedPlayer
1416
import net.md_5.bungee.api.plugin.Listener
1517

1618
class BungeePlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
@@ -34,6 +36,19 @@ class BungeePlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
3436
override fun toOriginalPlayer(player: GlobalPlayer) = player.toBungeePlayer()
3537

3638
override fun toOriginalServer(): Any? = ProxyServer.getInstance()
39+
override fun toGlobalPlayer(any: Any?): GlobalPlayer {
40+
if (any !is ProxiedPlayer) {
41+
throw Exception("$any not a player!")
42+
}
43+
return any.toGlobalPlayer()
44+
}
45+
46+
override fun toGlobalSender(any: Any?): GlobalSender {
47+
if (any !is ProxiedPlayer) {
48+
throw Exception("$any not a player!")
49+
}
50+
return any.toGlobalPlayer()
51+
}
3752

3853
override fun registerListener(any: Any?): Boolean {
3954
if (any !is Listener) {

version-control/FastScript-nukkit/src/main/kotlin/me/scoretwo/fastscript/nukkit/NukkitPlugin.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package me.scoretwo.fastscript.nukkit
22

3+
import cn.nukkit.Player
34
import cn.nukkit.Server
45
import cn.nukkit.event.HandlerList
56
import cn.nukkit.event.Listener
67
import me.scoretwo.fastscript.FastScript
78
import me.scoretwo.fastscript.api.plugin.ScriptPlugin
9+
import me.scoretwo.utils.nukkit.command.toGlobalPlayer
810
import me.scoretwo.utils.nukkit.command.toNukkitSender
911
import me.scoretwo.utils.nukkit.plugin.toNukkitPlugin
1012
import me.scoretwo.utils.plugin.GlobalPlugin
@@ -39,6 +41,20 @@ class NukkitPlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
3941

4042
override fun toOriginalServer(): Any = Server.getInstance()
4143

44+
override fun toGlobalPlayer(any: Any?): GlobalPlayer {
45+
if (any !is Player) {
46+
throw Exception("$any not a player!")
47+
}
48+
return any.toGlobalPlayer()
49+
}
50+
51+
override fun toGlobalSender(any: Any?): GlobalSender {
52+
if (any !is Player) {
53+
throw Exception("$any not a player!")
54+
}
55+
return any.toGlobalPlayer()
56+
}
57+
4258
override fun registerListener(any: Any?): Boolean {
4359
if (any !is Listener) {
4460
return false

version-control/FastScript-sponge/src/main/kotlin/me/scoretwo/fastscript/sponge/SpongePlugin.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ import me.scoretwo.utils.plugin.GlobalPlugin
1111
import me.scoretwo.utils.sender.GlobalPlayer
1212
import me.scoretwo.utils.sender.GlobalSender
1313
import me.scoretwo.utils.sponge.command.registerSpongeCommands
14+
import me.scoretwo.utils.sponge.command.toGlobalPlayer
1415
import me.scoretwo.utils.sponge.command.toSpongePlayer
1516
import me.scoretwo.utils.sponge.command.toSpongeSender
1617
import me.scoretwo.utils.sponge.plugin.toSpongePlugin
1718
import org.spongepowered.api.Sponge
19+
import org.spongepowered.api.entity.living.player.Player
1820

1921
class SpongePlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
2022

@@ -40,6 +42,19 @@ class SpongePlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
4042
override fun toOriginalPlayer(player: GlobalPlayer) = player.toSpongePlayer()
4143

4244
override fun toOriginalServer(): Any? = Sponge.getServer()
45+
override fun toGlobalPlayer(any: Any?): GlobalPlayer {
46+
if (any !is Player) {
47+
throw Exception("$any not a player!")
48+
}
49+
return any.toGlobalPlayer()
50+
}
51+
52+
override fun toGlobalSender(any: Any?): GlobalSender {
53+
if (any !is Player) {
54+
throw Exception("$any not a player!")
55+
}
56+
return any.toGlobalPlayer()
57+
}
4358

4459
override fun registerListener(any: Any?): Boolean = try {
4560
Sponge.getEventManager().registerListeners(toSpongePlugin(), any ?: false)

version-control/FastScript-velocity/src/main/kotlin/me/scoretwo/fastscript/velocity/VelocityPlugin.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.scoretwo.fastscript.velocity
22

3+
import com.velocitypowered.api.proxy.Player
34
import me.scoretwo.fastscript.FastScript
45
import me.scoretwo.fastscript.api.plugin.ScriptPlugin
56
import me.scoretwo.fastscript.api.utils.ExecType
@@ -8,6 +9,7 @@ import me.scoretwo.utils.plugin.GlobalPlugin
89
import me.scoretwo.utils.sender.GlobalPlayer
910
import me.scoretwo.utils.sender.GlobalSender
1011
import me.scoretwo.utils.velocity.command.registerVelocityCommands
12+
import me.scoretwo.utils.velocity.command.toGlobalPlayer
1113
import me.scoretwo.utils.velocity.command.toVelocityPlayer
1214
import me.scoretwo.utils.velocity.command.toVelocitySender
1315
import me.scoretwo.utils.velocity.plugin.toVelocityPlugin
@@ -37,6 +39,20 @@ class VelocityPlugin(plugin: GlobalPlugin): ScriptPlugin(plugin) {
3739

3840
override fun toOriginalServer() = proxyServer
3941

42+
override fun toGlobalPlayer(any: Any?): GlobalPlayer {
43+
if (any !is Player) {
44+
throw Exception("$any not a player!")
45+
}
46+
return any.toGlobalPlayer()
47+
}
48+
49+
override fun toGlobalSender(any: Any?): GlobalSender {
50+
if (any !is Player) {
51+
throw Exception("$any not a player!")
52+
}
53+
return any.toGlobalPlayer()
54+
}
55+
4056
override fun registerListener(any: Any?): Boolean = try {
4157
proxyServer.eventManager.register(toVelocityPlugin(), any ?: false)
4258
true

0 commit comments

Comments
 (0)