Austinb / GameQ

A PHP Gameserver Status Query Library
https://austinb.github.io/GameQ/
GNU Lesser General Public License v3.0
403 stars 137 forks source link

Minecraft PE Bedrock not working #642

Open Erani0 opened 2 years ago

Erani0 commented 2 years ago

I have a Minecraft Bedrock server and can not query the status other online testers work without problems even Minecraftr Java Works only the Minecraft BEdrock Does not work

can someone help me

TitusKirch commented 2 years ago

I can confirm that there is a problem with the Minecraft BE. In the test with GameQ there was no result, in the test via node-gamedig there was the expected result.

Here is the node-gamedig protocol for Minecraft BE: https://github.com/gamedig/node-gamedig/blob/master/protocols/minecraftbedrock.js

bumbummen99 commented 2 years ago

PE does extend Minecraft what is just Gamespy3, apparently Bedrock does use Raknet if i dont get that wrong: https://github.com/xPaw/PHP-Minecraft-Query/blob/24de69ac33c254aa6ea88cbc4ac2a212ae1b9a86/src/MinecraftQuery.php#L201

Erani0 commented 2 years ago

The test that was made for PE does not come from a Bedrock server. Do you have any idea how we can solve this so that Bedrock works?

bumbummen99 commented 2 years ago

The test that was made for PE does not come from a Bedrock server. Do you have any idea how we can solve this so that Bedrock works?

Implementing Raknet as in the linked sources 😄 So we need a Raknet protocol class. We need some documentation for this as the mentioned libraries only use magic i.e. a hardcoded command to get the status.

Gamedig:

Buffer.from('00ffff00fefefefefdfdfdfd12345678', 'hex'), // Magic

xPaw

// hardcoded magic https://github.com/facebookarchive/RakNet/blob/1a169895a900c9fc4841c556e16514182b75faf8/Source/RakPeer.cpp#L135
$OFFLINE_MESSAGE_DATA_ID = \pack( 'c*', 0x00, 0xFF, 0xFF, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFD, 0xFD, 0xFD, 0xFD, 0x12, 0x34, 0x56, 0x78 );
Austinb commented 1 year ago

Has this issue been resolved with the pr #657?