PrismarineJS / bedrock-protocol

Minecraft Bedrock protocol library, with authentication and encryption
https://prismarinejs.github.io/minecraft-data/?v=bedrock_1.17.10&d=protocol
MIT License
308 stars 72 forks source link

Tests needed for macOS #507

Open Wesley-Young opened 3 months ago

Wesley-Young commented 3 months ago

I admit that bedrock-protocol is an excellent library for curious Minecraft developers. However, when I started coding on my MacBook (to make MCBE running on macOS join remote servers without needing to explicitly logging in to Xbox in the game, since logging in on such an 'illegal' copy of Minecraft causes an error) and used the default raknet-native as the backend, it just kept throwing this:

Unknown bind__() error -1; port xxxxx.

I have seen issue #120 but I am not sure whether my problem is duplicated, as I switched to many other arbitrary ports and still encountered the same problem. What's worse, when I actually connected the server using a Minecraft client, the server (I written) just crashed with such seemingly useless traceback

sh: line 1: 33823 Trace/BPT trap: 5       npm start

Process finished with exit code 133 (interrupted by signal 5:SIGTRAP)

I tried sudo to check if this is a permission issue, but again it did not work.

Then I switched to jsp-raknet. Then it did not throw errors anymore, but my Minecraft client connecting says "The host is running an older version of Minecraft" regardless of the protocol version.

On the contrary, the same code functioned well on my Windows device no matter which raknet backend I chosed. Therefore, I think that more tests on macOS should be performed.

extremeheat commented 3 months ago

The obstacle for this on CI is that we don’t have vanilla server binaries for MacOS to test the client against. Do you have a means to address this?

Wesley-Young commented 3 months ago

The solution I adopted is to run a server instance on a external Windows/Linux device, and to relay its packets on a macOS device. Sounds not perfect, but I assume it is enough for the following tests XD

extremeheat commented 3 months ago

If you have a proposal for implementation it is open for PR.