reorog
This commit is contained in:
parent
a26829eec7
commit
4a434dfdd2
24 changed files with 96 additions and 0 deletions
11
bukkit-plugin/.classpath
Normal file
11
bukkit-plugin/.classpath
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||||
|
<classpathentry kind="lib" path="/home/walter/bukkit/target/bukkit-1.4.6-R0.4-SNAPSHOT.jar" sourcepath="/home/walter/bukkit/src/main/java">
|
||||||
|
<attributes>
|
||||||
|
<attribute name="javadoc_location" value="http://jd.bukkit.org/apidocs/"/>
|
||||||
|
</attributes>
|
||||||
|
</classpathentry>
|
||||||
|
<classpathentry kind="output" path="bin"/>
|
||||||
|
</classpath>
|
17
bukkit-plugin/.project
Normal file
17
bukkit-plugin/.project
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>ScriptCraft</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
9
bukkit-plugin/plugin.yml
Normal file
9
bukkit-plugin/plugin.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
name: ScriptCraftPlugin
|
||||||
|
main: net.walterhiggins.scriptcraft.ScriptCraftPlugin
|
||||||
|
version: 0.01
|
||||||
|
commands:
|
||||||
|
js:
|
||||||
|
description: Evaluate javascript.
|
||||||
|
usage: /<command> Javascript code
|
||||||
|
permission: ScriptCraftPlugin.js
|
||||||
|
permission-message: You don't have <permission>
|
|
@ -0,0 +1,59 @@
|
||||||
|
package net.walterhiggins.scriptcraft;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import javax.script.*;
|
||||||
|
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.bukkit.command.*;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class ScriptCraftPlugin extends JavaPlugin
|
||||||
|
{
|
||||||
|
// right now all ops share the same JS context/scope
|
||||||
|
// need to look at possibly having context/scope per operator
|
||||||
|
//protected Map<CommandSender,ScriptCraftEvaluator> playerContexts = new HashMap<CommandSender,ScriptCraftEvaluator>();
|
||||||
|
protected ScriptEngine engine = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onEnable(){
|
||||||
|
if (this.engine == null){
|
||||||
|
try{
|
||||||
|
ScriptEngineManager factory = new ScriptEngineManager();
|
||||||
|
File boot = new File("js-plugins2/core/_scriptcraft.js");
|
||||||
|
this.engine = factory.getEngineByName("JavaScript");
|
||||||
|
this.engine.put("__engine",engine);
|
||||||
|
this.engine.put("__plugin",this);
|
||||||
|
this.engine.put("__script",boot.getCanonicalPath().replaceAll("\\\\","/"));
|
||||||
|
this.engine.eval(new FileReader(boot));
|
||||||
|
}catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
|
||||||
|
{
|
||||||
|
if(cmd.getName().equalsIgnoreCase("js"))
|
||||||
|
{
|
||||||
|
this.engine.put("__self",sender);
|
||||||
|
String javascriptCode = "";
|
||||||
|
for (int i = 0;i < args.length; i++){
|
||||||
|
javascriptCode = javascriptCode + args[i] + " ";
|
||||||
|
}
|
||||||
|
try{
|
||||||
|
Object result = this.engine.eval(javascriptCode);
|
||||||
|
if (result != null)
|
||||||
|
sender.sendMessage(result.toString());
|
||||||
|
return true;
|
||||||
|
}catch (Exception e){
|
||||||
|
sender.sendMessage(e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Reference in a new issue