From f2ed45b524c4f6c7ac691f7790ffc7cd5b0a325e Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Tue, 16 Jul 2024 01:00:59 +0800 Subject: [PATCH] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mc/plugin/script/HamsterScriptPlugin.java | 32 ++++++++++--------- src/main/resources/config.yml | 1 + 2 files changed, 18 insertions(+), 15 deletions(-) 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 85e9a0a..451272a 100644 --- a/src/main/java/cn/hamster3/mc/plugin/script/HamsterScriptPlugin.java +++ b/src/main/java/cn/hamster3/mc/plugin/script/HamsterScriptPlugin.java @@ -19,13 +19,15 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.*; +import java.util.logging.Level; +import java.util.logging.Logger; import java.util.stream.Collectors; @SuppressWarnings("CallToPrintStackTrace") public class HamsterScriptPlugin extends JavaPlugin { private static File codeFolder; @Getter - private static ScriptEngine engine; + private static ScriptEngine scriptEngine; @Getter private static Invocable invocable; @@ -42,9 +44,10 @@ public class HamsterScriptPlugin extends JavaPlugin { reloadConfig(); FileConfiguration config = getConfig(); enableEvalCommand = config.getBoolean("enable-eval-command", false); - engine = new ScriptEngineManager(getClassLoader()).getEngineByName("JavaScript"); - invocable = (Invocable) engine; + scriptEngine = new ScriptEngineManager(getClassLoader()).getEngineByName("JavaScript"); + invocable = (Invocable) scriptEngine; + Logger logger = getLogger(); importClass = new HashMap<>(); ConfigurationSection importConfig = config.getConfigurationSection("import"); if (importConfig != null) { @@ -53,14 +56,13 @@ public class HamsterScriptPlugin extends JavaPlugin { importClass.put(simpleName, className); try { Class clazz = Class.forName(className); - engine.put(simpleName, clazz); - engine.eval(String.format("%s = %s.static;", simpleName, simpleName)); - getLogger().info("已导入 " + className); + scriptEngine.put(simpleName, clazz); + scriptEngine.eval(String.format("%s = %s.static;", simpleName, simpleName)); + logger.info("已导入 " + className); } catch (ClassNotFoundException e) { - getLogger().warning("导入 " + className + " 失败:未找到这个类"); + logger.log(Level.WARNING, "导入 " + className + " 失败:未找到这个类", e); } catch (Exception e) { - getLogger().warning("导入 " + className + " 失败"); - e.printStackTrace(); + logger.log(Level.WARNING, "导入 " + className + " 失败", e); } } } @@ -114,14 +116,14 @@ public class HamsterScriptPlugin extends JavaPlugin { } long start = System.currentTimeMillis(); try { - Bindings bindings = engine.createBindings(); + Bindings bindings = scriptEngine.createBindings(); for (String simpleName : importClass.keySet()) { - bindings.put(simpleName, engine.get(simpleName)); + bindings.put(simpleName, scriptEngine.get(simpleName)); } String[] scriptArgs = Arrays.copyOfRange(args, 2, args.length); bindings.put("sender", sender); bindings.put("args", scriptArgs); - Object eval = engine.eval(code, bindings); + Object eval = scriptEngine.eval(code, bindings); long time = System.currentTimeMillis() - start; sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒"); sender.sendMessage("§a返回值: §f" + eval); @@ -149,12 +151,12 @@ public class HamsterScriptPlugin extends JavaPlugin { String code = builder.toString(); long start = System.currentTimeMillis(); try { - Bindings bindings = engine.createBindings(); + Bindings bindings = scriptEngine.createBindings(); for (String simpleName : importClass.keySet()) { - bindings.put(simpleName, engine.get(simpleName)); + bindings.put(simpleName, scriptEngine.get(simpleName)); } bindings.put("sender", sender); - Object eval = engine.eval(code, bindings); + Object eval = scriptEngine.eval(code, bindings); long time = System.currentTimeMillis() - start; sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒"); sender.sendMessage("§a返回值: §f" + eval); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 5f024af..9004113 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -9,6 +9,7 @@ import: UUID: java.util.UUID Base64: java.util.Base64 ArrayList: java.util.ArrayList + HashMap: java.util.HashMap Bukkit: org.bukkit.Bukkit Material: org.bukkit.Material