Open YouHaveTrouble opened 10 hours ago
TLDR rundown for anyone tackling this, the argument provider uses CraftBlockStates#getBlockState
, which internally uses BlockEntity.loadStatic
. That method is wrong, as the passed compound tag needs to have the BE id, which the arguments do not have to specify.
Instead, we should create the block entity if a tag is present from the blockdata/blockstate and then load from the tag.
Expected behavior
This should set the block type and copy over all block entity data like inventories, bee data, etc.
Observed/Actual behavior
Snippet above only properly sets the block type and does not copy over the block entity data. Throws following warning
Skipping BlockEntity with id
.Steps/models to reproduce
Run this snippet with any valid input as
blockState
andlocation
Plugin and Datapack List
Issue occurs with only the plugin I'm testing with
Server Plugins (1): Paper Plugins: BlockEdit
Datapacks: There are 3 data pack(s) enabled: [vanilla (built-in)], [file/bukkit (world)], [paper (built-in)] There are no more data packs available
Paper version
This server is running Paper version 1.21.3-77-master@1e035f3 (2024-12-01T15:52:35Z) (Implementing API version 1.21.3-R0.1-SNAPSHOT)
Other
No response