Skip to content

Commit daa1d3b

Browse files
committed
Rough migration to JDA:v5.0.0-beta.6
Not sure I did everything exactly right. A migration guide is covered here, but I did most of this in a hurry. https://jda.wiki/introduction/migration-v4-v5/
1 parent 101c28d commit daa1d3b

8 files changed

Lines changed: 51 additions & 43 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ dependencies {
2323
// https://github.com/DV8FromTheWorld/JDA/commit/39ba0c2682ad99dbec88240cb8ea9d1ff7162ae9
2424
// The snapshot version published in jitpack has this, so it is utilized for now.
2525
// Eventually, a full upgrade to JDA 5.x will be necessary.
26-
implementation("com.github.DV8FromTheWorld:JDA:legacy~v4-SNAPSHOT")
26+
implementation("com.github.DV8FromTheWorld:JDA:v5.0.0-beta.6")
2727
implementation("dev.arbjerg:lavaplayer:1.5.0")
2828
implementation("org.springframework.boot:spring-boot-starter-data-r2dbc")
2929

src/main/kotlin/dev/arbjerg/ukulele/audio/Player.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import dev.arbjerg.ukulele.config.BotProps
1212
import dev.arbjerg.ukulele.data.GuildProperties
1313
import dev.arbjerg.ukulele.data.GuildPropertiesService
1414
import net.dv8tion.jda.api.audio.AudioSendHandler
15-
import net.dv8tion.jda.api.entities.TextChannel
15+
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel
1616
import org.slf4j.Logger
1717
import org.slf4j.LoggerFactory
1818
import org.springframework.stereotype.Component
@@ -125,7 +125,7 @@ class Player(val beans: Beans, guildProperties: GuildProperties) : AudioEventAda
125125

126126
override fun onTrackStart(player: AudioPlayer, track: AudioTrack) {
127127
if (beans.botProps.announceTracks) {
128-
lastChannel?.sendMessage(beans.nowPlayingCommand.buildEmbed(track))?.queue()
128+
lastChannel?.sendMessageEmbeds(beans.nowPlayingCommand.buildEmbed(track))?.queue()
129129
}
130130
}
131131

src/main/kotlin/dev/arbjerg/ukulele/command/HelpCommand.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package dev.arbjerg.ukulele.command
33
import dev.arbjerg.ukulele.features.HelpContext
44
import dev.arbjerg.ukulele.jda.Command
55
import dev.arbjerg.ukulele.jda.CommandContext
6-
import net.dv8tion.jda.api.MessageBuilder
6+
import net.dv8tion.jda.api.entities.MessageEmbed
7+
import net.dv8tion.jda.api.utils.MarkdownUtil
8+
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder
79
import org.springframework.stereotype.Component
810

911
@Component
@@ -12,14 +14,15 @@ class HelpCommand : Command("help") {
1214
if (argumentText.isNotBlank()) {
1315
replyHelp(beans.commandManager[argumentText.trim()] ?: command)
1416
} else {
15-
val msg = MessageBuilder()
16-
.append("Available commands:")
17-
.appendCodeBlock(buildString {
17+
val msg = MessageCreateBuilder()
18+
.addContent("Available commands:")
19+
.addContent(MarkdownUtil.codeblock(buildString {
1820
beans.commandManager.getCommands().forEach {
1921
appendLine((listOf(it.name) + it.aliases).joinToString())
2022
}
21-
}, "")
22-
.append("\nUse \"${trigger} <command>\" to see more details.")
23+
}))
24+
.addContent("\nUse \"${trigger} <command>\" to see more details.")
25+
2326
replyMsg(msg.build())
2427
}
2528
}

src/main/kotlin/dev/arbjerg/ukulele/features/HelpContext.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package dev.arbjerg.ukulele.features
22

33
import dev.arbjerg.ukulele.jda.Command
44
import dev.arbjerg.ukulele.jda.CommandContext
5-
import net.dv8tion.jda.api.MessageBuilder
5+
import net.dv8tion.jda.api.utils.MarkdownUtil
6+
import net.dv8tion.jda.api.utils.messages.MessageCreateBuilder
67

78
class HelpContext(private val commandContext: CommandContext, private val command: Command) {
89
private val lines = mutableListOf<String>()
@@ -20,7 +21,7 @@ class HelpContext(private val commandContext: CommandContext, private val comman
2021
lines.add("# " + text.trim())
2122
}
2223

23-
fun buildMessage() = MessageBuilder()
24-
.appendCodeBlock(lines.joinToString(separator = "\n"), "md")
25-
.build()
24+
fun buildMessage() = MessageCreateBuilder()
25+
.addContent(MarkdownUtil.codeblock("md", lines.joinToString(separator = "\n")))
26+
.build()
2627
}

src/main/kotlin/dev/arbjerg/ukulele/jda/CommandContext.kt

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,20 @@ import net.dv8tion.jda.api.entities.Guild
99
import net.dv8tion.jda.api.entities.Member
1010
import net.dv8tion.jda.api.entities.Message
1111
import net.dv8tion.jda.api.entities.MessageEmbed
12-
import net.dv8tion.jda.api.entities.TextChannel
12+
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel
13+
import net.dv8tion.jda.api.utils.messages.MessageCreateData
1314
import org.springframework.stereotype.Component
1415

1516
class CommandContext(
16-
val beans: Beans,
17-
val guildProperties: GuildProperties,
18-
val guild: Guild,
19-
val channel: TextChannel,
20-
val invoker: Member,
21-
val message: Message,
22-
val command: Command,
23-
val prefix: String,
24-
/** Prefix + command name */
17+
val beans: Beans,
18+
val guildProperties: GuildProperties,
19+
val guild: Guild,
20+
val channel: TextChannel,
21+
val invoker: Member,
22+
val message: Message,
23+
val command: Command,
24+
val prefix: String,
25+
/** Prefix + command name */
2526
val trigger: String
2627
) {
2728
@Component
@@ -44,12 +45,12 @@ class CommandContext(
4445
channel.sendMessage(msg).queue()
4546
}
4647

47-
fun replyMsg(msg: Message) {
48+
fun replyMsg(msg: MessageCreateData) {
4849
channel.sendMessage(msg).queue()
4950
}
5051

5152
fun replyEmbed(embed: MessageEmbed) {
52-
channel.sendMessage(embed).queue()
53+
channel.sendMessage(MessageCreateData.fromEmbeds(embed)).queue()
5354
}
5455

5556
fun replyHelp(forCommand: Command = command) {

src/main/kotlin/dev/arbjerg/ukulele/jda/CommandManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import kotlinx.coroutines.launch
77
import net.dv8tion.jda.api.entities.Guild
88
import net.dv8tion.jda.api.entities.Member
99
import net.dv8tion.jda.api.entities.Message
10-
import net.dv8tion.jda.api.entities.TextChannel
10+
import net.dv8tion.jda.api.entities.channel.concrete.TextChannel
1111
import org.slf4j.Logger
1212
import org.slf4j.LoggerFactory
1313
import org.springframework.stereotype.Service

src/main/kotlin/dev/arbjerg/ukulele/jda/EventHandler.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package dev.arbjerg.ukulele.jda
22

3-
import net.dv8tion.jda.api.events.ReadyEvent
3+
import net.dv8tion.jda.api.entities.channel.ChannelType
44
import net.dv8tion.jda.api.events.StatusChangeEvent
5-
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent
5+
import net.dv8tion.jda.api.events.message.MessageReceivedEvent
66
import net.dv8tion.jda.api.hooks.ListenerAdapter
77
import org.slf4j.Logger
88
import org.slf4j.LoggerFactory
@@ -13,9 +13,11 @@ class EventHandler(private val commandManager: CommandManager) : ListenerAdapter
1313

1414
private val log: Logger = LoggerFactory.getLogger(EventHandler::class.java)
1515

16-
override fun onGuildMessageReceived(event: GuildMessageReceivedEvent) {
16+
override fun onMessageReceived(event: MessageReceivedEvent) {
1717
if (event.isWebhookMessage || event.author.isBot) return
18-
commandManager.onMessage(event.guild, event.channel, event.member!!, event.message)
18+
if (event.channelType != ChannelType.TEXT) return
19+
20+
commandManager.onMessage(event.guild, event.channel.asTextChannel(), event.member!!, event.message)
1921
}
2022

2123
override fun onStatusChange(event: StatusChangeEvent) {

src/main/kotlin/dev/arbjerg/ukulele/jda/JdaConfig.kt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ import net.dv8tion.jda.api.sharding.ShardManager
66
import org.springframework.context.annotation.Bean
77
import org.springframework.context.annotation.Configuration
88
import net.dv8tion.jda.api.requests.GatewayIntent.*
9-
import net.dv8tion.jda.api.requests.restaction.MessageAction
109
import net.dv8tion.jda.api.sharding.DefaultShardManagerBuilder
1110
import net.dv8tion.jda.api.utils.cache.CacheFlag
11+
import net.dv8tion.jda.api.utils.messages.MessageRequest
1212
import javax.security.auth.login.LoginException
1313
import kotlin.concurrent.thread
1414

1515
@Configuration
1616
class JdaConfig {
1717

1818
init {
19-
MessageAction.setDefaultMentions(emptyList())
19+
MessageRequest.setDefaultMentions(emptyList())
2020
}
2121

2222
@Bean
@@ -26,20 +26,21 @@ class JdaConfig {
2626

2727

2828
val intents = listOf(
29-
GUILD_VOICE_STATES,
30-
GUILD_MESSAGES,
31-
GUILD_BANS,
32-
DIRECT_MESSAGES
29+
GUILD_VOICE_STATES,
30+
GUILD_MESSAGES,
31+
GUILD_BANS,
32+
DIRECT_MESSAGES,
33+
MESSAGE_CONTENT
3334
)
3435

3536
val builder = DefaultShardManagerBuilder.create(botProps.token, intents)
36-
.disableCache(CacheFlag.ACTIVITY, CacheFlag.EMOTE, CacheFlag.CLIENT_STATUS)
37-
.setBulkDeleteSplittingEnabled(false)
38-
.setEnableShutdownHook(false)
39-
.setAutoReconnect(true)
40-
.setShardsTotal(botProps.shards)
41-
.addEventListeners(eventHandler)
42-
.setActivity(activity)
37+
.disableCache(CacheFlag.ACTIVITY, CacheFlag.EMOJI, CacheFlag.CLIENT_STATUS)
38+
.setBulkDeleteSplittingEnabled(false)
39+
.setEnableShutdownHook(false)
40+
.setAutoReconnect(true)
41+
.setShardsTotal(botProps.shards)
42+
.addEventListeners(eventHandler)
43+
.setActivity(activity)
4344

4445
val shardManager: ShardManager
4546
try {

0 commit comments

Comments
 (0)