Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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. }