Don’t remove managed roles for timeout

This commit is contained in:
kageru 2019-07-23 23:27:04 +02:00
parent 93a6e92191
commit 3944b07ec0
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
2 changed files with 7 additions and 4 deletions

View File

@ -22,6 +22,7 @@ internal class MessageRedirect(rawRedirect: RawRedirect) {
content.removePrefix(command.trigger).trim()
}
addField(Config.localization.redirectedMessage, redirectedText)
Log.info("Redirected message: $redirectedText")
}
// No inlined if/else because the types are different.
// Passing the full message author will also include the avatar in the embed.

View File

@ -20,10 +20,12 @@ class TimeoutFeature(raw: RawTimeoutFeature) : MessageFeature {
override fun handle(message: MessageCreateEvent) {
val (_, target, time) = message.readableMessageContent.split(' ', limit = 3)
findUser(target)?.let { user ->
val oldRoles = user.getRoles(Config.server).map { role ->
user.removeRole(role)
role.id
}
val oldRoles = user.getRoles(Config.server)
.filter { !it.isManaged }
.map { role ->
user.removeRole(role)
role.id
}
user.addRole(timeoutRole)
val releaseTime = Instant.now().plus(Duration.ofMinutes(time.toLong())).epochSecond
Dao.saveTimeout(releaseTime, listOf(user.id) + oldRoles)