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
312 stars 75 forks source link

bots and relays cannot work on servers with packet encryption #366

Open Pupkin1338 opened 1 year ago

Pupkin1338 commented 1 year ago

if you go to the vanilla server and poketmine through the relay, then everything is fine, however, when you try to go to the nukkit server, the player is located at coordinates 128 -104 128 (only for himself) and therefore cannot move and look at the entity around him

extremeheat commented 1 year ago

Please provide the version, code and steps to reproduce, including the server to connect to or where the software can be downloaded. There isn't enough information in this issue at present.

Pupkin1338 commented 1 year ago

Relay Version 1.19.20/1.19.60 Destination ip - cpe.ign.gg image

Result - image image

Code -

const { Relay } = require('bedrock-protocol')

function createRelay () {
  console.log('Creating relay')
  const relay = new Relay({
     host: '5.181.109.249',
     port: 19131,
     offline: false,
     version: '1.19.60',
     destination: {
       host: 'cpe.ign.gg',
       port: 19132,
       offline: false
     },
     motd: {
        motd: 'test',
        levelName: 'test'
      }
  })
  relay.conLog = console.debug
  relay.listen()
}

createRelay()
Pupkin1338 commented 1 year ago

We understand why this is so. relay works on all nukit and other servers except those with "encrypted connections" like cpe

Pupkin1338 commented 1 year ago

on an older version of the bedrock protocol that does not support 1.19.70, this error does not exist

extremeheat commented 1 year ago

What is an "encrypted connection" here? The vanilla server has no way to disable encryption. Our CI is passing fine. Will look into this software specifically tomorrow.

If there are other specific steps to reproduce, please provide them.

Pupkin1338 commented 1 year ago

my friend and I investigated this problem and came to the conclusion that the problem is not related to protocol versions. previously, we could log in from a repeater, but when the server administrator wrote that "packet encryption" was now installed on the server, lunar/relay type repeaters stopped working correctly. we were able to fix the error with the move — when you log in, you need to be in nether, and when you log in to the server from the queue, you call the transition screen between changes, which fixes the problem, but there were a lot of errors. totems were not taken in the left hand, it was impossible to get off the boat when moving parcels, the server stopped accepting parcels after death, and so on. not using relay, but playing with ordinary Minecraft, there are no such problems. moreover, we noticed such strange behavior only on ign gg servers (mc.ign.gg)

frizib commented 1 year ago

There is something similar on the PMMP core, I wrote about it in discord - https://discord.com/channels/413438066984747026/947894924496482354/1091614256040001557

extremeheat commented 1 year ago

Is this still a problem on latest?