Open QuietWindUponTheMoor opened 4 weeks ago
The main problem here is that NBT data cannot just be arbitrarily placed on any block. We have no way of knowing what will happen if we put the NBT data from one block onto another, and doing so could cause various major issues if it isn’t happy with it
The main problem here is that NBT data cannot just be arbitrarily placed on any block. We have no way of knowing what will happen if we put the NBT data from one block onto another, and doing so could cause various major issues if it isn’t happy with it
Is there not a way to do this for signs only and only maintain text data?
The Problem
I would like to replace a bunch of signs of one type, with another type. In this case, I would like to replace spruce signs with bamboo signs.
Using a state-applying-pattern (^) did not seem to work:
//replacenear 200 minecraft:spruce_wall_sign ^minecraft:bamboo_wall_sign
(For replacenear), or, for strict replace://replace minecraft:spruce_wall_sign ^minecraft:bamboo_wall_sign
This is because sign text is NBT metadata and not covered by state-applying-pattern.
A Solution
Add functionality to
com.sk89q.worldedit.function.pattern.TypeApplyingPattern
to also keep NBT data, or add another pattern that allows for this to be an option when replacing blocks.Currently,
BaseBlock
I was told does not have any NBT data so I'd assume this would require some modifications to how theTypeApplyingPattern
class operates.Alternatives
The only other way I can personally think of that make the process I'm trying to accomplish here to be somewhat quicker than just manually re-doing all of the signs, is going through this process, using EssentialsX:
/editsign copy
/editsign paste
to paste the text back onto the new signThis is extremely tedious and almost as slow as just doing all of the signs over by hand again.
Anything Else?
No response