@@ -2,6 +2,7 @@ package me.ddivad.judgebot.listeners
22
33import com.gitlab.kordlib.common.exception.RequestException
44import com.gitlab.kordlib.core.event.message.ReactionAddEvent
5+ import me.ddivad.judgebot.arguments.isHigherRankedThan
56import me.ddivad.judgebot.dataclasses.Configuration
67import me.ddivad.judgebot.embeds.createMessageDeleteEmbed
78import me.ddivad.judgebot.embeds.createSelfHistoryEmbed
@@ -21,36 +22,34 @@ fun onStaffReactionAdd(muteService: MuteService,
2122 val guild = guild?.asGuildOrNull() ? : return @on
2223 val guildConfiguration = configuration[guild.asGuild().id.longValue]
2324 if (! guildConfiguration?.reactions!! .enabled) return @on
24-
25- user.asMemberOrNull(guild.id)?.let {
26- if (permissionsService.hasPermission(it, PermissionLevel .Moderator )) {
27- val messageAuthor = message.asMessage().author ? : return @on
28-
29- when (this .emoji.name) {
30- guildConfiguration.reactions.gagReaction -> {
31- message.deleteReaction(this .emoji)
32- muteService.gag(messageAuthor.asMember(guild.id))
33- it.sendPrivateMessage(" ${messageAuthor.mention} gagged." )
34- }
35- guildConfiguration.reactions.historyReaction -> {
36- message.deleteReaction(this .emoji)
37- val target = databaseService.users.getOrCreateUser(messageAuthor, guild.asGuild())
38- it.sendPrivateMessage { createSelfHistoryEmbed(messageAuthor, target, guild.asGuild(), configuration) }
39- }
40- guildConfiguration.reactions.deleteMessageReaction -> {
41- val content = message.asMessage()
42- message.deleteReaction(this .emoji)
43- message.delete()
44- try {
45- messageAuthor.sendPrivateMessage {
46- createMessageDeleteEmbed(guild, content)
47- }
48- } catch (ex: RequestException ) {
49- this .user.sendPrivateMessage(" User ${messageAuthor.mention} has DM's disabled." +
50- " Message deleted without notification." )
25+ val member = user.asMemberOrNull(guild.id) ? : return @on
26+ val messageAuthor = message.asMessage().author?.asMemberOrNull(guild.id) ? : return @on
27+
28+ if (permissionsService.hasPermission(member, PermissionLevel .Moderator ) && ! member.isHigherRankedThan(permissionsService, messageAuthor)) {
29+ when (this .emoji.name) {
30+ guildConfiguration.reactions.gagReaction -> {
31+ message.deleteReaction(this .emoji)
32+ muteService.gag(messageAuthor.asMember(guild.id))
33+ member.sendPrivateMessage(" ${messageAuthor.mention} gagged." )
34+ }
35+ guildConfiguration.reactions.historyReaction -> {
36+ message.deleteReaction(this .emoji)
37+ val target = databaseService.users.getOrCreateUser(messageAuthor, guild.asGuild())
38+ member.sendPrivateMessage { createSelfHistoryEmbed(messageAuthor, target, guild.asGuild(), configuration) }
39+ }
40+ guildConfiguration.reactions.deleteMessageReaction -> {
41+ val content = message.asMessage()
42+ message.deleteReaction(this .emoji)
43+ message.delete()
44+ try {
45+ messageAuthor.sendPrivateMessage {
46+ createMessageDeleteEmbed(guild, content)
5147 }
52-
48+ } catch (ex: RequestException ) {
49+ this .user.sendPrivateMessage(" User ${messageAuthor.mention} has DM's disabled." +
50+ " Message deleted without notification." )
5351 }
52+
5453 }
5554 }
5655 }
0 commit comments