Skip to content

Commit

Permalink
feat: update to latest discordkt snapshot
Browse files Browse the repository at this point in the history
  • Loading branch information
ddivad195 committed Oct 7, 2021
1 parent 67f1457 commit f3bc2a9
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 24 deletions.
5 changes: 3 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ version = Versions.BOT
description = "discordKt starter template"

plugins {
kotlin("jvm") version "1.5.10"
kotlin("jvm") version "1.5.31"
kotlin("plugin.serialization") version "1.5.31"
id("com.github.johnrengelman.shadow") version "7.0.0"
}

Expand Down Expand Up @@ -33,5 +34,5 @@ tasks {

object Versions {
const val BOT = "1.0.0"
const val DISCORDKT = "0.22.0-SNAPSHOT"
const val DISCORDKT = "0.23.0-SNAPSHOT"
}
2 changes: 1 addition & 1 deletion commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
## Configuration
| Commands | Arguments | Description |
| ------------ | --------- | ---------------------------------- |
| configure | | Configure a guild to use this bot. |
| setadminrole | Role | Set the bot admin role. |
| setprefix | Text | Set the bot prefix. |
| setstaffrole | Role | Set the bot staff role. |
| setup | | Configure a guild to use this bot. |

## Utility
| Commands | Arguments | Description |
Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/me/ddivad/starter/Main.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ suspend fun main() {
require(token != null) { "Expected the bot token as an environment variable" }

bot(token) {
prefix {
val configuration = discord.getInjectionObjects(Configuration::class)
val configuration = data("config/config.json") { Configuration() }

prefix {
guild?.let { configuration[it.id]?.prefix } ?: prefix
}

Expand All @@ -38,7 +38,7 @@ suspend fun main() {
val channel = it.channel
val self = channel.kord.getSelf()

color = it.discord.configuration.theme?.kColor
color = it.discord.configuration.theme

thumbnail {
url = self.avatar.url
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import me.ddivad.starter.dataclasses.Configuration
import me.ddivad.starter.dataclasses.Permissions
import me.jakejmattson.discordkt.api.arguments.EveryArg
import me.jakejmattson.discordkt.api.arguments.RoleArg
import me.jakejmattson.discordkt.api.dsl.commands
import me.jakejmattson.discordkt.api.commands.commands

@Suppress("unused")
fun guildConfigCommands(configuration: Configuration) = commands("Configuration") {
guildCommand("configure") {
command("setup") {
description = "Configure a guild to use this bot."
requiredPermission = Permissions.ADMINISTRATOR
execute {
Expand All @@ -24,7 +24,7 @@ fun guildConfigCommands(configuration: Configuration) = commands("Configuration"
}
}

guildCommand("setprefix") {
command("setprefix") {
description = "Set the bot prefix."
requiredPermission = Permissions.ADMINISTRATOR
execute(EveryArg) {
Expand All @@ -39,7 +39,7 @@ fun guildConfigCommands(configuration: Configuration) = commands("Configuration"
}
}

guildCommand("setstaffrole") {
command("setstaffrole") {
description = "Set the bot staff role."
requiredPermission = Permissions.ADMINISTRATOR
execute(RoleArg) {
Expand All @@ -54,7 +54,7 @@ fun guildConfigCommands(configuration: Configuration) = commands("Configuration"
}
}

guildCommand("setadminrole") {
command("setadminrole") {
description = "Set the bot admin role."
requiredPermission = Permissions.ADMINISTRATOR
execute(RoleArg) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import dev.kord.common.annotation.KordPreview
import me.ddivad.starter.dataclasses.Permissions
import me.ddivad.starter.services.HelpService
import me.jakejmattson.discordkt.api.arguments.AnyArg
import me.jakejmattson.discordkt.api.dsl.commands
import me.jakejmattson.discordkt.api.commands.commands

@KordPreview
@Suppress("unused")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import me.jakejmattson.discordkt.api.conversations.conversation

class ConfigurationConversation(private val configuration: Configuration) {
fun createConfigurationConversation(guild: Guild) = conversation {
val prefix = promptMessage(EveryArg, "Bot prefix:")
val adminRole = promptMessage(RoleArg, "Admin role:")
val staffRole = promptMessage(RoleArg, "Staff role:")
val prefix = prompt(EveryArg, "Bot prefix:")
val adminRole = prompt(RoleArg, "Admin role:")
val staffRole = prompt(RoleArg, "Staff role:")

configuration.setup(guild, prefix, adminRole, staffRole)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ package me.ddivad.starter.dataclasses
import dev.kord.common.entity.Snowflake
import dev.kord.core.entity.Guild
import dev.kord.core.entity.Role
import kotlinx.serialization.Serializable
import me.jakejmattson.discordkt.api.dsl.Data

@Serializable
data class Configuration(
val ownerId: String = "insert-owner-id",
var prefix: String = "++",
val guildConfigurations: MutableMap<Long, GuildConfiguration> = mutableMapOf()
) : Data("config/config.json") {
) : Data() {
operator fun get(id: Snowflake) = guildConfigurations[id.value]
fun hasGuildConfig(guildId: Snowflake) = guildConfigurations.containsKey(guildId.value)

Expand All @@ -27,6 +29,7 @@ data class Configuration(
}
}

@Serializable
data class GuildConfiguration(
val id: Long,
var prefix: String = "++",
Expand Down
15 changes: 7 additions & 8 deletions src/main/kotlin/me/ddivad/starter/services/HelpService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@ package me.ddivad.starter.services

import dev.kord.common.annotation.KordPreview
import dev.kord.common.entity.ButtonStyle
import dev.kord.common.kColor
import dev.kord.x.emoji.DiscordEmoji
import dev.kord.x.emoji.Emojis
import kotlinx.coroutines.runBlocking
import me.jakejmattson.discordkt.api.annotations.Service
import me.jakejmattson.discordkt.api.arguments.ArgumentType
import me.jakejmattson.discordkt.api.arguments.Argument
import me.jakejmattson.discordkt.api.arguments.OptionalArg
import me.jakejmattson.discordkt.api.dsl.Command
import me.jakejmattson.discordkt.api.dsl.CommandEvent
import me.jakejmattson.discordkt.api.dsl.Execution
import me.jakejmattson.discordkt.api.commands.Command
import me.jakejmattson.discordkt.api.commands.CommandEvent
import me.jakejmattson.discordkt.api.commands.Execution

@KordPreview
@Service
Expand Down Expand Up @@ -48,7 +47,7 @@ class HelpService {
Use `${event.prefix()}help` <command> for more information
""".trimIndent()
color = event.discord.configuration.theme?.kColor
color = event.discord.configuration.theme

field {
name = "**Commands**"
Expand Down Expand Up @@ -79,7 +78,7 @@ class HelpService {
}

suspend fun sendHelpEmbed(event: CommandEvent<*>, command: Command) = event.respond {
color = event.discord.configuration.theme?.kColor
color = event.discord.configuration.theme
title = command.names.joinToString(", ")
description = command.description

Expand All @@ -99,7 +98,7 @@ class HelpService {
}
}

private fun ArgumentType<*>.generateExample(event: CommandEvent<*>) =
private fun Argument<*>.generateExample(event: CommandEvent<*>) =
runBlocking { generateExamples(event) }
.takeIf { it.isNotEmpty() }
?.random()
Expand Down

0 comments on commit f3bc2a9

Please sign in to comment.