Releases: Deltik/SignEdit
v1.14.7 (2025-11-28)
Added
Fixed
- When using
/sign setor/sign clear, sign text modifications made by other plugins (viaSignChangeEvent) were not detected due to a state tracking bug. This bug did not affect/sign ui.
Under the Hood
-
Removed the Dagger 2 dependency injection framework in favor of simpler manual dependency wiring.
This reduces the plugin JAR size by ~98KB (~38%) while maintaining the same separation of concerns through explicit service containers (
SignEditPluginServices,SubcommandContext). -
Added compile-time annotation processing for
@SignSubcommandInfoto validate subcommand metadata and improve tab completion accuracy with argument hints. -
Unified all
SignEditInteractionconstructors to acceptSubcommandContext, reducing boilerplate through a shared abstract base class with convenience accessors for common services.
v1.14.6 (2025-06-05)
Fixed
java.lang.NoSuchMethodException: java.lang.Object.getTileEntity()when opening the native sign editor GUI on Paper 1.21.5 (#44)
Under the Hood
- Updated copyright year 2025
- Although unnecessary, the reflection-based sign editor opener now takes into account CraftBukkit 1.21.5's retrieval of
net.minecraft.block.entity.SignBlockEntity, the new name ofnet.minecraft.tileentity.TileEntitySign.
This plugin should be callingorg.bukkit.entity.Player#openSign(org.bukkit.block.Sign,org.bukkit.block.sign.Side)on Bukkit 1.20+.
v1.14.5 (2024-10-21)
Fixed
-
Missing cancelled
SignChangeEventvalidation when checking aSignChangeEventemitted by this plugin (#43)Only affects
compatibility.edit-validation: Extra.
Under the Hood
- Updated copyright year 2024
- Switched CI provider from CircleCI to GitHub Actions
- Fully automated release in CI
- Updated Gradle to version 8.10.2
v1.14.4 (2023-07-31)
Fixed
java.lang.IllegalStateException: Unable to call method: getSideon Bukkit 1.19.4 due to incomplete sign side support in that version of Bukkit
Under the Hood
SignHelpers.setEditableOldApi()called the wrong Bukkit method (should beSign.setEditable()instead ofSign.setWaxed()), but this probably has no practical effect. It only affects the correctness of how this plugin interacts with Bukkit 1.13.2 through Bukkit 1.19.4.- The sign side calculation based on the player's relative position from the sign (
SideShim.fromRelativePosition) will now say front on Bukkit 1.19.4 and older, as the back side had not yet been added in those versions of Bukkit.
v1.14.3 (2023-07-25)
Fixed
/sign uicould be invoked by right-clicking a sign in Minecraft 1.20 when the player did not have thesignedit.sign.uipermission.java.lang.IllegalArgumentException: Sign must be in same world as Playerin the right-click-on-sign event handler (#42)
v1.14.2 (2023-07-22)
Fixed
/sign uiand the equivalent right-click override may incorrectly be hiding issues with the player opening the sign editor. (#42)
Under the Hood
- Remove ProGuard to improve the readability of stack traces
- Narrow down potential
/sign uiissues by reducing thecatchscopes to just methods and fields that are missing when opening the native sign editor GUI
v1.14.1 (2023-07-20)
Fixed
v1.14.0 (2023-07-17)
Added
- Support for Minecraft 1.20 sign sides (front and back)
- Support for Minecraft 1.20 honeycomb wax on signs
- On Minecraft 1.20+, opening an editable sign (without honeycomb wax) by right-click will open a sign editor handled by this plugin.
- (Minecraft 1.20+ only)
/sign waxand/sign unwaxcommands and permissions to apply and remove honeycomb wax from signs, respectively - New locale strings:
unwax_sign–/sign unwaxpending action descriptionwax_sign–/sign waxpending action descriptionwax_removed– Completed/sign unwaxactionwax_applied– Completed/sign waxactionbypass_wax_cannot_rewax– Warning after a/signtext change that wax was not reapplied because the player lacks permission to/sign waxforbidden_waxed_sign_edit– Error that a/signtext change was blocked because the target sign is waxed and the player lacks permission to/sign unwax
Changed
- The documentation of
/sign undoand/sign redohas been clarified to indicate that they affect only the sign text, not the dyes or wax applied to the sign.
Fixed
-
Failure and error when editing hanging signs and wall hanging signs from Minecraft 1.20 when using
compatibility.edit-validation: Extra(#34) -
Workaround for a Spigot 1.20 bug where using the stable API to have a player open a sign does not make the sign editable (SPIGOT-7391)
-
Error
java.lang.IllegalArgumentException: Invalid page number (1)when usingcompatibility.sign-ui: EditableBookand saving a blank book
Under the Hood
- Tacked on some adapters to make the plugin compatible with Bukkit 1.20
org.bukkit.block.sign.SignSide - Increased the right-click event handling priority to the highest level to avoid interfering with other plugins that take over right-click events on signs (#36)
- Permission processing moved from
SignCommand.permitted(Player, String)toInteractionCommand.isPermitted() SignText.signChanged()renamed toSignText.signTextChanged()as part of clarification that only text changes count in/sign undoand/sign redo- Started pulling
org.bukkit.entity.Playerout of constructor injections, as various classes are being used in wider scopes. - Gradle 9.0 compatibility:
- Replaced Gradle 8.2 deprecations with recommended replacements
- Updated Gradle to version 8.2.1
- Added JDK toolchain resolver plugin to download Java 1.8
- Skip ProGuard for development builds
- Eliminated the dependency on
commons-lang:commons-lang
v1.14.0-beta7 (2023-07-16)
Pre-Release Notes
Since Previous Pre-Release
- Added a workaround for a Spigot 1.20 bug where having a player open a sign does not make the sign editable (SPIGOT-7391)
- Preserve the native honeycomb-on-sign action if the
signedit.sign.waxpermission is denied. - Locale changes:
wax_removedandwax_appliedshould just be those and not excessively wordy in what their effects are.- Eliminated
bypass_wax_beforeandbypass_wax_afterto prefer only error messages, as users probably don't care if the implicit de/re-waxing is successful. - Reworded
bypass_wax_cannot_rewaxto make it clear that the wax that was previously on the sign was discarded.
Known Issues
- The new locale strings relating to waxed signs have not been proofread for the locales
zh-CN,zh-TW, andzh-HK.
Added
- Support for Minecraft 1.20 sign sides (front and back)
- Support for Minecraft 1.20 honeycomb wax on signs
- On Minecraft 1.20+, opening an editable sign (sign without honeycomb wax) by right-click will open a sign editor handled by this plugin.
- (Minecraft 1.20+ only)
/sign waxand/sign unwaxcommands and permissions to apply and remove honeycomb wax from signs, respectively - New locale strings:
wax_removed– Completed/sign unwaxactionwax_applied– Completed/sign waxactionbypass_wax_cannot_rewax– Warning after a/signtext change that wax was not reapplied because the player lacks permission to/sign waxunwax_sign–/sign unwaxpending action descriptionwax_sign–/sign waxpending action descriptionforbidden_waxed_sign_edit– Error that a/signtext change was blocked because the target sign is waxed and the player lacks permission to/sign unwax
Changed
- The documentation of
/sign undoand/sign redohas been clarified to indicate that they affect only the sign text, not the dyes or wax applied to the sign.
Fixed
-
Failure and error when editing hanging signs and wall hanging signs from Minecraft 1.20 when using
compatibility.edit-validation: Extra(#34) -
Workaround for a Spigot 1.20 bug where having a player open a sign does not make the sign editable (SPIGOT-7391)
-
java.lang.IllegalArgumentException: Invalid page number (1)when usingcompatibility.sign-ui: EditableBookand saving a blank book
Under the Hood
- Tacked on some adapters to make the plugin compatible with Bukkit 1.20
org.bukkit.block.sign.SignSide - Decreased the right-click event handling priority to the lowest level to avoid interfering with other plugins that handle right-click events on signs
- Permission processing moved from
SignCommand.permitted(Player, String)toInteractionCommand.isPermitted() SignText.signChanged()renamed toSignText.signTextChanged()as part of clarification that only text changes count in/sign undoand/sign redo- Started pulling
org.bukkit.entity.Playerout of constructor injections, as various classes are being used in wider scopes. - Gradle 9.0 compatibility:
- Replaced Gradle 8.2 deprecations with recommended replacements
- Updated Gradle to version 8.2-rc-2
- Added JDK toolchain resolver plugin to download Java 1.8
- Skip ProGuard for development builds
- Eliminated the dependency on
commons-lang:commons-lang
v1.14.0-beta6 (2023-07-13)
Pre-Release Notes
Since Previous Pre-Release
- When using
compatibility.edit-validation: Extra, SignEdit for Bukkit could have submitted anullrather than an air block for the block next to floating wall hanging signs, causing other plugins to fail to handle theBlockPlaceEvent. Although not possible in normal Minecraft, SignEdit for Bukkit now simulates hanging wall hanging signs in the air for validation purposes. - Hopefully improved the machine translations of the wax-related locale strings
Known Issues
- When using the Spigot server,
/sign uiedits are not registered due to a bug (SPIGOT-7391). Either switch to PaperMC or use/sign setas a workaround. - The new locale strings relating to waxed signs have not been proofread for the locales
de,nl,zh-CN,zh-TW, andzh-HK.
Added
- Support for Minecraft 1.20 sign sides (front and back)
- Support for Minecraft 1.20 honeycomb wax on signs
- On Minecraft 1.20+, opening an editable sign (sign without honeycomb wax) by right-click will open a sign editor handled by this plugin.
- (Minecraft 1.20+ only)
/sign waxand/sign unwaxcommands and permissions to apply and remove honeycomb wax from signs, respectively - New locale strings:
wax_removed– Completed/sign unwaxactionwax_applied– Completed/sign waxactionbypass_wax_before– Warning before a/signtext change that wax will be removedbypass_wax_after– Warning after a/signtext change that wax was reappliedbypass_wax_cannot_rewax– Warning after a/signtext change that wax was not reapplied because the player lacks permission to/sign waxunwax_sign–/sign unwaxpending action descriptionwax_sign–/sign waxpending action descriptionforbidden_waxed_sign_edit– Error when attempting to edit a waxed sign without permission to run/sign unwax
Changed
- The documentation of
/sign undoand/sign redohas been clarified to indicate that they affect only the sign text, not the dyes or wax applied to the sign.
Fixed
-
Failure and error when editing hanging signs and wall hanging signs from Minecraft 1.20 when using
compatibility.edit-validation: Extra(#34) -
java.lang.IllegalArgumentException: Invalid page number (1)when usingcompatibility.sign-ui: EditableBookand saving a blank book
Under the Hood
- Tacked on some adapters to make the plugin compatible with Bukkit 1.20
org.bukkit.block.sign.SignSide - Decreased the right-click event handling priority to the lowest level to avoid interfering with other plugins that handle right-click events on signs
- Permission processing moved from
SignCommand.permitted(Player, String)toInteractionCommand.isPermitted() SignText.signChanged()renamed toSignText.signTextChanged()as part of clarification that only text changes count in/sign undoand/sign redo- Started pulling
org.bukkit.entity.Playerout of constructor injections, as various classes are being used in wider scopes. - Gradle 9.0 compatibility:
- Replaced Gradle 8.2 deprecations with recommended replacements
- Updated Gradle to version 8.2-rc-2
- Added JDK toolchain resolver plugin to download Java 1.8
- Skip ProGuard for development builds
- Eliminated the dependency on
commons-lang:commons-lang

