EngineHub / EngineHub/WorldEdit

Allow signs to maintain text AND position/direction with //replace or //replacenear

Open
#2,546 3 comments 1 reaction 0 assignees View on GitHub
status:pending type:feature-request
Dominant language
Java
Stars
3.5k
Forks
960
Avg merge
6h 57m
Merged PRs (30d)
1

Description

### 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 the `TypeApplyingPattern` 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:

1. Use `/editsign copy`
2. Break the old sign, place the new sign off the desired type [in this case, a bamboo sign]
3. Use `/editsign paste` to paste the text back onto the new sign

This is extremely tedious and almost as slow as just doing all of the signs over by hand again.

### Anything Else?

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.