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.

ServerStateHandler.kt 1.1KB

123456789101112131415161718192021222324252627
  1. package com.dmdirc.ktirc.events.handlers
  2. import com.dmdirc.ktirc.IrcClient
  3. import com.dmdirc.ktirc.events.*
  4. import com.dmdirc.ktirc.model.ServerState
  5. import com.dmdirc.ktirc.model.ServerStatus
  6. internal class ServerStateHandler : EventHandler {
  7. override fun processEvent(client: IrcClient, event: IrcEvent) {
  8. when (event) {
  9. is ServerConnecting -> client.serverState.status = ServerStatus.Connecting
  10. is ServerConnected -> client.serverState.status = ServerStatus.Negotiating
  11. is ServerDisconnected -> client.serverState.status = ServerStatus.Disconnected
  12. is ServerReady -> client.serverState.status = ServerStatus.Ready
  13. is ServerWelcome -> handleWelcome(client.serverState, event.server, event.localNick)
  14. is ServerFeaturesUpdated -> client.serverState.features.setAll(event.serverFeatures)
  15. }
  16. }
  17. private fun handleWelcome(serverState: ServerState, server: String, localNick: String) {
  18. serverState.receivedWelcome = true
  19. serverState.serverName = server
  20. serverState.localNickname = localNick
  21. }
  22. }