Skip to content

Commit 85e3e0f

Browse files
committed
Swap custom deserialiser for mixin
1 parent a4c6999 commit 85e3e0f

File tree

6 files changed

+35
-27
lines changed

6 files changed

+35
-27
lines changed

commands/info.yml

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ input:
66
type: STRING
77
desc: What would you like information about?
88
required: true
9+
choices:
10+
- name: "Jock Studio release information"
11+
value: "js_release"
912
output: |-
1013
val what = event.getOption("about")!!.asString
1114

src/main/kotlin/me/duncte123/io/CommandManager.kt

+6-3
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ import me.duncte123.io.commands.JjCommand
99
import me.duncte123.io.commands.ReloadCommand
1010
import me.duncte123.io.commands.UserCommand
1111
import me.duncte123.io.jackson.OptionDataDeserializer
12+
import me.duncte123.io.mixins.CommandChoiceMixin
1213
import me.duncte123.io.mixins.OptionDataMixin
1314
import net.dv8tion.jda.api.JDA
1415
import net.dv8tion.jda.api.events.interaction.command.SlashCommandInteractionEvent
16+
import net.dv8tion.jda.api.interactions.commands.Command
1517
import net.dv8tion.jda.api.interactions.commands.build.OptionData
1618
import org.slf4j.LoggerFactory
1719
import java.io.File
@@ -36,16 +38,17 @@ class CommandManager {
3638
.configure(KotlinFeature.StrictNullChecks, false)
3739
.build()
3840
)
41+
.addMixIn(Command.Choice::class.java, CommandChoiceMixin::class.java)
3942
.addMixIn(OptionData::class.java, OptionDataMixin::class.java)
4043

4144
private val commands = mutableMapOf<String, ICommand>()
4245

4346
init {
44-
val module = SimpleModule()
47+
// val module = SimpleModule()
4548

46-
module.addDeserializer(OptionData::class.java, OptionDataDeserializer())
49+
// module.addDeserializer(OptionData::class.java, OptionDataDeserializer())
4750

48-
jackson.registerModule(module)
51+
// jackson.registerModule(module)
4952

5053
resetCommands()
5154
}

src/main/kotlin/me/duncte123/io/commands/UserCommand.kt

-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ private val kotlinEngine: ScriptEngine by lazy {
4141
}
4242
}
4343

44-
@JsonIgnoreProperties(ignoreUnknown = true)
4544
data class UserCommand @JsonCreator constructor (
4645
@JsonProperty("disabled") val disabled: Boolean = false,
4746
@JsonProperty("name") override val name: String,

src/main/kotlin/me/duncte123/io/jackson/OptionDataDeserializer.kt

-22
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package me.duncte123.io.mixins
2+
3+
import com.fasterxml.jackson.annotation.JsonCreator
4+
import com.fasterxml.jackson.annotation.JsonProperty
5+
6+
abstract class CommandChoiceMixin
7+
@JsonCreator
8+
constructor(
9+
@JsonProperty("name") name: String,
10+
@JsonProperty("value") value: String,
11+
) {
12+
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
package me.duncte123.io.mixins
22

3+
import com.fasterxml.jackson.annotation.JsonCreator
34
import com.fasterxml.jackson.annotation.JsonIgnore
5+
import com.fasterxml.jackson.annotation.JsonProperty
6+
import com.fasterxml.jackson.annotation.JsonSetter
47
import net.dv8tion.jda.api.entities.channel.ChannelType
8+
import net.dv8tion.jda.api.interactions.commands.Command
9+
import net.dv8tion.jda.api.interactions.commands.OptionType
510
import net.dv8tion.jda.api.interactions.commands.build.OptionData
611

7-
abstract class OptionDataMixin {
12+
abstract class OptionDataMixin @JsonCreator constructor(
13+
@JsonProperty("type") type: OptionType,
14+
@JsonProperty("name") name: String,
15+
@JsonProperty("desc") desc: String,
16+
@JsonProperty("required") required: Boolean
17+
) {
818
@JsonIgnore
919
abstract fun setChannelTypes(vararg channelTypes: ChannelType): OptionData
1020

@@ -13,4 +23,7 @@ abstract class OptionDataMixin {
1323

1424
@JsonIgnore
1525
abstract fun setMaxValue(minValue: Double): OptionData
26+
27+
@JsonSetter("choices")
28+
abstract fun addChoices(choices: Collection<Command.Choice>): OptionData
1629
}

0 commit comments

Comments
 (0)