Skip to content

Commit e167f63

Browse files
authored
Merge pull request #39 from the-programmers-hangout/develop
release: merge develop for 1.2.2 release
2 parents c31ede5 + e6917d0 commit e167f63

File tree

8 files changed

+22
-25
lines changed

8 files changed

+22
-25
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ suspend fun main(args: Array<String>) {
5656
field {
5757
name = "Build Info"
5858
value = "```" +
59-
"Version: 1.2.1\n" +
59+
"Version: 1.2.2\n" +
6060
"DiscordKt: ${versions.library}\n" +
6161
"Kotlin: $kotlinVersion" +
6262
"```"

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ fun createMuteCommands(muteService: MuteService) = commands("Mute") {
3535
requiredPermissionLevel = PermissionLevel.Moderator
3636
execute(LowerMemberArg) {
3737
val targetMember = args.first
38-
if (muteService.checkRoleState(guild, targetMember, InfractionType.Mute) == RoleState.None) {
38+
if (muteService.checkRoleState(guild, targetMember) == RoleState.None) {
3939
respond("User ${targetMember.mention} isn't muted")
4040
return@execute
4141
}
4242

4343
muteService.removeMute(guild, targetMember.asUser())
44-
respond("User ${args.first.username} has been unmuted")
44+
respond("User ${args.first.mention} has been unmuted")
4545
}
4646
}
4747

@@ -56,7 +56,7 @@ fun createMuteCommands(muteService: MuteService) = commands("Mute") {
5656
respond("Unable to contact the target user. Infraction cancelled.")
5757
return@execute
5858
}
59-
if (muteService.checkRoleState(guild, targetMember, InfractionType.Mute) == RoleState.Tracked) {
59+
if (muteService.checkRoleState(guild, targetMember) == RoleState.Tracked) {
6060
respond("User ${targetMember.mention} is already muted")
6161
return@execute
6262
}

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

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import com.gitlab.kordlib.core.entity.User
66
import me.ddivad.judgebot.arguments.LowerMemberArg
77
import me.ddivad.judgebot.dataclasses.Ban
88
import me.ddivad.judgebot.dataclasses.Configuration
9+
import me.ddivad.judgebot.dataclasses.InfractionType
10+
import me.ddivad.judgebot.dataclasses.Punishment
911
import me.ddivad.judgebot.embeds.createHistoryEmbed
1012
import me.ddivad.judgebot.embeds.createSelfHistoryEmbed
1113
import me.ddivad.judgebot.embeds.createStatusEmbed
@@ -68,14 +70,10 @@ fun createUserCommands(databaseService: DatabaseService,
6870
requiredPermissionLevel = PermissionLevel.Staff
6971
execute(LowerMemberArg, IntegerArg("Delete message days").makeOptional(1), EveryArg) {
7072
val (target, deleteDays, reason) = args
71-
guild.ban(target.id) {
72-
this.reason = reason
73-
this.deleteMessagesDays = deleteDays
74-
val ban = Ban(target.id.value, reason, author.id.value)
75-
databaseService.guilds.addBan(guild, target.id.value, ban).also {
76-
loggingService.userBanned(guild, target.asUser(), it)
77-
respond("User ${target.mention} banned")
78-
}
73+
val ban = Punishment(target.id.value, InfractionType.Ban , reason, author.id.value)
74+
banService.banUser(target, guild, ban, deleteDays).also {
75+
loggingService.userBanned(guild, target.asUser(), ban)
76+
respond("User ${target.mention} banned")
7977
}
8078
}
8179
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ fun onMemberRejoinWithMute(muteService: MuteService, loggingService: LoggingServ
1111
on<MemberJoinEvent> {
1212
val member = this.member
1313
val guild = this.getGuild()
14-
if (muteService.checkRoleState(guild, member, InfractionType.Mute) == RoleState.Tracked) {
14+
if (muteService.checkRoleState(guild, member) == RoleState.Tracked) {
1515
muteService.handleRejoinMute(guild, member)
1616
loggingService.rejoinMute(guild, member.asUser(), RoleState.Tracked)
1717
}

src/main/kotlin/me/ddivad/judgebot/services/LoggingService.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class LoggingService(private val configuration: Configuration) {
3434
suspend fun channelOverrideAdded(guild: Guild, channel: TextChannel) =
3535
log(guild, "**Info ::** Channel overrides for muted role added to ${channel.name}")
3636

37-
suspend fun userBanned(guild: Guild, user: User, ban: Ban) {
37+
suspend fun userBanned(guild: Guild, user: User, ban: Punishment) {
3838
val moderator = guild.kord.getUser(Snowflake(ban.moderator))
3939
log(guild, "**Info ::** User ${user.mention} :: ${user.tag} banned by ${moderator?.username} for reason: ${ban.reason}")
4040
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ class BanService(private val databaseService: DatabaseService,
2121
private val banTracker = hashMapOf<Int, Job>()
2222
private suspend fun toKey(member: Member): Pair<GuildID, UserId> = member.guild.id.value to member.asUser().id.value
2323

24-
suspend fun banUser(target: Member, guild: Guild, moderator: String, punishment: Punishment) {
24+
suspend fun banUser(target: Member, guild: Guild, punishment: Punishment, deleteDays: Int = 1) {
2525
guild.ban(target.id) {
26-
deleteMessagesDays = 1
26+
deleteMessagesDays = deleteDays
2727
reason = punishment.reason
2828
}
2929
databaseService.guilds.addBan(guild, target.id.value, Ban(target.id.value, punishment.moderator, punishment.reason))

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class InfractionService(private val configuration: Configuration,
3737
PunishmentType.BAN -> {
3838
val clearTime = infraction.punishment!!.duration?.let { DateTime().millis.plus(it) }
3939
val punishment = Punishment(target.id.value, InfractionType.Ban, infraction.reason, infraction.moderator, clearTime)
40-
banService.banUser(target, guild, infraction.moderator, punishment)
40+
banService.banUser(target, guild, punishment)
4141
}
4242
}
4343
}

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,19 +81,18 @@ class MuteService(val configuration: Configuration,
8181
fun removeMute(guild: Guild, user: User) {
8282
runBlocking {
8383
val muteRole = getMutedRole(guild)
84-
databaseService.guilds.removePunishment(guild, user.id.value, InfractionType.Mute)
8584
val key = toKey(user, guild)
86-
muteTimerMap[key]?.cancel()
87-
muteTimerMap.remove(key)
88-
8985
guild.getMemberOrNull(user.id)?.let {
9086
it.removeRole(muteRole.id)
9187
it.sendPrivateMessage {
9288
createUnmuteEmbed(guild, user)
9389
}
90+
loggingService.roleRemoved(guild, user, muteRole)
91+
if (checkRoleState(guild, it) == RoleState.Untracked) return@runBlocking
9492
}
95-
96-
loggingService.roleRemoved(guild, user, muteRole)
93+
databaseService.guilds.removePunishment(guild, user.id.value, InfractionType.Mute)
94+
muteTimerMap[key]?.cancel()
95+
muteTimerMap.remove(key)
9796
}
9897
}
9998

@@ -123,8 +122,8 @@ class MuteService(val configuration: Configuration,
123122
}
124123
}
125124

126-
suspend fun checkRoleState(guild: Guild, member: Member, type: InfractionType) = when {
127-
databaseService.guilds.checkPunishmentExists(guild, member, type).isNotEmpty() -> RoleState.Tracked
125+
suspend fun checkRoleState(guild: Guild, member: Member) = when {
126+
databaseService.guilds.checkPunishmentExists(guild, member, InfractionType.Mute).isNotEmpty() -> RoleState.Tracked
128127
member.roles.toList().contains(getMutedRole(member.getGuild())) -> RoleState.Untracked
129128
else -> RoleState.None
130129
}

0 commit comments

Comments
 (0)