Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import me.ddivad.judgebot.dataclasses.Configuration
import me.ddivad.judgebot.embeds.createMessageDeleteEmbed
import me.ddivad.judgebot.embeds.createCondensedHistoryEmbed
import me.ddivad.judgebot.services.DatabaseService
import me.ddivad.judgebot.services.LoggingService
import me.ddivad.judgebot.services.PermissionLevel
import me.ddivad.judgebot.services.PermissionsService
import me.ddivad.judgebot.services.infractions.MuteService
Expand All @@ -22,6 +23,7 @@ fun onStaffReactionAdd(
muteService: MuteService,
databaseService: DatabaseService,
permissionsService: PermissionsService,
loggingService: LoggingService,
configuration: Configuration
) = listeners {
on<ReactionAddEvent> {
Expand All @@ -33,13 +35,15 @@ fun onStaffReactionAdd(
val msg = message.asMessage()
val target = databaseService.users.getOrCreateUser(messageAuthor, guild.asGuild())


if (permissionsService.hasPermission(staffMember, PermissionLevel.Moderator) && !staffMember.isHigherRankedThan(
permissionsService,
messageAuthor
)
) {
when (this.emoji.name) {
guildConfiguration.reactions.gagReaction -> {
loggingService.staffReactionUsed(guild, staffMember, messageAuthor, this.emoji)
msg.deleteReaction(this.emoji)
if (muteService.checkRoleState(guild, messageAuthor) == RoleState.Tracked) {
staffMember.sendPrivateMessage("${messageAuthor.mention} is already muted.")
Expand All @@ -49,6 +53,7 @@ fun onStaffReactionAdd(
staffMember.sendPrivateMessage("${messageAuthor.mention} gagged.")
}
guildConfiguration.reactions.historyReaction -> {
loggingService.staffReactionUsed(guild, staffMember, messageAuthor, this.emoji)
msg.deleteReaction(this.emoji)
staffMember.sendPrivateMessage {
createCondensedHistoryEmbed(
Expand All @@ -60,6 +65,7 @@ fun onStaffReactionAdd(
}
}
guildConfiguration.reactions.deleteMessageReaction -> {
loggingService.staffReactionUsed(guild, staffMember, messageAuthor, this.emoji)
msg.deleteReaction(this.emoji)
msg.delete()
databaseService.users.addMessageDelete(guild, target, true)
Expand All @@ -73,7 +79,6 @@ fun onStaffReactionAdd(
" Message deleted without notification."
)
}

}
Emojis.question.unicode -> {
if (this.user.isSelf() || msg.author != this.message.kord.getSelf()) return@on
Expand Down
8 changes: 4 additions & 4 deletions src/main/kotlin/me/ddivad/judgebot/services/LoggingService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ package me.ddivad.judgebot.services

import com.gitlab.kordlib.common.entity.Snowflake
import com.gitlab.kordlib.core.behavior.getChannelOf
import com.gitlab.kordlib.core.entity.Guild
import com.gitlab.kordlib.core.entity.Member
import com.gitlab.kordlib.core.entity.Role
import com.gitlab.kordlib.core.entity.User
import com.gitlab.kordlib.core.entity.*
import com.gitlab.kordlib.core.entity.channel.TextChannel
import me.ddivad.judgebot.dataclasses.Configuration
import me.ddivad.judgebot.dataclasses.Infraction
Expand Down Expand Up @@ -76,6 +73,9 @@ class LoggingService(private val configuration: Configuration) {
suspend fun gagApplied(guild: Guild, target: Member, moderator: User) =
log(guild, "**Info ::** User ${target.mention} has been gagged by **${moderator.username} :: ${moderator.tag}**")

suspend fun staffReactionUsed(guild: Guild, moderator: User, target: Member, reaction: ReactionEmoji) =
log(guild, "**Info ::** ${reaction.name} used by ${moderator.username} on ${target.mention}")

private suspend fun log(guild: Guild, message: String) {
getLoggingChannel(guild)?.createMessage(message)
println("${SimpleDateFormat("dd/M/yyyy HH:mm:ss").format(Date())} > ${guild.name} > $message")
Expand Down