1234567891011121314151617181920212223242526 |
- package com.dmdirc.ktirc.messages.processors
-
- import com.dmdirc.ktirc.events.UserAway
- import com.dmdirc.ktirc.messages.RPL_NOWAWAY
- import com.dmdirc.ktirc.messages.RPL_UNAWAY
- import com.dmdirc.ktirc.model.IrcMessage
- import com.dmdirc.ktirc.model.User
- import com.dmdirc.ktirc.model.asUser
-
- internal class AwayProcessor : MessageProcessor {
-
- override val commands = arrayOf("AWAY", RPL_UNAWAY, RPL_NOWAWAY)
-
- override fun process(message: IrcMessage) = sequence {
- when (message.command) {
- "AWAY" -> message.prefix?.let { yield(UserAway(message.metadata, it.asUser(), message.awayMessage)) }
- RPL_NOWAWAY -> yield(UserAway(message.metadata, User(String(message.params[0])), ""))
- RPL_UNAWAY -> yield(UserAway(message.metadata, User(String(message.params[0])), null))
- }
- }.toList()
-
- private val IrcMessage.awayMessage: String?
- get() = if (params.isEmpty()) null else String(params[0])
-
- }
-
|