From 44fe51826fd58bc5ca8c301b1da71edd8c2b9312 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Thu, 13 May 2021 20:19:55 +0200 Subject: [PATCH] Remove nashorn scripting engine (#1068) - Remove the ScriptTranspiler as es6 is no longer supported --- .../scripting/NashornCraftScriptEngine.java | 78 ------------------- .../scripting/compat/ScriptTranspiler.java | 38 --------- 2 files changed, 116 deletions(-) delete mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/scripting/NashornCraftScriptEngine.java delete mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/scripting/compat/ScriptTranspiler.java diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/NashornCraftScriptEngine.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/NashornCraftScriptEngine.java deleted file mode 100644 index 0a45367ee..000000000 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/NashornCraftScriptEngine.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * WorldEdit, a Minecraft world manipulation toolkit - * Copyright (C) sk89q - * Copyright (C) WorldEdit team and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.sk89q.worldedit.scripting; - -import com.boydti.fawe.Fawe; -import com.sk89q.worldedit.WorldEditException; -import jdk.nashorn.api.scripting.NashornScriptEngineFactory; - -import java.util.Map; -import javax.script.ScriptEngine; -import javax.script.ScriptException; -import javax.script.SimpleBindings; - -public class NashornCraftScriptEngine implements CraftScriptEngine { - private static NashornScriptEngineFactory FACTORY; - private int timeLimit; - - @Override - public void setTimeLimit(int milliseconds) { - timeLimit = milliseconds; - } - - @Override - public int getTimeLimit() { - return timeLimit; - } - - @Override - public Object evaluate(String script, String filename, Map args) throws Throwable { - ClassLoader cl = Fawe.get().getClass().getClassLoader(); - Thread.currentThread().setContextClassLoader(cl); - synchronized (NashornCraftScriptEngine.class) { - if (FACTORY == null) { - FACTORY = new NashornScriptEngineFactory(); - } - } - ScriptEngine engine = FACTORY.getScriptEngine("--language=es6"); - SimpleBindings bindings = new SimpleBindings(); - - for (Map.Entry entry : args.entrySet()) { - bindings.put(entry.getKey(), entry.getValue()); - } - - try { - return engine.eval(script, bindings); - } catch (Error e) { - e.printStackTrace(); - throw new ScriptException(e.getMessage()); - } catch (Throwable e) { - e.printStackTrace(); - while (e.getCause() != null) { - e = e.getCause(); - } - if (e instanceof WorldEditException) { - throw e; - } - throw e; - } - } - -} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/compat/ScriptTranspiler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/compat/ScriptTranspiler.java deleted file mode 100644 index af5b3eaae..000000000 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/compat/ScriptTranspiler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * WorldEdit, a Minecraft world manipulation toolkit - * Copyright (C) sk89q - * Copyright (C) WorldEdit team and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.sk89q.worldedit.scripting.compat; - -import java.io.IOException; -import java.io.Reader; - -/** - * Transpile a script from one (version) of a language to another. - */ -public interface ScriptTranspiler { - - /** - * Given input {@code script}, return the transpiled script. - * - * @param script the script to transpile - * @return the new script - */ - Reader transpile(Reader script) throws IOException; - -}