Added method for evaluating code
This commit is contained in:
1 parent
fe0ce72492
commit
35cce0f36e
1 file changed
+79
@@ -0,0 +1,79 @@
|
||||
package netneutrality.command.specific;
|
||||
|
||||
/*
|
||||
* Copyright (c) anthorob
|
||||
*
|
||||
* This file is closed-source. It should not be distributed or copied in any way or form
|
||||
*/
|
||||
|
||||
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
|
||||
import netneutrality.command.AbstractCommand;
|
||||
import netneutrality.command.Visibility;
|
||||
import netneutrality.music.MusicManager;
|
||||
import netneutrality.utils.Settings;
|
||||
|
||||
import javax.script.ScriptEngine;
|
||||
import javax.script.ScriptEngineManager;
|
||||
import javax.script.ScriptException;
|
||||
|
||||
public class EvalMethod extends AbstractCommand {
|
||||
|
||||
@Override
|
||||
public boolean needAdmin() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getCommand() {
|
||||
return "evaluate";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getAlias() {
|
||||
return new String[] {"eval"};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUsage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Visibility getVisibility() {
|
||||
return Visibility.BOTH;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String execute(MessageReceivedEvent event, String args) {
|
||||
|
||||
if (event.getAuthor().getId().equals(Settings.getCreator().getId())) {
|
||||
ScriptEngine se = new ScriptEngineManager().getEngineByName("Nashorn");
|
||||
try {
|
||||
se.eval("var imports = new JavaImporter(java.io, java.lang, java.util);");
|
||||
} catch (ScriptException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
se.put("event", event);
|
||||
se.put("jda", event.getJDA());
|
||||
se.put("guild", event.getGuild());
|
||||
se.put("channel", event.getChannel());
|
||||
se.put("member", event.getMember());
|
||||
se.put("music", MusicManager.get(event.getGuild()));
|
||||
|
||||
try {
|
||||
event.getTextChannel().sendMessage(" Evaluated Successfully:\n```\n"+se.eval("(function() {with (imports) {\nreturn " + args + "\n}})();") + " ```").queue();
|
||||
}
|
||||
catch(Exception e) {
|
||||
event.getTextChannel().sendMessage(" An exception was thrown:\n```\n"+e+" ```").queue();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user