style: 优化代码命名

This commit is contained in:
2024-07-16 01:00:59 +08:00
parent db812c13b5
commit f2ed45b524
2 changed files with 18 additions and 15 deletions

View File

@@ -19,13 +19,15 @@ import java.nio.charset.StandardCharsets;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
import java.util.*; import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@SuppressWarnings("CallToPrintStackTrace") @SuppressWarnings("CallToPrintStackTrace")
public class HamsterScriptPlugin extends JavaPlugin { public class HamsterScriptPlugin extends JavaPlugin {
private static File codeFolder; private static File codeFolder;
@Getter @Getter
private static ScriptEngine engine; private static ScriptEngine scriptEngine;
@Getter @Getter
private static Invocable invocable; private static Invocable invocable;
@@ -42,9 +44,10 @@ public class HamsterScriptPlugin extends JavaPlugin {
reloadConfig(); reloadConfig();
FileConfiguration config = getConfig(); FileConfiguration config = getConfig();
enableEvalCommand = config.getBoolean("enable-eval-command", false); enableEvalCommand = config.getBoolean("enable-eval-command", false);
engine = new ScriptEngineManager(getClassLoader()).getEngineByName("JavaScript"); scriptEngine = new ScriptEngineManager(getClassLoader()).getEngineByName("JavaScript");
invocable = (Invocable) engine; invocable = (Invocable) scriptEngine;
Logger logger = getLogger();
importClass = new HashMap<>(); importClass = new HashMap<>();
ConfigurationSection importConfig = config.getConfigurationSection("import"); ConfigurationSection importConfig = config.getConfigurationSection("import");
if (importConfig != null) { if (importConfig != null) {
@@ -53,14 +56,13 @@ public class HamsterScriptPlugin extends JavaPlugin {
importClass.put(simpleName, className); importClass.put(simpleName, className);
try { try {
Class<?> clazz = Class.forName(className); Class<?> clazz = Class.forName(className);
engine.put(simpleName, clazz); scriptEngine.put(simpleName, clazz);
engine.eval(String.format("%s = %s.static;", simpleName, simpleName)); scriptEngine.eval(String.format("%s = %s.static;", simpleName, simpleName));
getLogger().info("已导入 " + className); logger.info("已导入 " + className);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
getLogger().warning("导入 " + className + " 失败:未找到这个类"); logger.log(Level.WARNING, "导入 " + className + " 失败:未找到这个类", e);
} catch (Exception e) { } catch (Exception e) {
getLogger().warning("导入 " + className + " 失败"); logger.log(Level.WARNING, "导入 " + className + " 失败", e);
e.printStackTrace();
} }
} }
} }
@@ -114,14 +116,14 @@ public class HamsterScriptPlugin extends JavaPlugin {
} }
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
try { try {
Bindings bindings = engine.createBindings(); Bindings bindings = scriptEngine.createBindings();
for (String simpleName : importClass.keySet()) { 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); String[] scriptArgs = Arrays.copyOfRange(args, 2, args.length);
bindings.put("sender", sender); bindings.put("sender", sender);
bindings.put("args", scriptArgs); bindings.put("args", scriptArgs);
Object eval = engine.eval(code, bindings); Object eval = scriptEngine.eval(code, bindings);
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;
sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒"); sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒");
sender.sendMessage("§a返回值: §f" + eval); sender.sendMessage("§a返回值: §f" + eval);
@@ -149,12 +151,12 @@ public class HamsterScriptPlugin extends JavaPlugin {
String code = builder.toString(); String code = builder.toString();
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
try { try {
Bindings bindings = engine.createBindings(); Bindings bindings = scriptEngine.createBindings();
for (String simpleName : importClass.keySet()) { for (String simpleName : importClass.keySet()) {
bindings.put(simpleName, engine.get(simpleName)); bindings.put(simpleName, scriptEngine.get(simpleName));
} }
bindings.put("sender", sender); bindings.put("sender", sender);
Object eval = engine.eval(code, bindings); Object eval = scriptEngine.eval(code, bindings);
long time = System.currentTimeMillis() - start; long time = System.currentTimeMillis() - start;
sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒"); sender.sendMessage("§aJavaScript 代码执行完成, 耗时: " + time + " 毫秒");
sender.sendMessage("§a返回值: §f" + eval); sender.sendMessage("§a返回值: §f" + eval);

View File

@@ -9,6 +9,7 @@ import:
UUID: java.util.UUID UUID: java.util.UUID
Base64: java.util.Base64 Base64: java.util.Base64
ArrayList: java.util.ArrayList ArrayList: java.util.ArrayList
HashMap: java.util.HashMap
Bukkit: org.bukkit.Bukkit Bukkit: org.bukkit.Bukkit
Material: org.bukkit.Material Material: org.bukkit.Material