Snowiiii / Pumpkin

Empowering everyone to host fast and efficient Minecraft servers.
https://snowiiii.github.io/Pumpkin/
MIT License
3.25k stars 113 forks source link

Missing field 'signatureRequired' when using drasl auth server #301

Open StefanB7 opened 5 days ago

StefanB7 commented 5 days ago

I've searched existing issues and couldn't find a duplicate.

Operating System

Ubuntu 24.04

Server Software Version/Commit

0.1.0/00af2b98683b11946cddb4f08de3b0ce04c1fddd

What happened?

I've set up an drash auth server and changed the auth_url in features.toml to point to the auth server. When I try to join the server, I get an error:

[pumpkin::client@tokio-runtime-worker] Kicking Client id 0 for Texture Error Failed to parse JSON from player texture: missing field `signatureRequired` at line 1 column 279

The response returned by my auth server at https://<hostname>/session/minecraft/hasJoined?username={username}&serverId={server_hash} looks like this:

{
    "id": "<an-id>",
    "name": "stefan",
    "properties": [
        {
            "name": "textures",
            "value": "<value>",
            "signature": <signature>"
        }
    ]
}

there is indeed no signatureRequired property. I removed the signature_required property from the ProfileTextures struct in src/client/authentication.rs and I could join the world.

To Reproduce

Expected behavior

The server should let you join

Snowiiii commented 4 days ago

Weird. I wonder how properties.value looks like. It is an base64 utf8 string

StefanB7 commented 4 days ago

Weird. I wonder how properties.value looks like. It is an base64 utf8 string

Yes it is

Snowiiii commented 4 days ago

Weird. I wonder how properties.value looks like. It is an base64 utf8 string

Yes it is

How does it look like?. Normal Minecraft auth hss the signatureRequired boolean