Skip to content

Commit 7206cf3

Browse files
authored
Merge pull request #72 from the-programmers-hangout/fix/gag-reaction
fix: gag reaction check if a user is already muted
2 parents ef7e2d3 + cc1a59a commit 7206cf3

File tree

3 files changed

+23
-15
lines changed

3 files changed

+23
-15
lines changed

commands.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
| badpfp | (cancel), LowerMemberArg | Notifies the user that they should change their profile pic and applies a 30 minute mute. Bans the user if they don't change picture. |
2424
| cleanse | LowerMemberArg | Use this to delete (permanently) as user's infractions. |
2525
| removeInfraction | LowerMemberArg, Infraction ID | Use this to delete (permanently) an infraction from a user. |
26-
| strike, s | LowerMemberArg, (Weight), Reason | Strike a user. |
27-
| warn, w | LowerMemberArg, Reason | Warn a user. |
26+
| strike, s, S | LowerMemberArg, (Weight), Reason | Strike a user. |
27+
| warn, w, W | LowerMemberArg, Reason | Warn a user. |
2828

2929
## Mute
3030
| Commands | Arguments | Description |
@@ -51,15 +51,15 @@
5151
| rules | (Message) | List the rules of this guild. Pass a message ID to edit existing rules embed. |
5252

5353
## User
54-
| Commands | Arguments | Description |
55-
| ------------ | ----------------------------------------- | ---------------------------------------------------------- |
56-
| ban | LowerUserArg, (Delete message days), Text | Ban a member from this guild. |
57-
| getBanReason | User | Get a ban reason for a banned user |
58-
| history, h | User | Use this to view a user's record. |
59-
| selfHistory | | View your infraction history (contents will be DM'd) |
60-
| setBanReason | User, Reason | Set a ban reason for a banned user |
61-
| unban | User | Unban a banned member from this guild. |
62-
| whatpfp | User | Perform a reverse image search of a User's profile picture |
54+
| Commands | Arguments | Description |
55+
| ------------- | ----------------------------------------- | ---------------------------------------------------------- |
56+
| ban | LowerUserArg, (Delete message days), Text | Ban a member from this guild. |
57+
| getBanReason | User | Get a ban reason for a banned user |
58+
| history, h, H | User | Use this to view a user's record. |
59+
| selfHistory | | View your infraction history (contents will be DM'd) |
60+
| setBanReason | User, Reason | Set a ban reason for a banned user |
61+
| unban | User | Unban a banned member from this guild. |
62+
| whatpfp | User | Perform a reverse image search of a User's profile picture |
6363

6464
## Utility
6565
| Commands | Arguments | Description |

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import me.ddivad.judgebot.services.DatabaseService
1212
import me.ddivad.judgebot.services.PermissionLevel
1313
import me.ddivad.judgebot.services.PermissionsService
1414
import me.ddivad.judgebot.services.infractions.MuteService
15+
import me.ddivad.judgebot.services.infractions.RoleState
1516
import me.jakejmattson.discordkt.api.dsl.listeners
1617
import me.jakejmattson.discordkt.api.extensions.isSelf
1718
import me.jakejmattson.discordkt.api.extensions.sendPrivateMessage
@@ -32,8 +33,13 @@ fun onStaffReactionAdd(muteService: MuteService,
3233
if (permissionsService.hasPermission(member, PermissionLevel.Moderator) && !member.isHigherRankedThan(permissionsService, messageAuthor)) {
3334
when (this.emoji.name) {
3435
guildConfiguration.reactions.gagReaction -> {
36+
val target = messageAuthor.asMember(guild.id)
3537
msg.deleteReaction(this.emoji)
36-
muteService.gag(messageAuthor.asMember(guild.id))
38+
if (muteService.checkRoleState(guild, target) == RoleState.Tracked) {
39+
member.sendPrivateMessage("${messageAuthor.mention} is already muted.")
40+
return@on
41+
}
42+
muteService.gag(target)
3743
member.sendPrivateMessage("${messageAuthor.mention} gagged.")
3844
}
3945
guildConfiguration.reactions.historyReaction -> {

src/main/kotlin/me/ddivad/judgebot/services/infractions/MuteService.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,10 @@ class MuteService(val configuration: Configuration,
4444
suspend fun initGuilds() {
4545
configuration.guildConfigurations.forEach { config ->
4646
val guild = config.value.id.toSnowflake().let { discord.api.getGuild(it) } ?: return@forEach
47-
initialiseMuteTimers(guild)
48-
setupMutedRole(guild)
47+
runBlocking {
48+
initialiseMuteTimers(guild)
49+
setupMutedRole(guild)
50+
}
4951
}
5052
}
5153

@@ -115,8 +117,8 @@ class MuteService(val configuration: Configuration,
115117
removeMute(guild, user)
116118
}
117119
}
118-
loggingService.initialiseMutes(guild, getMutedRole(guild))
119120
}
121+
loggingService.initialiseMutes(guild, getMutedRole(guild))
120122
}
121123

122124
suspend fun handleRejoinMute(guild: Guild, member: Member) {

0 commit comments

Comments
 (0)