Skip to content

Commit da0e4e6

Browse files
authored
Merge pull request #124 from the-programmers-hangout/develop
release: merge develop for 2.6.0
2 parents 54ceac1 + e9f05ac commit da0e4e6

File tree

6 files changed

+56
-19
lines changed

6 files changed

+56
-19
lines changed

commands.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@
6969
| whatpfp | User | Perform a reverse image search of a User's profile picture |
7070

7171
## Utility
72-
| Commands | Arguments | Description |
73-
| -------- | --------- | ------------------------- |
74-
| help | [Command] | Display help information. |
72+
| Commands | Arguments | Description |
73+
| -------- | --------- | ---------------------------------------- |
74+
| help | [Command] | Display help information. |
75+
| report | Message | Flag a message for moderators to review. |
7576

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ suspend fun main() {
7070
field {
7171
name = "Build Info"
7272
value = "```" +
73-
"Version: 2.5.1\n" +
73+
"Version: 2.6.0\n" +
7474
"DiscordKt: ${versions.library}\n" +
7575
"Kord: ${versions.kord}\n" +
7676
"Kotlin: $kotlinVersion" +

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ fun createUserCommands(
7979
requiredPermission = Permissions.STAFF
8080
execute(LowerUserArg, IntegerArg("Delete message days").optional(0), EveryArg) {
8181
val (target, deleteDays, reason) = args
82+
if (deleteDays > 7) {
83+
respond("Delete days cannot be more than **7**. You tried with **${deleteDays}**")
84+
return@execute
85+
}
8286
val ban = Punishment(target.id.asString, InfractionType.Ban, reason, author.id.asString)
8387
banService.banUser(target, guild, ban, deleteDays).also {
8488
loggingService.userBanned(guild, target, ban)

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

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

3+
import dev.kord.core.behavior.getChannelOf
4+
import dev.kord.core.entity.channel.TextChannel
5+
import dev.kord.x.emoji.Emojis
6+
import dev.kord.x.emoji.addReaction
7+
import me.ddivad.judgebot.dataclasses.Configuration
38
import me.ddivad.judgebot.dataclasses.Permissions
49
import me.ddivad.judgebot.services.HelpService
10+
import me.ddivad.judgebot.util.createFlagMessage
511
import me.jakejmattson.discordkt.api.arguments.AnyArg
12+
import me.jakejmattson.discordkt.api.arguments.MessageArg
613
import me.jakejmattson.discordkt.api.commands.commands
14+
import me.jakejmattson.discordkt.api.extensions.toSnowflake
715

816
@Suppress("unused")
9-
fun createInformationCommands(helpService: HelpService) = commands("Utility") {
17+
fun createInformationCommands(helpService: HelpService, configuration: Configuration) = commands("Utility") {
1018
command("help") {
1119
description = "Display help information."
1220
requiredPermission = Permissions.NONE
@@ -22,4 +30,19 @@ fun createInformationCommands(helpService: HelpService) = commands("Utility") {
2230
}
2331
}
2432
}
33+
34+
slash("report", "Report Message") {
35+
description = "Flag a message for moderators to review."
36+
requiredPermission = Permissions.NONE
37+
execute(MessageArg) {
38+
val guild = guild ?: return@execute
39+
val guildConfiguration = configuration[guild.asGuild().id.value] ?: return@execute
40+
41+
guild.getChannelOf<TextChannel>(guildConfiguration.loggingConfiguration.alertChannel.toSnowflake())
42+
.createMessage(createFlagMessage(author, args.first, channel))
43+
.addReaction(Emojis.question)
44+
45+
respond("Message flagged successfully, thanks!")
46+
}
47+
}
2548
}

src/main/kotlin/me/ddivad/judgebot/listeners/MemberReactionListeners.kt

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

3-
import dev.kord.common.entity.ChannelType
43
import dev.kord.core.behavior.getChannelOf
54
import dev.kord.core.entity.channel.TextChannel
6-
import dev.kord.core.entity.channel.thread.ThreadChannel
75
import dev.kord.core.event.message.ReactionAddEvent
86
import dev.kord.x.emoji.Emojis
97
import dev.kord.x.emoji.addReaction
108
import me.ddivad.judgebot.dataclasses.Configuration
9+
import me.ddivad.judgebot.util.createFlagMessage
1110
import me.jakejmattson.discordkt.api.dsl.listeners
12-
import me.jakejmattson.discordkt.api.extensions.jumpLink
1311
import me.jakejmattson.discordkt.api.extensions.toSnowflake
1412

1513
@Suppress("unused")
@@ -23,20 +21,10 @@ fun onMemberReactionAdd(configuration: Configuration) = listeners {
2321
guildConfiguration.reactions.flagMessageReaction -> {
2422
message.deleteReaction(this.emoji)
2523
val channel = message.getChannel()
26-
val isThread = channel.type in setOf(ChannelType.PublicGuildThread, ChannelType.PrivateThread)
2724
guild.asGuild()
2825
.getChannelOf<TextChannel>(guildConfiguration.loggingConfiguration.alertChannel.toSnowflake())
2926
.asChannel()
30-
.createMessage(
31-
"**Message Flagged**" +
32-
"\n**User**: ${user.mention}" +
33-
(if (isThread)
34-
"\n**Thread**: ${channel.mention} (${(channel as? ThreadChannel)?.parent?.mention})"
35-
else
36-
"\n**Channel**: ${channel.mention}") +
37-
"\n**Author:** ${message.asMessage().author?.mention}" +
38-
"\n**Message:** ${message.asMessage().jumpLink()}"
39-
)
27+
.createMessage(createFlagMessage(user.asUser(), message.asMessage(), channel))
4028
.addReaction(Emojis.question)
4129
}
4230
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package me.ddivad.judgebot.util
2+
3+
import dev.kord.common.entity.ChannelType
4+
import dev.kord.core.entity.Message
5+
import dev.kord.core.entity.User
6+
import dev.kord.core.entity.channel.MessageChannel
7+
import dev.kord.core.entity.channel.thread.ThreadChannel
8+
import me.jakejmattson.discordkt.api.extensions.jumpLink
9+
10+
suspend fun createFlagMessage(user: User, message: Message, channel: MessageChannel): String {
11+
val isThread = channel.type in setOf(ChannelType.PublicGuildThread, ChannelType.PrivateThread)
12+
13+
return "**Message Flagged**" +
14+
"\n**User**: ${user.mention}" +
15+
(if (isThread)
16+
"\n**Thread**: ${channel.mention} (${(channel as? ThreadChannel)?.parent?.mention})"
17+
else
18+
"\n**Channel**: ${channel.mention}") +
19+
"\n**Author:** ${message.author?.mention}" +
20+
"\n**Message:** ${message.jumpLink()}"
21+
}

0 commit comments

Comments
 (0)