Skip to content

Commit 6b4808f

Browse files
committed
Update expansion APIs.
1 parent 987e4f9 commit 6b4808f

File tree

8 files changed

+24
-23
lines changed

8 files changed

+24
-23
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins {
88
}
99

1010
group = "me.scoretwo"
11-
version = "1.0.1-SNAPSHOT"
11+
version = "1.0.2-SNAPSHOT"
1212
description = "FastScript is a Spigot plugin, which can run JavaScript-based scripts more efficiently."
1313

1414
defaultTasks = mutableListOf("ShadowJar", "publishToMavenLocal")

common/build.gradle.kts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@ dependencies {
1212
compileOnly("org.slf4j:slf4j-log4j12:1.7.30")
1313
compileOnly("net.md-5:bungeecord-chat:1.16-R0.5-SNAPSHOT")
1414

15-
implementation("org.jetbrains.kotlin:kotlin-script-util:${rootProject.extra.get("kotlinVersion")}")
16-
implementation("org.jetbrains.kotlin:kotlin-compiler:${rootProject.extra.get("kotlinVersion")}")
17-
18-
implementation("commons-lang:commons-lang:2.6")
19-
implementation("commons-io:commons-io:2.7")
15+
compileOnly("commons-lang:commons-lang:2.6")
16+
compileOnly("commons-io:commons-io:2.7")
17+
compileOnly("me.scoretwo:commons-bukkit-configuration:${rootProject.extra.get("commonsVersion")}")
18+
compileOnly("org.jetbrains.kotlin:kotlin-script-util:${rootProject.extra.get("kotlinVersion")}")
19+
compileOnly("org.jetbrains.kotlin:kotlin-compiler:${rootProject.extra.get("kotlinVersion")}")
2020
implementation("me.scoretwo:commons-syntaxes:${rootProject.extra.get("commonsVersion")}")
2121
implementation("me.scoretwo:commons-server:${rootProject.extra.get("commonsVersion")}")
22-
implementation("me.scoretwo:commons-bukkit-configuration:${rootProject.extra.get("commonsVersion")}")
2322
}
2423

2524
tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
@@ -28,11 +27,12 @@ tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
2827
exclude(dependency("org.jetbrains.kotlin:kotlin-stdlib-common"))
2928

3029
exclude(dependency("commons-io:commons-io:2.7"))
31-
include(dependency("commons-lang:commons-lang:2.6"))
30+
exclude(dependency("commons-lang:commons-lang:2.6"))
31+
32+
exclude(dependency("me.scoretwo:commons-bukkit-configuration:${rootProject.extra.get("commonsVersion")}"))
3233

3334
include(dependency("me.scoretwo:commons-syntaxes:${rootProject.extra.get("commonsVersion")}"))
3435
include(dependency("me.scoretwo:commons-server:${rootProject.extra.get("commonsVersion")}"))
35-
include(dependency("me.scoretwo:commons-bukkit-configuration:${rootProject.extra.get("commonsVersion")}"))
3636
}
3737
relocate("org.apache","me.scoretwo.utils.libs.org.apache")
3838

