You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MotdProcessor.kt 988B

123456789101112131415161718192021222324
  1. package com.dmdirc.ktirc.messages.processors
  2. import com.dmdirc.ktirc.events.MotdFinished
  3. import com.dmdirc.ktirc.events.MotdLineReceived
  4. import com.dmdirc.ktirc.messages.ERR_NOMOTD
  5. import com.dmdirc.ktirc.messages.RPL_ENDOFMOTD
  6. import com.dmdirc.ktirc.messages.RPL_MOTD
  7. import com.dmdirc.ktirc.messages.RPL_MOTDSTART
  8. import com.dmdirc.ktirc.model.IrcMessage
  9. internal class MotdProcessor : MessageProcessor {
  10. override val commands = arrayOf(ERR_NOMOTD, RPL_MOTDSTART, RPL_MOTD, RPL_ENDOFMOTD)
  11. override fun process(message: IrcMessage) = sequence {
  12. when (message.command) {
  13. RPL_MOTDSTART -> yield(MotdLineReceived(message.metadata, String(message.params[1]), true))
  14. RPL_MOTD -> yield(MotdLineReceived(message.metadata, String(message.params[1])))
  15. ERR_NOMOTD -> yield(MotdFinished(message.metadata, missing = true))
  16. RPL_ENDOFMOTD -> yield(MotdFinished(message.metadata))
  17. }
  18. }.toList()
  19. }