
SignEdit for Bukkit
Enhanced tools to edit existing Bukkit signs. This is a fork of Omel's SignEdit with improved functionality.
Автор: Deltik7090обновлён 15 янв. 2026 г.
Утилиты
Описание
SignEdit for Bukkit
SignEdit for Bukkit is a Bukkit plugin that allows players to edit sign objects by looking at them or clicking on them and typing in a SignEdit command.
![[SignEdit for Bukkit v1.14.0 – /sign help]](https://i.imgur.com/VBCjDIr.png)
Installation
- Download the latest .jar file from the Releases page and upload it to your Bukkit server (Spigot, PaperMC, etc.) plugins/ folder.
- Restart your Bukkit server. Usage, Permissions, Configuration, and Features Full documentation of this plugin can be found in the GitHub project README.md.
Compatibility
This plugin is a fork of Omel's SignEdit v1.3. Omel's SignEdit v1.3 and older are not compatible with Bukkit 1.12 and newer because a deprecated API method was removed (see related issue in MyPet).
More compatibility information can be found in the GitHub project README.md.
Галерея
Последние версии
Все версии →release
v1.14.7 (2025-11-28)
1.14.715 янв. 2026 г.161Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### Added
* `/sign cut` now shows the unexpected differences when another plugin overrides the line removals.

### Fixed
* When using `/sign set` or `/sign clear`, sign text modifications made by other plugins (via `SignChangeEvent`) 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 `@SignSubcommandInfo` to validate subcommand metadata and improve tab completion accuracy with argument hints.
* Unified all `SignEditInteraction` constructors to accept `SubcommandContext`, reducing boilerplate through a shared abstract base class with convenience accessors for common services.
release
v1.14.6 (2025-06-05)
1.14.615 янв. 2026 г.20Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### 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 of `net.minecraft.tileentity.TileEntitySign`.
This plugin should be calling `org.bukkit.entity.Player#openSign(org.bukkit.block.Sign,org.bukkit.block.sign.Side)` on Bukkit 1.20+.
release
v1.14.5 (2024-10-21)
1.14.515 янв. 2026 г.20Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### Fixed
* Missing cancelled `SignChangeEvent` validation when checking a `SignChangeEvent` emitted 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
release
v1.14.4 (2023-07-31)
1.14.415 янв. 2026 г.10Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### Fixed
* `java.lang.IllegalStateException: Unable to call method: getSide` on 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 be `Sign.setEditable()` instead of `Sign.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.
release
v1.14.3 (2023-07-25)
1.14.315 янв. 2026 г.12Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### Fixed
* `/sign ui` could be invoked by right-clicking a sign in Minecraft 1.20 when the player did not have the `signedit.sign.ui` permission.
* `java.lang.IllegalArgumentException: Sign must be in same world as Player` in the right-click-on-sign event handler (#42)
release
v1.14.2 (2023-07-22)
1.14.215 янв. 2026 г.10Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### Fixed
* `/sign ui` and 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 ui` issues by reducing the `catch` scopes to just methods and fields that are missing when opening the native sign editor GUI
release
v1.14.1 (2023-07-20)
1.14.115 янв. 2026 г.18Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### Fixed
* Dyes could not be used on editable signs due to an overly aggressive override. (#41)
* Ink sacs and glow ink sacs could not be used on editable signs due to an overly aggressive override. (#41)
* Item usages on signs should be ignored when the player is sneaking.
This is the native Minecraft behavior.
release
v1.14.0 (2023-07-17)
1.14.015 янв. 2026 г.17Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11bukkit
Что нового
### 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 wax` and `/sign unwax` commands and permissions to apply and remove honeycomb wax from signs, respectively
* New locale strings:
* `unwax_sign` – `/sign unwax` pending action description
* `wax_sign` – `/sign wax` pending action description
* `wax_removed` – Completed `/sign unwax` action
* `wax_applied` – Completed `/sign wax` action
* `bypass_wax_cannot_rewax` – Warning after a `/sign` text change that wax was not reapplied because the player lacks permission to `/sign wax`
* `forbidden_waxed_sign_edit` – Error that a `/sign` text change was blocked because the target sign is waxed and the player lacks permission to `/sign unwax`
### Changed
* The documentation of `/sign undo` and `/sign redo` has 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](https://web.archive.org/web/20230615204117/https://minecraft.fandom.com/wiki/Sign#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](https://hub.spigotmc.org/jira/browse/SPIGOT-7391))
* Error `java.lang.IllegalArgumentException: Invalid page number (1)` when using `compatibility.sign-ui: EditableBook` and 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`](https://web.archive.org/web/20230622054725/https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/sign/SignSide.html)
* 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)` to `InteractionCommand.isPermitted()`
* `SignText.signChanged()` renamed to `SignText.signTextChanged()` as part of clarification that only text changes count in `/sign undo` and `/sign redo`
* Started pulling [`org.bukkit.entity.Player`](https://web.archive.org/web/20230622081000/https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/Player.html) out 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`
beta
v1.14.0-beta7 (2023-07-16)
1.14.0-beta715 янв. 2026 г.13Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4bukkit
Что нового
### 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](https://hub.spigotmc.org/jira/browse/SPIGOT-7391))
* Preserve the native honeycomb-on-sign action if the `signedit.sign.wax` permission is denied.
* Locale changes:
* `wax_removed` and `wax_applied` should just be those and not excessively wordy in what their effects are.
* Eliminated `bypass_wax_before` and `bypass_wax_after` to prefer only error messages, as users probably don't care if the implicit de/re-waxing is successful.
* Reworded `bypass_wax_cannot_rewax` to 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`, and `zh-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 wax` and `/sign unwax` commands and permissions to apply and remove honeycomb wax from signs, respectively
* New locale strings:
* `wax_removed` – Completed `/sign unwax` action
* `wax_applied` – Completed `/sign wax` action
* `bypass_wax_cannot_rewax` – Warning after a `/sign` text change that wax was not reapplied because the player lacks permission to `/sign wax`
* `unwax_sign` – `/sign unwax` pending action description
* `wax_sign` – `/sign wax` pending action description
* `forbidden_waxed_sign_edit` – Error that a `/sign` text change was blocked because the target sign is waxed and the player lacks permission to `/sign unwax`
### Changed
* The documentation of `/sign undo` and `/sign redo` has 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](https://web.archive.org/web/20230615204117/https://minecraft.fandom.com/wiki/Sign#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](https://hub.spigotmc.org/jira/browse/SPIGOT-7391))
* `java.lang.IllegalArgumentException: Invalid page number (1)` when using `compatibility.sign-ui: EditableBook` and 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`](https://web.archive.org/web/20230622054725/https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/sign/SignSide.html)
* 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)` to `InteractionCommand.isPermitted()`
* `SignText.signChanged()` renamed to `SignText.signTextChanged()` as part of clarification that only text changes count in `/sign undo` and `/sign redo`
* Started pulling [`org.bukkit.entity.Player`](https://web.archive.org/web/20230622081000/https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/Player.html) out 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`
beta
v1.14.0-beta6 (2023-07-13)
1.14.0-beta615 янв. 2026 г.15Minecraft: 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4bukkit
Что нового
### Pre-Release Notes
#### Since Previous Pre-Release
* When using `compatibility.edit-validation: Extra`, SignEdit for Bukkit could have submitted a `null` rather than an air block for the block next to floating wall hanging signs, causing other plugins to fail to handle the `BlockPlaceEvent`. 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 ui` edits are not registered due to a bug ([SPIGOT-7391](https://hub.spigotmc.org/jira/browse/SPIGOT-7391)). Either switch to [PaperMC](https://papermc.io/) or use `/sign set` as a workaround.
* The new locale strings relating to waxed signs have not been proofread for the locales `de`, `nl`, `zh-CN`, `zh-TW`, and `zh-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 wax` and `/sign unwax` commands and permissions to apply and remove honeycomb wax from signs, respectively
* New locale strings:
* `wax_removed` – Completed `/sign unwax` action
* `wax_applied` – Completed `/sign wax` action
* `bypass_wax_before` – Warning before a `/sign` text change that wax will be removed
* `bypass_wax_after` – Warning after a `/sign` text change that wax was reapplied
* `bypass_wax_cannot_rewax` – Warning after a `/sign` text change that wax was not reapplied because the player lacks permission to `/sign wax`
* `unwax_sign` – `/sign unwax` pending action description
* `wax_sign` – `/sign wax` pending action description
* `forbidden_waxed_sign_edit` – Error when attempting to edit a waxed sign without permission to run `/sign unwax`
### Changed
* The documentation of `/sign undo` and `/sign redo` has 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](https://web.archive.org/web/20230615204117/https://minecraft.fandom.com/wiki/Sign#Hanging_signs) from Minecraft 1.20 when using `compatibility.edit-validation: Extra` (#34)

* `java.lang.IllegalArgumentException: Invalid page number (1)` when using `compatibility.sign-ui: EditableBook` and 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`](https://web.archive.org/web/20230622054725/https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/sign/SignSide.html)
* 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)` to `InteractionCommand.isPermitted()`
* `SignText.signChanged()` renamed to `SignText.signTextChanged()` as part of clarification that only text changes count in `/sign undo` and `/sign redo`
* Started pulling [`org.bukkit.entity.Player`](https://web.archive.org/web/20230622081000/https://hub.spigotmc.org/javadocs/spigot/org/bukkit/entity/Player.html) out 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`