common/src/main/kotlin/me/scoretwo/fastscript/api/expansion/FastScriptExpansion.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ abstract class FastScriptExpansion {
1313

1414
abstract fun reload(): FastScriptExpansion
1515

16-
abstract fun eval(text: String, sender: GlobalSender, vararg args: String): Any?
17-
abstract fun eval(script: Script, sender: GlobalSender, vararg args: String): Any?
18-
abstract fun execute(script: Script, sender: GlobalSender, main: String = script.option.main, args: Array<Any?> = arrayOf()): Any?
19-
abstract fun execute(text: String, sender: GlobalSender, main: String = "main", args: Array<Any?> = arrayOf()): Any?
16+
abstract fun eval(text: String, sender: GlobalSender, args: Array<Any?> = arrayOf(), otherBindings: MutableMap<String, Any?> = mutableMapOf()): Any?
17+
abstract fun eval(script: Script, sender: GlobalSender, args: Array<Any?> = arrayOf(), otherBindings: MutableMap<String, Any?> = mutableMapOf()): Any?
18+
abstract fun execute(script: Script, sender: GlobalSender, main: String = script.option.main, args: Array<Any?> = arrayOf(), otherBindings: MutableMap<String, Any?> = mutableMapOf()): Any?
19+
abstract fun execute(text: String, sender: GlobalSender, main: String = "main", args: Array<Any?> = arrayOf(), otherBindings: MutableMap<String, Any?> = mutableMapOf()): Any?
2020

2121
// abstract fun eval(script: Script, sender: GlobalSender): Any?
2222

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ abstract class Script(
3030
eval(FastScript.instance.expansionManager.getExpansionBySign(sign), sender, *args)
3131

3232
fun eval(expansion: FastScriptExpansion?, sender: GlobalSender, vararg args: String): Any? =
33-
expansion?.eval(this, sender, *args)
33+
expansion?.eval(this, sender, arrayOf(*args))
3434

3535
open fun execute(sign: String, sender: GlobalSender, main: String = option.main, args: Array<Any?> = arrayOf()): Any? =
3636
execute(FastScript.instance.expansionManager.getExpansionBySign(sign), sender, main, args)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class TempScript(texts : MutableMap<String, String> = mutableMapOf()): Script(Te
1616
for (expansion in FastScript.instance.expansionManager.expansions) {
1717
if (expansion.sign != sign)
1818
continue
19-
return expansion.eval(texts[sign] ?: "", sender, *args)
19+
return expansion.eval(texts[sign] ?: "", sender, arrayOf(*args))
2020
}
2121
return null
2222
}

common/src/main/kotlin/me/scoretwo/fastscript/command/commands/ExpansionCommand.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import net.md_5.bungee.api.chat.ClickEvent
1414
import net.md_5.bungee.api.chat.HoverEvent
1515
import net.md_5.bungee.api.chat.TextComponent
1616
import net.md_5.bungee.api.chat.hover.content.Text
17-
import org.apache.commons.lang.StringUtils
1817
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeFirstWord
1918

2019
/**

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

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ abstract class TypeEngineExpansion: FastScriptExpansion() {
3030
return this
3131
}
3232

33-
override fun eval(script: Script, sender: GlobalSender, vararg args: String): Any? {
33+
override fun eval(script: Script, sender: GlobalSender, args: Array<Any?>, otherBindings: MutableMap<String, Any?>): Any? {
3434
val newEngine = engine.factory.scriptEngine
3535
if (!script.texts.keys.contains(sign))
3636
return null
@@ -48,6 +48,7 @@ abstract class TypeEngineExpansion: FastScriptExpansion() {
4848
newEngine.put("args", args)
4949
newEngine.put("utils", assist)
5050
newEngine.put("util", assist)
51+
otherBindings.forEach { newEngine.put(it.key, it.value) }
5152

5253
engineScripts[script] = newEngine
5354
return let {
@@ -67,7 +68,7 @@ abstract class TypeEngineExpansion: FastScriptExpansion() {
6768
}
6869
}
6970

70-
override fun eval(text: String, sender: GlobalSender, vararg args: String): Any? {
71+
override fun eval(text: String, sender: GlobalSender, args: Array<Any?>, otherBindings: MutableMap<String, Any?>): Any? {
7172
val newEngine = engine.factory.scriptEngine
7273
if (text.isBlank())
7374
return null
@@ -85,6 +86,7 @@ abstract class TypeEngineExpansion: FastScriptExpansion() {
8586
newEngine.put("args", args)
8687
newEngine.put("utils", assist)
8788
newEngine.put("util", assist)
89+
otherBindings.forEach { newEngine.put(it.key, it.value) }
8890
return let {
8991
try {
9092
newEngine.eval(text).also {
@@ -99,12 +101,12 @@ abstract class TypeEngineExpansion: FastScriptExpansion() {
99101
}
100102
}
101103

102-
override fun execute(script: Script, sender: GlobalSender, main: String, args: Array<Any?>): Any? {
104+
override fun execute(script: Script, sender: GlobalSender, main: String, args: Array<Any?>, otherBindings: MutableMap<String, Any?>): Any? {
103105
if (!script.texts.keys.contains(sign))
104106
return null
105107
return try {
106108
if (needEval)
107-
eval(script, sender)
109+
eval(script, sender, arrayOf(), otherBindings)
108110

109111
val invocable = engineScripts[script] as Invocable
110112

@@ -133,12 +135,12 @@ abstract class TypeEngineExpansion: FastScriptExpansion() {
133135
}
134136
}
135137

136-
override fun execute(text: String, sender: GlobalSender, main: String, args: Array<Any?>): Any? {
138+
override fun execute(text: String, sender: GlobalSender, main: String, args: Array<Any?>, otherBindings: MutableMap<String, Any?>): Any? {
137139
if (text.isBlank())
138140
return null
139141
return try {
140142
if (needEval)
141-
eval(text, sender)
143+
eval(text, sender, arrayOf(), otherBindings)
142144

143145
val invocable = engine as Invocable
144146

common/src/main/kotlin/me/scoretwo/fastscript/placeholder/Placeholders.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ object Placeholders {
2828
return when (args[2]) {
2929
"eval", "evaluate" -> {
3030
val args0 = if (args.size >= 4) args.slice(4 until args.size).toTypedArray() else arrayOf()
31-
expansion.eval(script, player, *args0).toString()
31+
expansion.eval(script, player, arrayOf(*args0)).toString()
3232
}
3333
"run", "execute" -> {
3434
val main = if (args.size >= 4) args[4] else script.option.main

0 commit comments

Comments
 (0)