您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

MessageHandler.kt 577B

12345678910111213141516
  1. package com.dmdirc.ktirc.io
  2. import com.dmdirc.ktirc.messages.MessageProcessor
  3. import kotlinx.coroutines.channels.ReceiveChannel
  4. import kotlinx.coroutines.channels.consumeEach
  5. class MessageHandler(private val processors: Collection<MessageProcessor>) {
  6. suspend fun processMessages(messages: ReceiveChannel<IrcMessage>) {
  7. messages.consumeEach { it.process() }
  8. }
  9. private fun IrcMessage.process() = this.getProcessor()?.process(this)
  10. private fun IrcMessage.getProcessor() = processors.firstOrNull { it.commands.contains(this.command) }
  11. }