v1.12.4 (2020-09-06)
Major Bug Notice (#22)
Affected Versions
- v1.12.2
- v1.12.3
- v1.12.4
- v1.12.5
- v1.12.6
- v1.12.7
- v1.12.8
Upgrade Paths
- v1.12.x → v1.13.4
Description
On affected versions, Standard or Extra sign edit permission validation (
compatibility.edit-validation: Standard
orcompatibility.edit-validation: Extra
) may ignore the result of changed sign lines by other plugins.This bug bypasses sign content/text restrictions imposed by other plugins for anyone using
/sign
subcommands that change the text of a sign.All users who run affected versions and have enabled sign edit permission validation (this is the default behavior) should upgrade to v1.13.4 immediately to prevent exploitation of this bug.
Workaround
If you are unable to upgrade to v1.13.4, you should downgrade to v1.12.1 or disable SignEdit for Bukkit.
Added
- Tab completion of existing sign text when using
/sign set
and looking at a sign (#19)
Changed
- Undoing and redoing sign text will now only change the sign text.
Previously, the sign orientation and dye color would also be modified to what was remembered in the history stack. - Undoing and redoing sign text is now possible even if the sign is replaced with one of a new material (e.g. a spruce sign in place of an oak sign) as long as the new sign is in the same position.
/sign redo
now puts the current sign text into the history, so undoing the redo will now restore the latest sign text instead of the staged (remembered at the time of the first undo) text in the history.
Fixed
- When undoing and redoing, the "before" section of the comparison now uses the current text/state of the sign rather than the remembered state from when the edit was made, which may be outdated.
/sign undo
after using/sign ui
would show "Sign did not change".
Under the Hood
- Migrated tests from JUnit 4 to JUnit 5
SignText.verifyBlockPlaced()
no longer tries to update the block's state to check if the block is placed. It is now calledSignText.reloadTargetSign()
and uses the non-invasiveBlockState.isPlaced()
method.