Geyser icon indicating copy to clipboard operation
Geyser copied to clipboard

Lecterns don't work on 1.19.10

Open IceWaffles opened this issue 2 years ago • 1 comments

Describe the bug

Bedrock players cannot open lectures.

To Reproduce

  1. Have a bedrock player join (preferably one a phone/mobile device as this is how user found the bug)
  2. Try and open a lecturn

Expected behaviour

They can open lecturns.

Screenshots / Videos

No response

Server Version and Plugins

No response

Geyser Dump

No response

Geyser Version

This server is running Geyser version 2.0.5-SNAPSHOT (git-master-109e1c0) (Java: 1.19, Bedrock: 1.19.0/1.19.2 - 1.19.10)

Minecraft: Bedrock Edition Device/Version

1.19.10 on iPhone

Additional Context

No response

IceWaffles avatar Jul 14 '22 18:07 IceWaffles

This is a regression of 1.19.10 that we have yet to track down the cause. It may just be a Bedrock bug though. (Technical hypothesis: we don't use the subchunk system introduces a couple Bedrock versions ago).

Camotoy avatar Jul 14 '22 19:07 Camotoy

This needs to be fixed! We just found this bug on Bedrock Edition. Opening a lectern on Java Edition is OK.

PetyXbron avatar Nov 19 '22 12:11 PetyXbron

This issue is still a thing as of 1.19.51 and I have no idea what's going on. To be fair, we're already hacky with lecterns, but I've tried sending the same packets as a vanilla Bedrock server to no avail. Perhaps it is related, somehow, to the subchunk system.

Camotoy avatar Jan 11 '23 03:01 Camotoy

Something very odd is going on here... in addition to the lectern not working, right clicking it causes you to be unable to open your inventory until you disconnect from the server. Notably this is what would happen if you had opened the book, as the only way to close out this gui is via the [x], so the client thinks it has opened it.

Also this may be related? https://bugs.mojang.com/browse/MCPE-159081

Kas-tle avatar Jan 11 '23 04:01 Kas-tle

This is how pocketmine sends the data... to my knowledge they don't use the subchunk system yet? But their lecterns seem to work.

[CLIENT BOUND]  -  UpdateBlockPacket(flags=[NETWORK], blockPosition=(255, 73, 250), runtimeId=10718, dataLayer=0)
[CLIENT BOUND]  -  BlockEntityDataPacket(blockPosition=(255, 73, 250), data={
  "id": "Lectern",
  "x": 255i,
  "y": 73i,
  "z": 250i,
  "hasBook": 1b,
  "page": 0i,
  "book": {
    "id": 387s,
    "Count": 1b,
    "Damage": 0s,
    "tag": {
      "pages": [
        {
          "text": "somebook",
          "photoname": ""
        },
        {
          "text": "",
          "photoname": ""
        }
      ],
      "generation": 0i,
      "author": "Author Unknown",
      "title": "somebook"
    }
  },
  "totalPages": 2i
})

I notice they are using the id short instead of name string as that issue suggests... though trying to emulate this in Geyser still yields the same results :/ Perhaps I should try to just send it exactly?

Here is the full packet dump from pocketmine: packets.log

Kas-tle avatar Jan 11 '23 06:01 Kas-tle

I have the same problem, bedrock players via GeyserMC can't open lecture books, but java players can open lecture books!!

EagleDotNet avatar Jan 21 '23 20:01 EagleDotNet

this is still broken.. I'm looking into it .. maybe I can figure it out

WR8187 avatar Feb 16 '23 01:02 WR8187

@WR8187 Did you manage to find out anything that could be causing this issue? I'm also experiencing this myself, and I'll see if I can find out what could be causing it.

BjornTheProgrammer avatar Mar 16 '23 18:03 BjornTheProgrammer