Skip to content

Commit 7d35aba

Browse files
committed
feat: simplify strike conversation
1 parent fe3bcd7 commit 7d35aba

18 files changed

+26
-38
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ import me.jakejmattson.discordkt.api.arguments.EveryArg
1616
import me.jakejmattson.discordkt.api.arguments.IntegerArg
1717
import me.jakejmattson.discordkt.api.dsl.commands
1818

19-
fun createInfractonCommands(databaseService: DatabaseService,
19+
@Suppress("unused")
20+
fun createInfractionCommands(databaseService: DatabaseService,
2021
config: Configuration,
2122
infractionService: InfractionService,
2223
badPfpService: BadPfpService) = commands("Infraction") {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package me.ddivad.judgebot.commands
22

33
import com.gitlab.kordlib.common.exception.RequestException
44
import me.ddivad.judgebot.arguments.LowerMemberArg
5-
import me.ddivad.judgebot.dataclasses.InfractionType
65
import me.ddivad.judgebot.extensions.testDmStatus
76
import me.ddivad.judgebot.services.*
87
import me.ddivad.judgebot.services.infractions.MuteService
@@ -13,6 +12,7 @@ import me.jakejmattson.discordkt.api.arguments.TimeArg
1312
import me.jakejmattson.discordkt.api.dsl.commands
1413
import kotlin.math.roundToLong
1514

15+
@Suppress("unused")
1616
fun createMuteCommands(muteService: MuteService) = commands("Mute") {
1717
guildCommand("mute") {
1818
description = "Mute a user for a specified time."

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
package me.ddivad.judgebot.commands
22

33
import me.ddivad.judgebot.arguments.LowerMemberArg
4-
import me.ddivad.judgebot.dataclasses.Configuration
54
import me.ddivad.judgebot.services.DatabaseService
65
import me.ddivad.judgebot.services.PermissionLevel
76
import me.ddivad.judgebot.services.requiredPermissionLevel
87
import me.jakejmattson.discordkt.api.arguments.EveryArg
98
import me.jakejmattson.discordkt.api.arguments.IntegerArg
10-
import me.jakejmattson.discordkt.api.arguments.MemberArg
119
import me.jakejmattson.discordkt.api.arguments.UserArg
1210
import me.jakejmattson.discordkt.api.dsl.commands
1311

12+
@Suppress("unused")
1413
fun noteCommands(databaseService: DatabaseService) = commands("Notes") {
1514
guildCommand("note") {
1615
description = "Use this to add a note to a user."

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ import me.ddivad.judgebot.conversations.rules.ArchiveRuleConversation
66
import me.ddivad.judgebot.conversations.rules.EditRuleConversation
77
import me.ddivad.judgebot.dataclasses.Configuration
88
import me.ddivad.judgebot.embeds.createRuleEmbed
9-
import me.ddivad.judgebot.embeds.createRuleEmbedForStrike
109
import me.ddivad.judgebot.embeds.createRulesEmbed
1110
import me.ddivad.judgebot.embeds.createRulesEmbedDetailed
1211
import me.ddivad.judgebot.services.DatabaseService
1312
import me.ddivad.judgebot.services.PermissionLevel
1413
import me.ddivad.judgebot.services.requiredPermissionLevel
1514
import me.jakejmattson.discordkt.api.dsl.commands
1615

16+
@Suppress("unused")
1717
fun ruleCommands(configuration: Configuration,
1818
databaseService: DatabaseService) = commands("Rules") {
1919

@@ -62,7 +62,7 @@ fun ruleCommands(configuration: Configuration,
6262
requiredPermissionLevel = PermissionLevel.Staff
6363
execute {
6464
respond {
65-
createRulesEmbedDetailed(guild, databaseService.guilds.getRules(guild)!!)
65+
createRulesEmbedDetailed(guild, databaseService.guilds.getRules(guild))
6666
}
6767
}
6868
}

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

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

3-
import com.gitlab.kordlib.common.exception.RequestException
4-
import com.gitlab.kordlib.core.behavior.ban
5-
import com.gitlab.kordlib.core.entity.User
63
import me.ddivad.judgebot.arguments.LowerMemberArg
74
import me.ddivad.judgebot.dataclasses.*
85
import me.ddivad.judgebot.embeds.createHistoryEmbed
@@ -16,12 +13,12 @@ import me.ddivad.judgebot.services.infractions.BanService
1613
import me.ddivad.judgebot.services.requiredPermissionLevel
1714
import me.jakejmattson.discordkt.api.arguments.EveryArg
1815
import me.jakejmattson.discordkt.api.arguments.IntegerArg
19-
import me.jakejmattson.discordkt.api.arguments.MemberArg
2016
import me.jakejmattson.discordkt.api.arguments.UserArg
2117
import me.jakejmattson.discordkt.api.dsl.commands
2218
import me.jakejmattson.discordkt.api.extensions.sendPrivateMessage
2319
import java.awt.Color
2420

21+
@Suppress("unused")
2522
fun createUserCommands(databaseService: DatabaseService,
2623
config: Configuration,
2724
loggingService: LoggingService,

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

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

33
import com.gitlab.kordlib.core.entity.Guild
44
import com.gitlab.kordlib.core.entity.Member
5-
import me.ddivad.judgebot.arguments.RuleArg
65
import me.ddivad.judgebot.dataclasses.*
76
import me.ddivad.judgebot.embeds.createHistoryEmbed
87
import me.ddivad.judgebot.embeds.createRuleEmbedForStrike
98
import me.ddivad.judgebot.services.DatabaseService
109
import me.ddivad.judgebot.services.infractions.InfractionService
11-
import me.ddivad.judgebot.util.timeToString
12-
import me.jakejmattson.discordkt.api.arguments.BooleanArg
13-
import me.jakejmattson.discordkt.api.dsl.Conversation
10+
import me.jakejmattson.discordkt.api.arguments.IntegerArg
1411
import me.jakejmattson.discordkt.api.dsl.conversation
15-
import me.jakejmattson.discordkt.api.extensions.sendPrivateMessage
1612

1713
class StrikeConversation(private val databaseService: DatabaseService,
1814
private val configuration: Configuration,
@@ -21,14 +17,13 @@ class StrikeConversation(private val databaseService: DatabaseService,
2117
val guildConfiguration = configuration[guild.id.longValue] ?: return@conversation
2218
val user = databaseService.users.getOrCreateUser(targetUser, guild)
2319
val points = weight * guildConfiguration.infractionConfiguration.strikePoints
24-
val addRule = promptMessage(BooleanArg("Add Rule", "y", "n"), "Add rule? (y/n)")
25-
val rule = if (addRule) {
26-
val rules = databaseService.guilds.getRules(guild)
20+
val rules = databaseService.guilds.getRules(guild)
21+
val ruleId = if (rules.isNotEmpty()) {
2722
respond { createRuleEmbedForStrike(guild, rules) }
28-
promptMessage(RuleArg, "Enter rule number: ").number
23+
val rule = promptMessage(IntegerArg, "Enter `0` for no rule, or rule id to add a rule:")
24+
if (rule > 0) rule else null
2925
} else null
30-
val infraction = Infraction(this.user.id.value, infractionReason, InfractionType.Strike, points, rule)
31-
26+
val infraction = Infraction(this.user.id.value, infractionReason, InfractionType.Strike, points, ruleId)
3227
infractionService.infract(targetUser, guild, user, infraction)
3328
respondMenu { createHistoryEmbed(targetUser, user, guild, configuration, databaseService) }
3429
}

src/main/kotlin/me/ddivad/judgebot/conversations/rules/AddRuleConversation.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class AddRuleConversation(private val configuration: Configuration,
1414
private val databaseService: DatabaseService) {
1515
fun createAddRuleConversation(guild: Guild) = conversation("cancel") {
1616
val rules = databaseService.guilds.getRules(guild)
17-
val nextId = rules?.size?.plus(1)!!
17+
val nextId = rules.size.plus(1)
1818

1919
val ruleName = promptMessage(EveryArg, "Please enter rule name:")
2020
val ruleText = promptMessage(EveryArg, "Please enter rule text")

src/main/kotlin/me/ddivad/judgebot/conversations/rules/EditRuleConversation.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class EditRuleConversation(private val configuration: Configuration,
1616
fun createAddRuleConversation(guild: Guild) = conversation("cancel") {
1717
val rules = databaseService.guilds.getRules(guild)
1818
val ruleNumberToUpdate = promptMessage(IntegerArg, "Which rule would you like to update?")
19-
val ruleToUpdate = rules?.find { it.number == ruleNumberToUpdate } ?: return@conversation
19+
val ruleToUpdate = rules.find { it.number == ruleNumberToUpdate } ?: return@conversation
2020
respond("Current Rule:")
2121
respond {
2222
createRuleEmbed(guild, ruleToUpdate)
@@ -28,10 +28,10 @@ class EditRuleConversation(private val configuration: Configuration,
2828
updateNumber -> promptUntil(
2929
argumentType = IntegerArg,
3030
prompt = "Please enter rule number:",
31-
isValid = { number -> !rules?.any { it.number == number } },
31+
isValid = { number -> !rules.any { it.number == number } },
3232
error = "Rule with that number already exists"
3333
)
34-
else -> ruleToUpdate!!.number
34+
else -> ruleToUpdate.number
3535
}
3636
val updateName = promptMessage(BooleanArg(truthValue = "y", falseValue = "n"),
3737
"Update Rule name? (Y/N)")
@@ -40,7 +40,7 @@ class EditRuleConversation(private val configuration: Configuration,
4040
EveryArg,
4141
"Please enter rule name:",
4242
"Rule with that name already exists",
43-
isValid = { name -> !rules?.any { it.title == name } }
43+
isValid = { name -> !rules.any { it.title == name } }
4444
)
4545
else -> ruleToUpdate.title
4646
}

src/main/kotlin/me/ddivad/judgebot/dataclasses/GuildInformation.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ data class GuildInformation(
1212
return this
1313
}
1414

15-
fun getRuleById(ruleNumber: Int): Rule? {
16-
return this.rules.firstOrNull { it.number == ruleNumber }
17-
}
18-
1915
fun archiveRule(ruleNumber: Int): GuildInformation {
2016
this.rules.find { it.number == ruleNumber }!!.archived = true
2117
return this

src/main/kotlin/me/ddivad/judgebot/embeds/RuleEmbeds.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import me.ddivad.judgebot.dataclasses.Rule
66
import me.jakejmattson.discordkt.api.extensions.addField
77
import java.awt.Color
88
import com.gitlab.kordlib.rest.Image
9-
import me.ddivad.judgebot.arguments.validConfigParameters
10-
import me.jakejmattson.discordkt.api.dsl.MenuBuilder
119

1210
fun EmbedBuilder.createRuleEmbed(guild: Guild, rule: Rule) {
1311
title = "__${rule.number}: ${rule.title}__"
@@ -43,7 +41,7 @@ fun EmbedBuilder.createRulesEmbed(guild: Guild, rules: List<Rule>) {
4341
}
4442
}
4543

46-
suspend fun EmbedBuilder.createRuleEmbedForStrike(guild: Guild, rules: List<Rule>) {
44+
fun EmbedBuilder.createRuleEmbedForStrike(guild: Guild, rules: List<Rule>) {
4745
title = "**__Available Rules__**"
4846
color = Color.MAGENTA
4947
description = ""

0 commit comments

Comments
 (0)