BattleEyeRConClient is a simple asynchronous kotlin library which allows you to manage your BE servers

Code usage example:

import com.pepej.battleeyercon.client.BattleEyeClient
import com.pepej.battleeyercon.enum.BattleEyeCommand
import com.pepej.battleeyercon.enum.DisconnectType
import com.pepej.battleeyercon.mapper.BattleEyePlayersCommandResponseMapper
import com.pepej.battleeyercon.mapper.mapTo
import com.pepej.battleeyercon.models.Player
import com.pepej.battleeyercon.response.BattleEyeCommandResponse
import com.pepej.battleeyercon.response.BattleEyeResponseHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

val scope = CoroutineScope(Dispatchers.IO)

fun main() {
    val client = BattleEyeClient.standard()
    scope.launch { //launch an client coroutine
        client.connect("localhost", 2305, "12345") //connect to the server
        client.addBattleEyeClientResponseHandler(DemoResponseHandler(client))
        client.sendCommand(BattleEyeCommand.Players)
    }

    while (true) {}

}

class DemoResponseHandler(override val client: BattleEyeClient) : BattleEyeResponseHandler {

    override val onConnected: () -> Unit = {
        println("Connected")
    }
    override val onDisconnected: (disconnectType: DisconnectType) -> Unit = {
        println("Disconnected with $it reason")
    }

    override val onCommandResponseReceived: (BattleEyeCommandResponse) -> Unit = { r ->
        r.mapTo<BattleEyePlayersCommandResponseMapper, List<Player>>(client)
            .forEach(::println)
    }
    
    override val onMessageReceived: (message: String) -> Unit = {
        println("Message received $it")
    }
    override val onWrittenToLog: (message: String) -> Unit = {
        println(it)
    }
}

GitHub

View Github