![JAR search and dependency download from the Maven repository](/logo.png)
io.github.pidoveproject.showdown.client.sync.SyncShowdownConnection.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala-showdown-api_3 Show documentation
Show all versions of scala-showdown-api_3 Show documentation
A Scala wrapper of Pokemon Showdown's API
The newest version!
package io.github.pidoveproject.showdown.client.sync
import io.github.pidoveproject.showdown.client.ShowdownConnection
import io.github.pidoveproject.showdown.client.zio.ZIOShowdownConnection
import io.github.pidoveproject.showdown.protocol.ProtocolError
import io.github.pidoveproject.showdown.protocol.client.ClientMessage
import io.github.pidoveproject.showdown.protocol.server.ServerMessage
import io.github.pidoveproject.showdown.room.RoomId
import zio.*
import zio.http.*
class SyncShowdownConnection(runtime: Runtime[ZIOShowdownConnection])
extends ShowdownConnection[String, [e, r] =>> r, [r] =>> PartialFunction[r, Boolean] => Unit]:
override def sendRawMessage(message: String): Unit =
ZIOShowdownConnection.sendRawMessage(WebSocketFrame.text(message)).runThrowFailure(runtime)
override def sendMessage(room: RoomId, message: ClientMessage): Unit =
ZIOShowdownConnection.sendMessage(room, message).runThrowFailure(runtime)
override def sendMessage(message: ClientMessage): Unit =
ZIOShowdownConnection.sendMessage(message).runThrowFailure(runtime)
override def disconnect(): Unit = ZIOShowdownConnection.disconnect().runThrowFailure(runtime)
override def serverMessages: PartialFunction[Either[ProtocolError, ServerMessage], Boolean] => Unit = f =>
ZIOShowdownConnection.serverMessages.runForeachWhile(msg => ZIO.succeedBlocking(f.applyOrElse(msg, _ => true))).runThrowFailure(runtime)
© 2015 - 2025 Weber Informatics LLC | Privacy Policy