diff --git a/src/main/java/bukkit/org/scriptcraftjs/bukkit/ScriptCraftPlugin.java b/src/main/java/bukkit/org/scriptcraftjs/bukkit/ScriptCraftPlugin.java index b21db41..9713500 100644 --- a/src/main/java/bukkit/org/scriptcraftjs/bukkit/ScriptCraftPlugin.java +++ b/src/main/java/bukkit/org/scriptcraftjs/bukkit/ScriptCraftPlugin.java @@ -21,42 +21,43 @@ public class ScriptCraftPlugin extends JavaPlugin implements Listener //protected Map playerContexts = new HashMap(); private String NO_JAVASCRIPT_MESSAGE = "No JavaScript Engine available. ScriptCraft will not work without Javascript."; protected ScriptEngine engine = null; - @Override - public void onEnable() + + @Override public void onEnable() { Thread currentThread = Thread.currentThread(); ClassLoader previousClassLoader = currentThread.getContextClassLoader(); currentThread.setContextClassLoader(getClassLoader()); - try{ + try { ScriptEngineManager factory = new ScriptEngineManager(); this.engine = factory.getEngineByName("JavaScript"); - if (this.engine == null){ - this.getLogger().severe(NO_JAVASCRIPT_MESSAGE); - } else { - Invocable inv = (Invocable)this.engine; - this.engine.eval(new InputStreamReader(this.getResource("boot.js"))); - inv.invokeFunction("__scboot", this, engine); - } - }catch(Exception e){ - e.printStackTrace(); - this.getLogger().severe(e.getMessage()); - }finally{ - currentThread.setContextClassLoader(previousClassLoader); - } + if (this.engine == null) { + this.getLogger().severe(NO_JAVASCRIPT_MESSAGE); + } else { + Invocable inv = (Invocable) this.engine; + this.engine.eval(new InputStreamReader(this.getResource("boot.js"))); + inv.invokeFunction("__scboot", this, engine); + } + } catch (Exception e) { + e.printStackTrace(); + this.getLogger().severe(e.getMessage()); + } finally { + currentThread.setContextClassLoader(previousClassLoader); + } } + public List onTabComplete(CommandSender sender, Command cmd, String alias, String[] args) { List result = new ArrayList(); - if (this.engine == null){ - this.getLogger().severe(NO_JAVASCRIPT_MESSAGE); - return null; - } + if (this.engine == null) { + this.getLogger().severe(NO_JAVASCRIPT_MESSAGE); + return null; + } try { Invocable inv = (Invocable)this.engine; inv.invokeFunction("__onTabComplete", result, sender, cmd, alias, args); - }catch (Exception e){ + } catch (Exception e) { sender.sendMessage(e.getMessage()); e.printStackTrace(); } @@ -66,15 +67,14 @@ public class ScriptCraftPlugin extends JavaPlugin implements Listener public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { boolean result = false; - String javascriptCode = ""; Object jsResult = null; - if (this.engine == null){ - this.getLogger().severe(NO_JAVASCRIPT_MESSAGE); - return false; - } + if (this.engine == null) { + this.getLogger().severe(NO_JAVASCRIPT_MESSAGE); + return false; + } try { jsResult = ((Invocable)this.engine).invokeFunction("__onCommand", sender, cmd, label, args); - }catch (Exception se){ + } catch (Exception se) { this.getLogger().severe(se.toString()); se.printStackTrace(); sender.sendMessage(se.getMessage()); diff --git a/src/main/java/canary/org/scriptcraftjs/canarymod/ScriptCraftPlugin.java b/src/main/java/canary/org/scriptcraftjs/canarymod/ScriptCraftPlugin.java index df3e33a..6c16cc1 100644 --- a/src/main/java/canary/org/scriptcraftjs/canarymod/ScriptCraftPlugin.java +++ b/src/main/java/canary/org/scriptcraftjs/canarymod/ScriptCraftPlugin.java @@ -16,12 +16,8 @@ import net.canarymod.commandsys.Command; import net.canarymod.commandsys.TabComplete; import net.canarymod.chat.MessageReceiver; import net.canarymod.Canary; -import net.canarymod.api.inventory.recipes.CraftingRecipe; -import net.canarymod.api.inventory.recipes.RecipeRow; -import net.canarymod.api.inventory.Item; // event help stuff import net.canarymod.hook.Dispatcher; -import net.canarymod.plugin.PluginListener; import net.canarymod.hook.Hook; public class ScriptCraftPlugin extends Plugin implements PluginListener, CommandListener @@ -31,6 +27,7 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command private String NO_JAVASCRIPT_MESSAGE = "No JavaScript Engine available. " + "ScriptCraft will not work without Javascript."; protected ScriptEngine engine = null; + @Override public void disable(){ try { @@ -39,6 +36,7 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command this.getLogman().error(e.getMessage()); } } + @Override public boolean enable() { @@ -62,11 +60,15 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command e.printStackTrace(); this.getLogman().error(e.getMessage()); } + + return true; } + public static interface IDispatcher { public void execute(PluginListener listener, Hook hook); } + public Dispatcher getDispatcher(final IDispatcher impl){ return new Dispatcher(){ public void execute(PluginListener listener, Hook hook){ @@ -74,6 +76,7 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command } }; } + static class ScriptCraftTask extends ServerTask { private Runnable runnable = null; public ScriptCraftTask(Runnable runnable, TaskOwner owner, long delay, boolean continuous){ @@ -91,8 +94,6 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command } private void executeCommand( MessageReceiver sender, String[] args) { - boolean result = false; - String javascriptCode = ""; Object jsResult = null; if (this.engine == null){ this.getLogman().error(NO_JAVASCRIPT_MESSAGE); @@ -110,15 +111,17 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command } return; } + @Command( aliases = { "js" }, description = "Execute Javascript code", permissions = { "scriptcraft.evaluate" }, toolTip = "/js javascript expression") - public void jsCommand(MessageReceiver sender, String[] args) { + public void jsCommand(MessageReceiver sender, String[] args) { executeCommand(sender, args); } + /* groupmod permission add visitors canary.jsp groupmod permission add visitors canary.command.jsp @@ -128,7 +131,7 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command description = "Run javascript-provided command", permissions = { "" }, toolTip = "/jsp command") - public void jspCommand(MessageReceiver sender, String[] args) { + public void jspCommand(MessageReceiver sender, String[] args) { executeCommand(sender, args); } @@ -148,10 +151,12 @@ public class ScriptCraftPlugin extends Plugin implements PluginListener, Command } return result; } + @TabComplete (commands = { "js" }) public List jsComplete(MessageReceiver sender, String[] args){ return complete(sender, args, "js"); } + @TabComplete (commands = { "jsp" }) public List jspComplete(MessageReceiver sender, String[] args){ return complete(sender, args, "jsp");