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.

JoinProcessor.kt 746B

1234567891011121314151617181920212223
  1. package com.dmdirc.ktirc.messages
  2. import com.dmdirc.ktirc.events.ChannelJoined
  3. import com.dmdirc.ktirc.model.IrcMessage
  4. import com.dmdirc.ktirc.model.User
  5. internal class JoinProcessor : MessageProcessor {
  6. override val commands = arrayOf("JOIN")
  7. override fun process(message: IrcMessage) = message.sourceUser?.let { user ->
  8. user.addExtendedJoinFields(message.params)
  9. listOf(ChannelJoined(message.time, user, String(message.params[0])))
  10. } ?: emptyList()
  11. private fun User.addExtendedJoinFields(params: List<ByteArray>) {
  12. if (params.size == 3) {
  13. String(params[1]).let { account = if (it == "*") null else it }
  14. realName = String(params[2])
  15. }
  16. }
  17. }