Skip to content

Commit e36287f

Browse files
committed
Wait for the upstream commons-utils to be updated in order to continue the project follow-up.
1 parent 912cf3a commit e36287f

File tree

7 files changed

+72
-7
lines changed

7 files changed

+72
-7
lines changed

common/src/main/kotlin/me/scoretwo/fastscript/FastScript.kt

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

3+
import me.scoretwo.fastscript.api.addon.AddonManager
34
import me.scoretwo.fastscript.api.format.FormatHeader
45
import me.scoretwo.fastscript.api.plugin.ScriptPlugin
56
import me.scoretwo.fastscript.api.script.AbstractScript
@@ -19,6 +20,7 @@ class FastScript(val plugin: ScriptPlugin) {
1920

2021
val commandNexus: ScriptCommandNexus
2122
val scriptManager: ScriptManager
23+
val addonManager: AddonManager
2224

2325
fun setPlaceholder(player: GlobalPlayer, string: String) = plugin.setPlaceholder(player, string)
2426

@@ -32,6 +34,7 @@ class FastScript(val plugin: ScriptPlugin) {
3234

3335
commandNexus = ScriptCommandNexus()
3436
scriptManager = ScriptManager()
37+
addonManager = AddonManager()
3538

3639
if (!plugin.dataFolder.exists()) {
3740
plugin.dataFolder.mkdirs()

common/src/main/kotlin/me/scoretwo/fastscript/addon/javascript/JavaScript.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import me.scoretwo.fastscript.api.script.FileScript
77
import me.scoretwo.fastscript.api.script.ScriptDescription
88
import me.scoretwo.fastscript.plugin
99
import me.scoretwo.fastscript.sendMessage
10+
import me.scoretwo.utils.sender.GlobalSender
1011
import me.scoretwo.utils.syntaxes.readString
1112
import java.io.File
1213
import javax.script.Invocable
@@ -38,17 +39,19 @@ class JavaScript(
3839
meta.forEach {
3940
engine.put(it.key, it.value)
4041
}
41-
engine.put("api", plugin.abstractScriptUtils)
42+
engine.put("server", plugin.server)
4243
}
43-
fun directEval(): Any? {
44+
fun directEval(sender: GlobalSender): Any? {
45+
engine.put("sender", sender)
46+
engine.put("originalsender", plugin.toOriginalSender(sender))
4447
return try {
4548
engine.eval(mergedString)
4649
} catch (e: ScriptException) {
4750
plugin.server.console.sendMessage(FormatHeader.ERROR,"脚本 §c${description.name} §7解析时出现错误, 请检查脚本格式.")
4851
}
4952
}
5053

51-
fun execute(function: String = options.main, args: Array<Any?> = arrayOf()): Any? {
54+
fun execute(sender: GlobalSender, function: String = options.main, args: Array<Any?> = arrayOf()): Any? {
5255
/*if (engine !is Invocable)*/
5356
return try {
5457
directEval()
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package me.scoretwo.fastscript.api.addon
2+
3+
import me.scoretwo.fastscript.api.script.AbstractScript
4+
5+
interface Addon {
6+
7+
val name: String
8+
val sign: String
9+
10+
fun processScript(script: AbstractScript)
11+
12+
fun executeScript(script: AbstractScript)
13+
14+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package me.scoretwo.fastscript.api.addon
2+
3+
class AddonManager {
4+
5+
val addons = mutableSetOf<Addon>()
6+
7+
init {
8+
9+
}
10+
11+
fun register(addon: Addon) {
12+
addons.add(addon)
13+
}
14+
15+
fun unregister(addon: Addon) {
16+
addons.remove(addon)
17+
}
18+
19+
fun unregister(name: String) = addons.forEach {
20+
if (it.name == name) {
21+
addons.remove(it)
22+
return@forEach
23+
}
24+
}
25+
26+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package me.scoretwo.fastscript.api.addon
2+
3+
import me.scoretwo.fastscript.scripts
4+
5+
abstract class AddonPlugin: Addon {
6+
7+
init {
8+
9+
}
10+
11+
abstract fun ionizing()
12+
13+
abstract fun disable()
14+
15+
16+
17+
}

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@ import me.scoretwo.utils.plugin.GlobalPlugin
55
import me.scoretwo.utils.plugin.PluginDescription
66
import me.scoretwo.utils.plugin.logging.GlobalLogger
77
import me.scoretwo.utils.sender.GlobalPlayer
8+
import me.scoretwo.utils.sender.GlobalSender
89
import me.scoretwo.utils.server.GlobalServer
910
import java.io.File
1011

1112
abstract class ScriptPlugin(plugin: GlobalPlugin): GlobalPlugin {
1213

1314
abstract fun setPlaceholder(player: GlobalPlayer, string: String): String
1415

15-
abstract val abstractScriptUtils: AbstractScriptUtils
16+
val scriptKits = mutableMapOf<String, Any?>()
17+
18+
abstract fun toOriginalSender(sender: GlobalSender): Any?
19+
abstract fun toOriginalPlayer(player: GlobalPlayer): Any?
20+
abstract fun toOriginalServer(): Any?
1621

1722
open fun load() {}
1823
open fun reload() {}

common/src/main/kotlin/me/scoretwo/fastscript/api/utils/AbstractScriptUtils.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ import me.scoretwo.utils.server.GlobalServer
66

77
abstract class AbstractScriptUtils {
88

9-
abstract fun toSender(sender: GlobalSender): Any?
10-
abstract fun toPlayer(player: GlobalPlayer): Any?
11-
abstract fun toServer(): Any?
129

1310

1411
}

0 commit comments

Comments
 (0)