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.

NickChangeErrorProcessor.kt 1.2KB

123456789101112131415161718192021222324
  1. package com.dmdirc.ktirc.messages.processors
  2. import com.dmdirc.ktirc.events.NicknameChangeFailed
  3. import com.dmdirc.ktirc.messages.ERR_ERRONEUSNICKNAME
  4. import com.dmdirc.ktirc.messages.ERR_NICKCOLLISION
  5. import com.dmdirc.ktirc.messages.ERR_NICKNAMEINUSE
  6. import com.dmdirc.ktirc.messages.ERR_NONICKNAMEGIVEN
  7. import com.dmdirc.ktirc.model.IrcMessage
  8. internal class NickChangeErrorProcessor : MessageProcessor {
  9. override val commands = arrayOf(ERR_ERRONEUSNICKNAME, ERR_NICKCOLLISION, ERR_NICKNAMEINUSE, ERR_NONICKNAMEGIVEN)
  10. override fun process(message: IrcMessage) = listOf(NicknameChangeFailed(message.metadata, message.command.toNicknameChangeError()))
  11. private fun String.toNicknameChangeError(): NicknameChangeFailed.NicknameChangeError = when(this) {
  12. ERR_ERRONEUSNICKNAME -> NicknameChangeFailed.NicknameChangeError.ErroneousNickname
  13. ERR_NICKCOLLISION -> NicknameChangeFailed.NicknameChangeError.Collision
  14. ERR_NICKNAMEINUSE -> NicknameChangeFailed.NicknameChangeError.AlreadyInUse
  15. ERR_NONICKNAMEGIVEN -> NicknameChangeFailed.NicknameChangeError.NoNicknameGiven
  16. else -> throw IllegalArgumentException("Unknown nick change error")
  17. }
  18. }