sbrl / Minetest-WorldEditAdditions

Extra tools and commands to extend WorldEdit for Minetest
https://worldeditadditions.mooncarrot.space/
Mozilla Public License 2.0
16 stars 3 forks source link

//replacemix shelf bug #70

Open VorTechnix opened 2 years ago

VorTechnix commented 2 years ago

Bug applies to default:bookshelf, xdecor:multishelf and vessels:shelf. When placed using //replacemix their inventories cannot be opened/accessed.

VorTechnix commented 2 years ago

Upon further investigation this is an upstream issue as well as the WorldEdit command //set (and i assume the rest of the placing commands) have the same problem. When we find a solution for this issue we should open an issue/pull request in the WorldEdit repo to apply our solution to the commands there.

VorTechnix commented 2 years ago

Chests seem to have the same problem. (But I can't be sure since I have pipeworks which overrides chests).

sbrl commented 2 years ago

Hmmm, weird. Is this also the case if such items are placed on the ground?

It may also be there's an on_place (or whatever it's called) that needs to be called that isn't when we use Voxel Manipulators.

VorTechnix commented 2 years ago

I tried both in air and on the ground. Like you I have a suspicion that there is some sort of on_place weirdness going on. If that is the cause it would not be practical to add node filtering and alternate handling to all our commands. So I propose we make something like //fixstor(age) to handle the issue.

Note: I checked the code yesterday and items like chests and shelves are registered using a function called register_storage not register_node.

sbrl commented 2 years ago

Hmm yeah. It's probably more general than just storage though - something like //setplayer perhaps that uses minetest.set_node()?

VorTechnix commented 2 years ago

Perhaps this is an ownership issue (which would make this issue overlap with #69). It could be that when storage is placed owner is set but only shown/enforced if protected=true.

sbrl commented 2 years ago

Only way to know for sure is to experiment I guess!