Files
libmc/docs/Assemble-context.md
T
2026-09-08 11:13:37 +08:00

1.1 KiB

Assemble context API

public val CustomProtocolContext: ProtocolContextBuilder.() -> Unit = {
    rsaEncryptor = RSA1024Encryptor { key, data -> ... }
    sha1Hasher = Sha1Hasher { serverId, secretKey, publicKey -> ... }
    cipherFactory = { key -> ... }
    authProvider = AuthenticationProvider { url, accessToken, uuid, serverIdHash -> ... }
    socketEngine = MyCustomTCPSocketImpl()
}

If using DefaultProtocolContext from libmc-protocol-context as the default context implementation, please refer to Implementing TCPSocket

Modify exists context API implementation

fun main() {
    val myNewProtocolContext = DefaultProtocolContext.withCustom {
        rsaEncryptor = RSA1024Encryptor { key, data -> ... }
        sha1Hasher = Sha1Hasher { serverId, secretKey, publicKey -> ... }
        cipherFactory = { key -> ... }
        authProvider = AuthenticationProvider { url, accessToken, uuid, serverIdHash -> ... }
        socketEngine = MyCustomTCPSocketImpl()
    }
}

Call .withCustom on a ProtocolContextBuilder to modify exists context implementation