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