@@ -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
0 commit comments