@@ -29,7 +29,7 @@ public class MiaoScript extends JavaPlugin implements Executor {
 | 
			
		||||
    public void onEnable() {
 | 
			
		||||
        new CommandSub("ms", this);
 | 
			
		||||
        engine = new ScriptEngine(getDataFolder().getCanonicalPath(), getLogger());
 | 
			
		||||
        engine.enableEngine(getClassLoader());
 | 
			
		||||
        enableEngine();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Cmd
 | 
			
		||||
@@ -60,7 +60,7 @@ public class MiaoScript extends JavaPlugin implements Executor {
 | 
			
		||||
        } catch (Exception ex) {
 | 
			
		||||
            Log.d("Error reload", ex);
 | 
			
		||||
        }
 | 
			
		||||
        engine.enableEngine(getClassLoader());
 | 
			
		||||
        enableEngine();
 | 
			
		||||
        Log.sender(sender, "§bMiaoScript §eEngine §a重启完成!");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -72,6 +72,13 @@ public class MiaoScript extends JavaPlugin implements Executor {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void enableEngine() {
 | 
			
		||||
        val origin = Thread.currentThread().getContextClassLoader();
 | 
			
		||||
        Thread.currentThread().setContextClassLoader(getClassLoader());
 | 
			
		||||
        engine.enableEngine();
 | 
			
		||||
        Thread.currentThread().setContextClassLoader(origin);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void onDisable() {
 | 
			
		||||
        engine.disableEngine();
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,6 @@ import java.nio.file.Paths;
 | 
			
		||||
import javax.script.ScriptEngineManager;
 | 
			
		||||
 | 
			
		||||
import lombok.SneakyThrows;
 | 
			
		||||
import lombok.val;
 | 
			
		||||
import pw.yumc.YumCore.engine.MiaoScriptEngine;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -27,14 +26,8 @@ public class ScriptEngine {
 | 
			
		||||
        this.logger = logger;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void enableEngine() {
 | 
			
		||||
        enableEngine(Thread.currentThread().getContextClassLoader());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SneakyThrows
 | 
			
		||||
    public void enableEngine(ClassLoader loader) {
 | 
			
		||||
        val origin = Thread.currentThread().getContextClassLoader();
 | 
			
		||||
        Thread.currentThread().setContextClassLoader(loader);
 | 
			
		||||
    public void enableEngine() {
 | 
			
		||||
        ScriptEngineManager manager = new ScriptEngineManager();
 | 
			
		||||
        this.engine = new MiaoScriptEngine(manager, "nashorn");
 | 
			
		||||
        this.engine.put("base", new Base());
 | 
			
		||||
@@ -46,7 +39,6 @@ public class ScriptEngine {
 | 
			
		||||
            this.engine.eval(new InputStreamReader(Thread.currentThread().getContextClassLoader().getResourceAsStream("bios.js")));
 | 
			
		||||
        }
 | 
			
		||||
        engine.invokeFunction("boot", root, logger);
 | 
			
		||||
        Thread.currentThread().setContextClassLoader(origin);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @SneakyThrows
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user