Skip to content

Commit e691f78

Browse files
committed
feat: update to latest discordkt snapshot
1 parent d2b48d0 commit e691f78

38 files changed

+147
-119
lines changed

.github/workflows/discord-release.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: Post Release to Discord
2+
3+
on:
4+
release:
5+
types:
6+
- created
7+
8+
jobs:
9+
run_main:
10+
runs-on: ubuntu-18.04
11+
name: Discord Webhook
12+
steps:
13+
- name: Send message
14+
uses: ddivad195/discord-styled-releases@main
15+
with:
16+
project_name: "Judgebot"
17+
embed_colour: "1315909"
18+
webhook_id: ${{ secrets.DISCORD_WEBHOOK_ID }}
19+
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,5 @@ tasks {
3636

3737
object Versions {
3838
const val BOT = "1.0.0"
39-
const val DISCORDKT = "0.22.0-SNAPSHOT"
39+
const val DISCORDKT = "0.23.0-SNAPSHOT"
4040
}

src/main/kotlin/me/ddivad/judgebot/Main.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.ddivad.judgebot
22

3+
import dev.kord.common.annotation.KordPreview
34
import dev.kord.common.kColor
45
import dev.kord.core.supplier.EntitySupplyStrategy
56
import dev.kord.gateway.Intent
@@ -14,8 +15,9 @@ import me.jakejmattson.discordkt.api.dsl.bot
1415
import me.jakejmattson.discordkt.api.extensions.addInlineField
1516
import java.awt.Color
1617

18+
@KordPreview
1719
@PrivilegedIntent
18-
suspend fun main(args: Array<String>) {
20+
suspend fun main() {
1921
val token = System.getenv("BOT_TOKEN") ?: null
2022
val defaultPrefix = System.getenv("DEFAULT_PREFIX") ?: "j!"
2123

@@ -31,7 +33,7 @@ suspend fun main(args: Array<String>) {
3133
allowMentionPrefix = true
3234
commandReaction = null
3335
theme = Color.MAGENTA
34-
entitySupplyStrategy = EntitySupplyStrategy.cacheWithCachingRestFallback
36+
entitySupplyStrategy = EntitySupplyStrategy.cacheWithRestFallback
3537
permissions(Permissions.NONE)
3638
intents = Intents(
3739
Intent.GuildMembers,
@@ -67,10 +69,11 @@ suspend fun main(args: Array<String>) {
6769
field {
6870
name = "Build Info"
6971
value = "```" +
70-
"Version: 2.4.1\n" +
72+
"Version: 2.5.0\n" +
7173
"DiscordKt: ${versions.library}\n" +
74+
"Kord: ${versions.kord}\n" +
7275
"Kotlin: $kotlinVersion" +
73-
"```"
76+
"```"
7477
}
7578
field {
7679
name = "Uptime"

src/main/kotlin/me/ddivad/judgebot/arguments/GuildConfigArg.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package me.ddivad.judgebot.arguments
22

33
import me.jakejmattson.discordkt.api.arguments.*
4-
import me.jakejmattson.discordkt.api.dsl.CommandEvent
4+
import me.jakejmattson.discordkt.api.commands.CommandEvent
55

66
val validConfigParameters = mutableListOf(
77
"setPrefix",
@@ -23,7 +23,7 @@ val validConfigParameters = mutableListOf(
2323
"options"
2424
)
2525

26-
open class GuildConfigArg(override val name: String = "GuildConfig") : ArgumentType<String> {
26+
open class GuildConfigArg(override val name: String = "GuildConfig") : Argument<String> {
2727
override val description = "A Guild configuration"
2828

2929
companion object : GuildConfigArg()

src/main/kotlin/me/ddivad/judgebot/arguments/LowerMemberArg.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package me.ddivad.judgebot.arguments
22

33
import dev.kord.core.entity.Member
44
import me.jakejmattson.discordkt.api.arguments.*
5-
import me.jakejmattson.discordkt.api.dsl.CommandEvent
5+
import me.jakejmattson.discordkt.api.commands.CommandEvent
6+
import me.jakejmattson.discordkt.api.extensions.isSelf
67
import me.jakejmattson.discordkt.api.extensions.toSnowflakeOrNull
78

8-
open class LowerMemberArg(override val name: String = "LowerMemberArg") : ArgumentType<Member> {
9+
open class LowerMemberArg(override val name: String = "LowerMemberArg") : Argument<Member> {
910
companion object : LowerMemberArg()
1011

1112
override val description = "A Member with a lower rank"
@@ -19,8 +20,9 @@ open class LowerMemberArg(override val name: String = "LowerMemberArg") : Argume
1920
val author = event.author.asMember(event.guild!!.id)
2021

2122
return when {
22-
event.discord.permissions.isHigherLevel(event.discord, member, author) ->
23+
event.discord.permissions.isHigherLevel(event.discord, member, author) || event.author.isSelf() ->
2324
Error("You don't have the permission to use this command on the target user.")
25+
event.author == member -> Error("You can't use this command on yourself!")
2426
else -> Success(member)
2527
}
2628
}

src/main/kotlin/me/ddivad/judgebot/arguments/LowerUserArg.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ package me.ddivad.judgebot.arguments
22

33
import dev.kord.core.entity.User
44
import me.jakejmattson.discordkt.api.arguments.*
5-
import me.jakejmattson.discordkt.api.dsl.CommandEvent
5+
import me.jakejmattson.discordkt.api.commands.CommandEvent
6+
import me.jakejmattson.discordkt.api.extensions.isSelf
67
import me.jakejmattson.discordkt.api.extensions.toSnowflakeOrNull
78

8-
open class LowerUserArg(override val name: String = "LowerUserArg") : ArgumentType<User> {
9+
open class LowerUserArg(override val name: String = "LowerUserArg") : Argument<User> {
910
companion object : LowerUserArg()
1011

1112
override val description = "A user with a lower rank"
@@ -20,9 +21,12 @@ open class LowerUserArg(override val name: String = "LowerUserArg") : ArgumentTy
2021
val author = event.author.asMember(event.guild!!.id)
2122

2223
return when {
23-
event.discord.permissions.isHigherLevel(event.discord, member, author) ->
24+
event.discord.permissions.isHigherLevel(event.discord, member, author) || event.author.isSelf() ->
2425
Error("You don't have the permission to use this command on the target user.")
26+
event.author == member -> Error("You can't use this command on yourself!")
2527
else -> Success(member.asUser())
2628
}
2729
}
30+
31+
override fun formatData(data: User) = "@${data.tag}"
2832
}

src/main/kotlin/me/ddivad/judgebot/arguments/RuleArg.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import dev.kord.core.entity.Guild
44
import me.ddivad.judgebot.dataclasses.Rule
55
import me.ddivad.judgebot.services.DatabaseService
66
import me.jakejmattson.discordkt.api.arguments.*
7-
import me.jakejmattson.discordkt.api.dsl.CommandEvent
7+
import me.jakejmattson.discordkt.api.commands.CommandEvent
88

9-
open class RuleArg(override val name: String = "Rule") : ArgumentType<Rule> {
9+
open class RuleArg(override val name: String = "Rule") : Argument<Rule> {
1010
override val description = "A rule number"
1111

1212
override suspend fun generateExamples(event: CommandEvent<*>): List<String> = mutableListOf("1", "2", "3")

src/main/kotlin/me/ddivad/judgebot/commands/GuildCommands.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ import me.ddivad.judgebot.dataclasses.Permissions
88
import me.ddivad.judgebot.embeds.createActivePunishmentsEmbed
99
import me.ddivad.judgebot.services.DatabaseService
1010
import me.ddivad.judgebot.services.infractions.MuteService
11-
import me.jakejmattson.discordkt.api.dsl.commands
11+
import me.jakejmattson.discordkt.api.commands.commands
1212

13+
@Suppress("unused")
1314
fun guildConfigCommands(configuration: Configuration,
1415
databaseService: DatabaseService,
1516
muteService: MuteService) = commands("Guild") {

src/main/kotlin/me/ddivad/judgebot/commands/InfoCommands.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import me.ddivad.judgebot.extensions.testDmStatus
1111
import me.ddivad.judgebot.services.DatabaseService
1212
import me.jakejmattson.discordkt.api.arguments.EveryArg
1313
import me.jakejmattson.discordkt.api.arguments.IntegerArg
14-
import me.jakejmattson.discordkt.api.dsl.commands
14+
import me.jakejmattson.discordkt.api.commands.commands
1515
import me.jakejmattson.discordkt.api.extensions.sendPrivateMessage
1616

1717
@Suppress("unused")

src/main/kotlin/me/ddivad/judgebot/commands/InfractionCommands.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.ddivad.judgebot.commands
22

3+
import dev.kord.common.annotation.KordPreview
34
import me.ddivad.judgebot.arguments.LowerUserArg
45
import dev.kord.common.exception.RequestException
56
import dev.kord.core.behavior.reply
@@ -19,9 +20,10 @@ import me.ddivad.judgebot.services.infractions.InfractionService
1920
import me.jakejmattson.discordkt.api.arguments.BooleanArg
2021
import me.jakejmattson.discordkt.api.arguments.EveryArg
2122
import me.jakejmattson.discordkt.api.arguments.IntegerArg
23+
import me.jakejmattson.discordkt.api.commands.commands
2224
import me.jakejmattson.discordkt.api.conversations.ConversationResult
23-
import me.jakejmattson.discordkt.api.dsl.commands
2425

26+
@KordPreview
2527
@Suppress("unused")
2628
fun createInfractionCommands(databaseService: DatabaseService,
2729
config: Configuration,

src/main/kotlin/me/ddivad/judgebot/commands/MuteCommands.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import me.ddivad.judgebot.services.infractions.RoleState
1111
import me.ddivad.judgebot.util.timeToString
1212
import me.jakejmattson.discordkt.api.arguments.EveryArg
1313
import me.jakejmattson.discordkt.api.arguments.TimeArg
14-
import me.jakejmattson.discordkt.api.dsl.commands
14+
import me.jakejmattson.discordkt.api.commands.commands
1515
import kotlin.math.roundToLong
1616

1717
@Suppress("unused")

src/main/kotlin/me/ddivad/judgebot/commands/NoteCommands.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import me.ddivad.judgebot.services.DatabaseService
66
import me.jakejmattson.discordkt.api.arguments.EveryArg
77
import me.jakejmattson.discordkt.api.arguments.IntegerArg
88
import me.jakejmattson.discordkt.api.arguments.UserArg
9-
import me.jakejmattson.discordkt.api.dsl.commands
9+
import me.jakejmattson.discordkt.api.commands.commands
1010

1111
@Suppress("unused")
1212
fun noteCommands(databaseService: DatabaseService) = commands("Note") {

src/main/kotlin/me/ddivad/judgebot/commands/RuleCommands.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ import me.ddivad.judgebot.embeds.createRulesEmbed
1212
import me.ddivad.judgebot.embeds.createRulesEmbedDetailed
1313
import me.ddivad.judgebot.services.DatabaseService
1414
import me.jakejmattson.discordkt.api.arguments.MessageArg
15-
import me.jakejmattson.discordkt.api.dsl.commands
15+
import me.jakejmattson.discordkt.api.commands.commands
1616
import me.jakejmattson.discordkt.api.extensions.jumpLink
1717

1818
@Suppress("unused")
19-
fun ruleCommands(configuration: Configuration,
20-
databaseService: DatabaseService) = commands("Rule") {
19+
fun ruleCommands(databaseService: DatabaseService) = commands("Rule") {
2120

2221
guildCommand("addRule") {
2322
description = "Add a rule to this guild."
@@ -55,7 +54,7 @@ fun ruleCommands(configuration: Configuration,
5554
execute(MessageArg.optionalNullable(null)) {
5655
val messageToEdit = args.first
5756
if (messageToEdit != null) {
58-
messageToEdit.edit { this.embed { createRulesEmbed(guild, databaseService.guilds.getRules(guild)) } }
57+
messageToEdit.edit { this.embeds?.first()?.createRulesEmbed(guild, databaseService.guilds.getRules(guild)) }
5958
respond("Existing embed updated: ${messageToEdit.jumpLink()}")
6059
} else {
6160
respond {
@@ -71,7 +70,7 @@ fun ruleCommands(configuration: Configuration,
7170
execute(MessageArg.optionalNullable(null)) {
7271
val messageToEdit = args.first
7372
if (messageToEdit != null) {
74-
messageToEdit.edit { this.embed { createRulesEmbedDetailed(guild, databaseService.guilds.getRules(guild)) } }
73+
messageToEdit.edit { embeds?.first()?.createRulesEmbedDetailed(guild, databaseService.guilds.getRules(guild))}
7574
respond("Existing embed updated: ${messageToEdit.jumpLink()}")
7675
} else {
7776
respond {

src/main/kotlin/me/ddivad/judgebot/commands/UserCommands.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import me.ddivad.judgebot.services.DatabaseService
1515
import me.ddivad.judgebot.services.LoggingService
1616
import me.ddivad.judgebot.services.infractions.BanService
1717
import me.jakejmattson.discordkt.api.arguments.*
18-
import me.jakejmattson.discordkt.api.dsl.commands
18+
import me.jakejmattson.discordkt.api.commands.commands
1919
import me.jakejmattson.discordkt.api.extensions.mutualGuilds
2020
import me.jakejmattson.discordkt.api.extensions.sendPrivateMessage
2121
import java.awt.Color
@@ -33,7 +33,6 @@ fun createUserCommands(
3333
execute(UserArg) {
3434
val user = databaseService.users.getOrCreateUser(args.first, guild)
3535
databaseService.users.incrementUserHistory(user, guild)
36-
val linkedAccounts = user.getLinkedAccounts(guild)
3736
respondMenu {
3837
createHistoryEmbed(args.first, user, guild, config, databaseService)
3938
}
@@ -148,7 +147,7 @@ fun createUserCommands(
148147
user.sendPrivateMessage {
149148
createSelfHistoryEmbed(user, guildMember, currentGuild, config)
150149
}
151-
this.message.addReaction(Emojis.whiteCheckMark)
150+
this.message?.addReaction(Emojis.whiteCheckMark)
152151
} else {
153152
guildChoiceConversation(mutualGuilds, config).startPrivately(discord, author)
154153
}

src/main/kotlin/me/ddivad/judgebot/commands/UtilityCommands.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ package me.ddivad.judgebot.commands
33
import me.ddivad.judgebot.dataclasses.Permissions
44
import me.ddivad.judgebot.services.HelpService
55
import me.jakejmattson.discordkt.api.arguments.AnyArg
6-
import me.jakejmattson.discordkt.api.arguments.CommandArg
7-
import me.jakejmattson.discordkt.api.dsl.commands
6+
import me.jakejmattson.discordkt.api.commands.commands
87

98
@Suppress("unused")
109
fun createInformationCommands(helpService: HelpService) = commands("Utility") {

src/main/kotlin/me/ddivad/judgebot/conversations/GuildChoiceConversation.kt

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import dev.kord.core.entity.Guild
55
import me.ddivad.judgebot.dataclasses.Configuration
66
import me.ddivad.judgebot.embeds.createSelfHistoryEmbed
77
import me.ddivad.judgebot.services.DatabaseService
8-
import me.jakejmattson.discordkt.api.arguments.IntegerRangeArg
98
import me.jakejmattson.discordkt.api.conversations.conversation
109
import java.awt.Color
1110

@@ -14,21 +13,25 @@ fun guildChoiceConversation(
1413
configuration: Configuration
1514
) = conversation {
1615
val databaseService = discord.getInjectionObjects(DatabaseService::class)
17-
val guildIndex = promptEmbed(IntegerRangeArg(1, guilds.size)) {
18-
title = "Select Server"
19-
description = "Respond with the server you want to view your history for."
20-
thumbnail {
21-
url = discord.kord.getSelf().avatar.url
16+
val guild = promptButton<Guild> {
17+
embed {
18+
color = Color.MAGENTA.kColor
19+
title = "Select Server"
20+
description = "Select the server you to view history for."
21+
thumbnail {
22+
url = discord.kord.getSelf().avatar.url
23+
}
2224
}
23-
color = Color.MAGENTA.kColor
24-
guilds.toList().forEachIndexed { index, guild ->
25-
field {
26-
name = "${index + 1}) ${guild.name}"
25+
26+
guilds.toList().chunked(5).forEach { row ->
27+
buttons {
28+
row.forEach { guild ->
29+
button(guild.name, null, guild)
30+
}
2731
}
2832
}
29-
} - 1
33+
}
3034

31-
val guild = guilds[guildIndex]
3235
val guildMember = databaseService.users.getOrCreateUser(user, guild)
3336

3437
respond {

src/main/kotlin/me/ddivad/judgebot/conversations/InfractionConversation.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.ddivad.judgebot.conversations
22

3+
import dev.kord.common.annotation.KordPreview
34
import dev.kord.common.entity.ButtonStyle
45
import dev.kord.core.entity.Guild
56
import dev.kord.core.entity.Member
@@ -10,6 +11,7 @@ import me.ddivad.judgebot.services.DatabaseService
1011
import me.ddivad.judgebot.services.infractions.InfractionService
1112
import me.jakejmattson.discordkt.api.conversations.conversation
1213

14+
@KordPreview
1315
class InfractionConversation(
1416
private val databaseService: DatabaseService,
1517
private val configuration: Configuration,

0 commit comments

Comments
 (0)