From 602cf9b0d4658f3235cbe74c49b6c84ece3cd02d Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 30 Mar 2024 15:39:58 -0400 Subject: [PATCH] custom eval engine --- src/main/java/com/jagrosh/jmusicbot/BotConfig.java | 9 ++++++++- .../com/jagrosh/jmusicbot/commands/owner/EvalCmd.java | 10 +++++++++- src/main/resources/reference.conf | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/jagrosh/jmusicbot/BotConfig.java b/src/main/java/com/jagrosh/jmusicbot/BotConfig.java index a95556f8a..9ed5915ad 100644 --- a/src/main/java/com/jagrosh/jmusicbot/BotConfig.java +++ b/src/main/java/com/jagrosh/jmusicbot/BotConfig.java @@ -40,7 +40,8 @@ public class BotConfig private Path path = null; private String token, prefix, altprefix, helpWord, playlistsFolder, - successEmoji, warningEmoji, errorEmoji, loadingEmoji, searchingEmoji; + successEmoji, warningEmoji, errorEmoji, loadingEmoji, searchingEmoji, + evalEngine; private boolean stayInChannel, songInGame, npImages, updatealerts, useEval, dbots; private long owner, maxSeconds, aloneTimeUntilStop; private double skipratio; @@ -87,6 +88,7 @@ public void load() npImages = config.getBoolean("npimages"); updatealerts = config.getBoolean("updatealerts"); useEval = config.getBoolean("eval"); + evalEngine = config.getString("evalengine"); maxSeconds = config.getLong("maxtime"); aloneTimeUntilStop = config.getLong("alonetimeuntilstop"); playlistsFolder = config.getString("playlistsfolder"); @@ -318,6 +320,11 @@ public boolean useEval() return useEval; } + public String getEvalEngine() + { + return evalEngine; + } + public boolean useNPImages() { return npImages; diff --git a/src/main/java/com/jagrosh/jmusicbot/commands/owner/EvalCmd.java b/src/main/java/com/jagrosh/jmusicbot/commands/owner/EvalCmd.java index 1a7f0294c..8143f078c 100644 --- a/src/main/java/com/jagrosh/jmusicbot/commands/owner/EvalCmd.java +++ b/src/main/java/com/jagrosh/jmusicbot/commands/owner/EvalCmd.java @@ -29,6 +29,7 @@ public class EvalCmd extends OwnerCommand { private final Bot bot; + private final String engine; public EvalCmd(Bot bot) { @@ -36,13 +37,20 @@ public EvalCmd(Bot bot) this.name = "eval"; this.help = "evaluates nashorn code"; this.aliases = bot.getConfig().getAliases(this.name); + this.engine = bot.getConfig().getEvalEngine(); this.guildOnly = false; } @Override protected void execute(CommandEvent event) { - ScriptEngine se = new ScriptEngineManager().getEngineByName("Nashorn"); + ScriptEngine se = new ScriptEngineManager().getEngineByName(engine); + if(se == null) + { + event.replyError("The eval engine provided in the config (`"+engine+"`) doesn't exist. This could be due to an invalid " + + "engine name, or the engine not existing in your version of java (`"+System.getProperty("java.version")+"`)."); + return; + } se.put("bot", bot); se.put("event", event); se.put("jda", event.getJDA()); diff --git a/src/main/resources/reference.conf b/src/main/resources/reference.conf index 5e6e4ac27..ea439934b 100644 --- a/src/main/resources/reference.conf +++ b/src/main/resources/reference.conf @@ -206,6 +206,7 @@ transforms = {} // IF SOMEONE ASKS YOU TO ENABLE THIS, THERE IS AN 11/10 CHANCE THEY ARE TRYING TO SCAM YOU eval=false +evalengine="Nashorn" /// END OF JMUSICBOT CONFIG ///