diff --git a/README.md b/README.md index 0c36874..8dda744 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # hamster-script -为Minecraft服务器导入 [OpenJDK Nashorn](https://github.com/openjdk/nashorn) 引擎来执行 JavaScript 脚本 +为Minecraft服务器导入 [Nashorn](https://github.com/openjdk/nashorn) 引擎来执行 JavaScript 脚本 # 手动构建 diff --git a/build.gradle.kts b/build.gradle.kts index e4977dc..1053267 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,8 +6,8 @@ plugins { } group = "cn.hamster3.mc.plugin" -version = "1.0.5" -description = "为Minecraft服务器导入 OpenJDK Nashorn 引擎来执行 JavaScript 脚本" +version = "1.0.6" +description = "为Minecraft服务器导入 Nashorn 引擎来执行 JavaScript 脚本" repositories { maven { diff --git a/src/main/java/cn/hamster3/mc/plugin/script/HamsterScriptPlugin.java b/src/main/java/cn/hamster3/mc/plugin/script/HamsterScriptPlugin.java index cc4bd3b..efb5e11 100644 --- a/src/main/java/cn/hamster3/mc/plugin/script/HamsterScriptPlugin.java +++ b/src/main/java/cn/hamster3/mc/plugin/script/HamsterScriptPlugin.java @@ -150,7 +150,9 @@ public class HamsterScriptPlugin extends JavaPlugin { for (String simpleName : importClass.keySet()) { bindings.put(simpleName, engine.get(simpleName)); } + String[] scriptArgs = Arrays.copyOfRange(args, 2, args.length); bindings.put("sender", sender); + bindings.put("args", scriptArgs); Object eval = engine.eval(code, bindings); long time = System.currentTimeMillis() - start; sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒"); diff --git a/src/main/resources/code/example.js b/src/main/resources/code/example.js index 235f9a5..e2ee401 100644 --- a/src/main/resources/code/example.js +++ b/src/main/resources/code/example.js @@ -1,6 +1,15 @@ -function sayHi(param) { - param.sendMessage("Hi!"); +function sayHi(user, params) { + var message = ""; + if (params.length == 0) { + user.sendMessage("§aHi!"); + return; + } + for (i in params) { + message = message + " " + params[i]; + } + user.sendMessage("§eHi:" + message); } -// JavaScript 代码执行时,执行命令的对象(玩家或控制台)会作为 sender 变量传入 -sayHi(sender); +// 执行命令的对象会作为 sender(玩家或控制台) 变量传入 +// 命令后的参数会作为 args(数组) 变量传入 +sayHi(sender, args); diff --git a/src/main/resources/jenkins.yml b/src/main/resources/jenkins.yml deleted file mode 100644 index f368a8b..0000000 --- a/src/main/resources/jenkins.yml +++ /dev/null @@ -1,6 +0,0 @@ -BUILD_ID: ${BUILD_ID} -BUILD_NUMBER: ${BUILD_NUMBER} -BUILD_DISPLAY_NAME: ${BUILD_DISPLAY_NAME} -JOB_URL: ${JOB_URL} -BUILD_URL: ${BUILD_URL} -GIT_COMMIT: ${GIT_COMMIT} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f7dbe02..fcf2cad 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,12 +5,19 @@ api-version: 1.13 description: ${description} author: MiniDay +CHECK_TYPE: GITEA_RELEASES +GIT_BASE_URL: https://git.airgame.net +GIT_REPO: MiniDay/hamster-script +GIT_TOKEN: a44a69a4d1b8601bf6091403247759cd28764d5e +DOWNLOAD_URL: https://jenkins.airgame.net/job/opensource/job/hamster-script/ + Plugin: + # HamsterScript 需要访问其他插件的类路径 join-classpath: true commands: hamster-script: - aliases: [ scripts,script ] + aliases: [ hscript, scripts, script ] permissions: hamster.script.admin: