Thema: [Java] Scripts
-
07.03.2011, 00:09 #1
- Registriert seit
- 06.11.2011
- Beiträge
- 418
Thanked 686 Times in 246 Posts[Java] Scripts
Hier ist das Script-System aus meinem Clienten, da ich diesen nicht mehr updaten werde. Müsstet ihr dann - sofern ihr es nutzen wollt - ein wenig anpassen. Momo plant es soweit ich weiß auch im kommenden KSClienten einzubauen.
ScriptManager.java
Code:import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Timer; import java.util.TimerTask; import javax.script.Invocable; import javax.script.ScriptEngine; /** * * @author Flav */ public class ScriptManager { private ScriptEngine engine; private static Map<String, Object> properties; static { properties = new HashMap<String, Object>(); } public ScriptManager(ScriptEngine engine) { this.engine = engine; } public ScriptEngine getEngine() { return engine; } public void load(String file) { InputStreamReader reader = null; try { reader = new InputStreamReader(new FileInputStream("scripts/" + file + ".js"), "UTF-8"); engine.eval(reader); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } public Timer schedule(String name, long delay) { return schedule(name, null, delay); } public Timer schedule(final String name, final Object[] args, long delay) { Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { try { Invocable invocable = ((Invocable) engine); if (args == null) { invocable.invokeFunction(name); } else { invocable.invokeFunction(name, args); } } catch (Exception e) { e.printStackTrace(); } } }, delay); return timer; } public Object getProperty(String key) { return properties.get(key); } public void setProperty(String key, Object value) { if (properties.containsKey(key)) { properties.remove(key); } properties.put(key, value); } }
Code:import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; /** * * @author Flav */ public class ScriptHolder { private static ScriptEngineManager manager; private static Map<String, ScriptEngine> inputScripts; private static Map<String, ScriptEngine> outputScripts; private static ScriptEngine commandScript; static { manager = new ScriptEngineManager(); } public static void load() { inputScripts = new HashMap<String, ScriptEngine>(); Properties inputProperties = new Properties(); FileReader inputReader = null; outputScripts = new HashMap<String, ScriptEngine>(); Properties outputProperties = new Properties(); FileReader ouputReader = null; try { inputReader = new FileReader("scripts/input/opcodes.properties"); inputProperties.load(inputReader); ouputReader = new FileReader("scripts/output/opcodes.properties"); outputProperties.load(ouputReader); } catch (IOException e) { e.printStackTrace(); } finally { try { if (inputReader != null) { inputReader.close(); } if (ouputReader != null) { ouputReader.close(); } } catch (IOException e) { e.printStackTrace(); } } for (String key : inputProperties.stringPropertyNames()) { if (new File("scripts/input/" + key + ".js").exists()) { ScriptEngine engine = manager.getEngineByName("JavaScript"); ScriptManager script = new ScriptManager(engine); engine.put("script", script); script.load("input/" + key); inputScripts.put(inputProperties.getProperty(key), engine); } } for (String key : outputProperties.stringPropertyNames()) { if (new File("scripts/output/" + key + ".js").exists()) { ScriptEngine engine = manager.getEngineByName("JavaScript"); ScriptManager script = new ScriptManager(engine); engine.put("script", script); script.load("output/" + key); outputScripts.put(outputProperties.getProperty(key), engine); } } if (new File("scripts/command.js").exists()) { commandScript = manager.getEngineByName("JavaScript"); ScriptManager script = new ScriptManager(commandScript); commandScript.put("script", script); script.load("command"); } } public static ScriptEngine getInputScript(String opcode) { return inputScripts.get(opcode); } public static ScriptEngine getOutputScript(String opcode) { return outputScripts.get(opcode); } public static ScriptEngine getCommandScript() { return commandScript; } }
Code:ScriptEngine engine = ScriptHolder.getCommandScript(); if (engine != null) { try { if (((Invocable) engine).invokeFunction("parse", new Object[] { param1, param5.substring(1).split(" ") }) == Boolean.TRUE) { return true; } } catch (Exception e) { e.printStackTrace(); } }
__________________
Ich soll dir sagen, dass du weniger spammen sollst. Entweder sagst was, das zum Thema passt, oder du hälst die Klappe!
Ähnliche Themen
-
Win7 Java in Safari ausführen (Fehlermeldung Java nicht installiert)
Von Silverstar im Forum WindowsAntworten: 8Letzter Beitrag: 02.12.2013, 23:41 -
Debian-LAMP scripts
Von velaja im Forum WebmasterAntworten: 3Letzter Beitrag: 08.11.2013, 01:36 -
Suche -> Fake Scripts
Von watermeloN im Forum Fragen & ProblemeAntworten: 6Letzter Beitrag: 19.09.2013, 17:59 -
Ubuntu Sun Java
Von hYpercrites im Forum LinuxAntworten: 3Letzter Beitrag: 20.06.2012, 15:17
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.