Sandertv / gophertunnel

General purpose library for Minecraft Bedrock Edition software written in Go
MIT License
419 stars 95 forks source link

Capitalized UUID in resource pack causes panic #145

Open alvin0319 opened 2 years ago

alvin0319 commented 2 years ago

Source used: minecraft/example_dial_test.go

As described above, Capitalized UUID in resource pack causes gophertunnel to panic.

Error:

2022/08/07 23:52:05 error: texture pack {uuid=3BBD640E-B454-4358-BB57-33C49C0DFCF5, version=0.0.1} not downloaded
panic: dial minecraft 127.0.0.1:62488->127.0.0.1:19132: use of closed network connection

goroutine 1 [running]:
main.ExampleDial()
        D:/D-Backups/Go/Gophertunnel/main.go:29 +0x7da
main.main()
        D:/D-Backups/Go/Gophertunnel/main.go:108 +0x17
exit status 2

Tested with PM4 and confirmed by just changing the case of the resource pack UUID. (not entire UUID) manifest.zip (Capitalized UUID)

manifest.zip (Non-Capitalized UUID)

Raw Manifest JSON:

{
    "format_version": 1,
    "header": {
        "description": "test",
        "name": "Neutronia",
        "uuid": "3BBD640E-B454-4358-BB57-33C49C0DFCF5",
        "version": [0, 0, 1],
        "min_engine_version": [1, 2, 6]
    },
    "modules": [
        {
            "description": "teststsk",
            "type": "resources",
            "uuid": "1EC46F41-7514-4611-A6B1-6AFBE21B6EE0",
            "version": [0, 0, 1]
        }
    ]
}
{
    "format_version": 1,
    "header": {
        "description": "test",
        "name": "Neutronia",
        "uuid": "3bbd640e-b454-4358-bb57-33c49c0dfcf5",
        "version": [0, 0, 1],
        "min_engine_version": [1, 2, 6]
    },
    "modules": [
        {
            "description": "teststsk",
            "type": "resources",
            "uuid": "1ec46f41-7514-4611-a6b1-6afbe21b6ee0",
            "version": [0, 0, 1]
        }
    ]
}
Sandertv commented 2 years ago

That's... peculiar. I wonder if this is actually a PocketMine issue where the client just doesn't care. Gophertunnel shouldn't really care about the casing as long as it's consistent throughout the login sequence. Maybe pocketmine lowercases it in some places but not in others.

Sandertv commented 2 years ago

Did you test if gophertunnel could properly connect with the lowercase UUIDs?

alvin0319 commented 2 years ago

Did you test if gophertunnel could properly connect with the lowercase UUIDs?

Yes, I tested it with fresh PocketMine with no plugins it works fine when resource pack contains lowercase UUIDs.