Skip to content

Commit 7fcccde

Browse files
committed
Fix eval command
1 parent 609f1da commit 7fcccde

File tree

4 files changed

+33
-21
lines changed

4 files changed

+33
-21
lines changed

.idea/kotlinc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bot/src/main/kotlin/me/duncte123/skybot/commands/essentials/eval/EvalCommand.kt

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import java.io.StringWriter
3737
import java.util.concurrent.*
3838
import javax.script.ScriptEngine
3939
import javax.script.ScriptEngineManager
40+
import javax.script.SimpleBindings
4041
import kotlin.system.measureTimeMillis
4142

4243
class EvalCommand : Command() {
@@ -115,30 +116,32 @@ class EvalCommand : Command() {
115116
.replace("\n?```".toRegex(), "")
116117
}
117118

118-
engine.put("commandManager", ctx.commandManager)
119-
engine.put("message", ctx.message)
120-
engine.put("channel", ctx.message.channel)
121-
engine.put("guild", ctx.guild)
122-
engine.put("member", ctx.member)
123-
engine.put("author", ctx.author)
124-
engine.put("jda", ctx.jda)
125-
engine.put("shardManager", ctx.jda.shardManager)
126-
engine.put("event", ctx.event)
127-
128-
engine.put("args", ctx.args)
129-
engine.put("ctx", ctx)
130-
engine.put("variables", ctx.variables)
131-
132-
eval(ctx, userIn)
119+
val bindings = SimpleBindings()
120+
121+
bindings["commandManager"] = ctx.commandManager
122+
bindings["message"] = ctx.message
123+
bindings["channel"] = ctx.message.channel
124+
bindings["guild"] = ctx.guild
125+
bindings["member"] = ctx.member
126+
bindings["author"] = ctx.author
127+
bindings["jda"] = ctx.jda
128+
bindings["shardManager"] = ctx.jda.shardManager
129+
bindings["event"] = ctx.event
130+
131+
bindings["args"] = ctx.args
132+
bindings["ctx"] = ctx
133+
bindings["variables"] = ctx.variables
134+
135+
eval(ctx, userIn, bindings)
133136
}
134137

135-
private fun eval(ctx: CommandContext, script: String) {
138+
private fun eval(ctx: CommandContext, script: String, bindings: SimpleBindings) {
136139
val time = measureTimeMillis {
137140
val future: Future<*> = this.evalThread.submit(
138141
Callable {
139142
try {
140143
// NOTE: while(true) loops and sleeps do not trigger a timeout
141-
return@Callable engine.eval(script)
144+
return@Callable engine.eval(script, bindings)
142145
} catch (ex: Throwable) {
143146
return@Callable ex
144147
}

bot/src/main/kotlin/me/duncte123/skybot/objects/SlashSupport.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,24 @@ package me.duncte123.skybot.objects
2121
import me.duncte123.skybot.Variables
2222
import me.duncte123.skybot.objects.command.CommandCategory
2323
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent
24+
import net.dv8tion.jda.api.interactions.commands.build.CommandData
2425
import net.dv8tion.jda.api.interactions.commands.build.Commands
2526
import net.dv8tion.jda.api.interactions.commands.build.SlashCommandData
27+
import kotlin.math.min
2628
import me.duncte123.skybot.objects.command.Command as SkyCommand
2729

2830
abstract class SlashSupport : SkyCommand() {
2931
protected abstract fun configureSlashSupport(baseData: SlashCommandData)
3032

3133
fun getSlashData(): SlashCommandData {
32-
val base = Commands.slash(name, getHelp("", "/"))
34+
val help = getHelp("", "/")
35+
36+
val base = Commands.slash(
37+
name,
38+
help.substring(
39+
0 until min(help.length, CommandData.MAX_DESCRIPTION_LENGTH)
40+
)
41+
)
3342
.setGuildOnly(true)
3443
.setNSFW(category == CommandCategory.NSFW)
3544

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ plugins {
2222
java
2323
idea
2424

25-
kotlin("jvm") version "1.9.21" apply false
25+
kotlin("jvm") version "1.9.23" apply false
2626
id("org.liquibase.gradle") version "2.0.4" apply false
27-
id("org.jmailen.kotlinter") version "4.2.0" apply false
27+
id("org.jmailen.kotlinter") version "4.3.0" apply false
2828
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
2929
id("com.github.breadmoirai.github-release") version "2.2.12" apply false
3030
}

0 commit comments

Comments
 (0)