feat: 允许 run 命令传参

This commit is contained in:
2024-03-19 15:24:22 +08:00
parent 22c9c25e6a
commit c8f663cad6
6 changed files with 26 additions and 14 deletions

View File

@@ -1,6 +1,6 @@
# hamster-script # hamster-script
为Minecraft服务器导入 [OpenJDK Nashorn](https://github.com/openjdk/nashorn) 引擎来执行 JavaScript 脚本 为Minecraft服务器导入 [Nashorn](https://github.com/openjdk/nashorn) 引擎来执行 JavaScript 脚本
# 手动构建 # 手动构建

View File

@@ -6,8 +6,8 @@ plugins {
} }
group = "cn.hamster3.mc.plugin" group = "cn.hamster3.mc.plugin"
version = "1.0.5" version = "1.0.6"
description = "为Minecraft服务器导入 OpenJDK Nashorn 引擎来执行 JavaScript 脚本" description = "为Minecraft服务器导入 Nashorn 引擎来执行 JavaScript 脚本"
repositories { repositories {
maven { maven {

View File

@@ -150,7 +150,9 @@ public class HamsterScriptPlugin extends JavaPlugin {
for (String simpleName : importClass.keySet()) { for (String simpleName : importClass.keySet()) {
bindings.put(simpleName, engine.get(simpleName)); bindings.put(simpleName, engine.get(simpleName));
} }
String[] scriptArgs = Arrays.copyOfRange(args, 2, args.length);
bindings.put("sender", sender); bindings.put("sender", sender);
bindings.put("args", scriptArgs);
Object eval = engine.eval(code, bindings); Object eval = engine.eval(code, bindings);
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;
sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒"); sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒");

View File

@@ -1,6 +1,15 @@
function sayHi(param) { function sayHi(user, params) {
param.sendMessage("Hi!"); var message = "";
if (params.length == 0) {
user.sendMessage("§aHi!");
return;
}
for (i in params) {
message = message + " " + params[i];
}
user.sendMessage("§eHi:" + message);
} }
// JavaScript 代码执行时,执行命令的对象(玩家或控制台)会作为 sender 变量传入 // 执行命令的对象会作为 sender(玩家或控制台) 变量传入
sayHi(sender); // 命令后的参数会作为 args数组 变量传入
sayHi(sender, args);

View File

@@ -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}

View File

@@ -5,12 +5,19 @@ api-version: 1.13
description: ${description} description: ${description}
author: MiniDay 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: Plugin:
# HamsterScript 需要访问其他插件的类路径
join-classpath: true join-classpath: true
commands: commands:
hamster-script: hamster-script:
aliases: [ scripts,script ] aliases: [ hscript, scripts, script ]
permissions: permissions:
hamster.script.admin: hamster.script.admin: