@@ -2,6 +2,7 @@ package me.ddivad.judgebot.listeners
2
2
3
3
import com.gitlab.kordlib.common.exception.RequestException
4
4
import com.gitlab.kordlib.core.event.message.ReactionAddEvent
5
+ import me.ddivad.judgebot.arguments.isHigherRankedThan
5
6
import me.ddivad.judgebot.dataclasses.Configuration
6
7
import me.ddivad.judgebot.embeds.createMessageDeleteEmbed
7
8
import me.ddivad.judgebot.embeds.createSelfHistoryEmbed
@@ -21,36 +22,34 @@ fun onStaffReactionAdd(muteService: MuteService,
21
22
val guild = guild?.asGuildOrNull() ? : return @on
22
23
val guildConfiguration = configuration[guild.asGuild().id.longValue]
23
24
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)
51
47
}
52
-
48
+ } catch (ex: RequestException ) {
49
+ this .user.sendPrivateMessage(" User ${messageAuthor.mention} has DM's disabled." +
50
+ " Message deleted without notification." )
53
51
}
52
+
54
53
}
55
54
}
56
55
}
0 commit comments