-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmEDependentCommand.java
More file actions
48 lines (46 loc) · 1.53 KB
/
mEDependentCommand.java
File metadata and controls
48 lines (46 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import javax.script.*;
import sun.org.mozilla.javascript.internal.*;
import mEScriptEngine.*;
// Temporary class till I find how to hook CommandBase
public class mEDependentCommand extends z
{
public String c()
{
return "eval";
}
public String c(ad ad)
{
return "commands.eval.usage";
}
public void b(ad caller, String[] args)
{
if (args.length == 0)
{
// cv = ChatMessageComponent
caller.a(cv.e("\u00a7cUsage: /eval <JavaScript code>"));
return;
}
StringBuilder sb = new StringBuilder();
sb.append(args[0]);
for (int i = 1; i < args.length; i++) sb.append(" ").append(args[i]);
String command = sb.toString();
mod_moreEverything.engine.put(ScriptEngine.FILENAME, "chat");
try
{
String result = (String)mod_moreEverything.engine.eval("''+eval('"+command.replaceAll("'", "\\\\'")+"')");
caller.a(cv.e("\u00a77>>> "+command+"\u00a7r\n"+result));
//inv.invokeFunction("evalCommandEvent", caller, command));
}
catch(RhinoException e)
{
String msg = mod_moreEverything.getScriptStacktrace(e);
// Leave only the interesting part of the message
msg = msg.substring(0, msg.indexOf("\tat mEScriptEngine.")-2).replace("\t", " ").replace("\r\n", "\n");
caller.a(cv.e("\u00a77>>> "+command+"\u00a7c\n"+msg));
}
}
public int compareTo(Object obj)
{
return a((ab)obj);
}
}