Вы не можете выбрать более 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. }