Lectern Block Entity appears in the world When utilizing The MenuType API
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 12.7k
- Forks
- 3.5k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 11
Description
Expected behavior
I expect the Lectern to not appear while utilizing the MenuType and builder API
Observed/Actual behavior
A Lectern appears in the world
Steps/models to reproduce
Create a lectern with the API. And it will appear at the player's location
LecternView lecternView = MenuType.LECTERN.create(player);
lecternView.setPage(3);
lecternView.setItem(0, item);
lecternView.open();
Plugin and Datapack List
No Plugins or datapacks
Paper version
Latest clone from master through the runDevServer task.
This server is running Paper version 1.21.11-DEV (2025-12-26T18:24:42Z) (Implementing API version 1.21.11-R0.1-SNAPSHOT)
You are running a development version without access to version information
Previous version: 25w46a-DEV (MC: 25w46a)
Other
Using a second player I confirmed the following behavior. A lectern appears under the following cricumstances.
- If Player1 creates a Lectern InventoryView from the MenuType API
- While having the lectern open if Player2 destroys the lectern that appears after Player1 opens it a page change occurs a new lectern appears
- Any State change to the lectern will cause the lectern to re-appear
Comes down to most likely these two methods
LecternBlock#resetBookState -> Creates the block upon book insertion or removal
LecternBlock#signalPageChange -> Creates the block again upon page change
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with LecternBlock#resetBookState and LecternBlock#signalPageChange, using the MenuType.LECTERN and LecternView reproduction in the issue. Trace how book insertion, removal, page changes, and other state changes create the lectern block. Done means the MenuType API view remains usable without a lectern appearing at the player's location.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 50/100