Skip to content

Releases: Deltik/SignEdit

v1.13.1 (2021-07-11)

11 Jul 08:46
v1.13.1
743ab3c
Compare
Choose a tag to compare

Fixed

  • org.bukkit.plugin.IllegalPluginAccessException warning while unloading the plugin (reported in Spigot forum thread) prevents unload-time configuration file validation

v1.13.0 (2021-07-10)

10 Jul 14:38
v1.13.0
0aff2d7
Compare
Choose a tag to compare

Added

  • Changes to the configuration file (plugins/SignEdit/config.yml) are now detected and reloaded at runtime, so a CraftBukkit server restart is no longer needed to make the new settings take effect.
  • New locale strings:
    • usage_page_heading – Styling for the heading of the redesigned /sign help
    • usage_page_info – Contents of the heading of /sign help
    • usage_page_numbering – Shows the page number of the /sign help page

Changed

  • The <lines> argument of /sign clear [<lines>] is now optional.
    If <lines> is not provided, all lines on the targeted sign will be blanked out.
  • Reworked /sign help so that it will only display /sign subcommands to which the player has access. (#23)
  • Tab completion now will only suggest for /sign subcommands to which the player has access.
  • Removed locale strings:
    • usage_section – This string is no longer used due to the rework of /sign help.

Fixed

  • If another plugin modified the lines in a SignChangeEvent, SignEdit for Bukkit may ignore the updated lines and apply the staged lines, bypassing other plugins' changes. (#22)

    This defect is a regression from SignEdit for Bukkit = 1.12.2.
    The cause of this defect was an incorrect assumption that the sign lines array passed in the SignChangeEvent would be mutated in place by the Bukkit event handler and other listening plugins.

  • /sign undo and /sign redo missing from /sign help (#23)

  • Internal error while tab-completing and not looking at a sign

Under the Hood

  • Added documentation of the arguments in the locale strings
  • Simplified dependency injection for SignSubcommand subclasses
  • Event listeners split up between CoreSignEditListener, which is always used, and BookUiSignEditListener, which is only used when the editable book alternative sign editor GUI is enabled
  • The event listeners pertaining to the editable book alternative sign editor GUI are no longer registered if it is disabled.
  • SignEditInteractionManager extracted out of SignEditListener
  • Suppressed JavaReflectionMemberAccess warning in org.deltik.mc.signedit.commands.SignCommand.getTargetBlockOfPlayer() because we develop against Bukkit 1.13 before they added org.bukkit.entity.LivingEntity.getTargetBlockExact()

v1.12.8 (2021-06-21)

21 Jun 12:12
v1.12.8
5d6f08e
Compare
Choose a tag to compare

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 or compatibility.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.

Fixed

  • /sign ui compatibility with Paper 1.17 (#21)

v1.12.7 (2021-06-13)

13 Jun 01:09
v1.12.7
b09e9fa
Compare
Choose a tag to compare

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 or compatibility.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.

Fixed

  • /sign ui compatibility with Minecraft 1.17

Under the Hood

  • UiSignEditInteraction now uses much less reflection, which should hopefully make it more resistant to breaking changes in the unstable Minecraft server API.
  • MinecraftReflector has been renamed to CraftBukkitReflector and no longer tries to access net.minecraft.… packages by name.
    This plugin now performs reflection name lookups against CraftBukkit, which is hopefully more stable.
  • Java 1.8 (bytecode version 52.0) remains the minimum version for broader compatibility, even though Minecraft 1.17 itself requires Java 16.
  • Gradle has been updated from version 6.5.1 to version 7.0.2.

v1.12.6 (2020-11-17)

17 Nov 22:46
v1.12.6
089c23b
Compare
Choose a tag to compare

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 or compatibility.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.

Fixed

  • Regression from version = 1.12.5 caused Uncaught error: java.lang.NullPointerException when trying to target air

v1.12.5 (2020-11-17)

17 Nov 22:03
v1.12.5
a956c74
Compare
Choose a tag to compare

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 or compatibility.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.

Changed

  • Increased sign targeting distance from 10 to 20

Fixed

  • Improved sign targeting precision for Minecraft 1.13.2+ (#20)

v1.12.4 (2020-09-06)

06 Sep 07:48
v1.12.4
f8f6b2e
Compare
Choose a tag to compare

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 or compatibility.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)
    /sign set 1-4 <tab>

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 called SignText.reloadTargetSign() and uses the non-invasive BlockState.isPlaced() method.

v1.12.3 (2020-08-19)

19 Aug 23:39
v1.12.3
54edf9f
Compare
Choose a tag to compare

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 or compatibility.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 for multi-line selection (e.g. /sign 1,2,… and /sign cut 3-4,1-…)
  • If another plugin changes the sign text after using this plugin to edit a sign, a warning will be displayed.
    The example below shows the warning when another plugin strips out formatting codes from the execution of /sign set 3 &b&lSignEdit:
    "Modified by another plugin" warning
  • New locale strings:
    • modified_by_another_plugin – Warning to the player that another plugin changed their applied sign text
    • section_decorator – Theme to apply to the text shown at the end of before_section and after_section

Changed

  • /sign subcommands are now case-insensitive. For example, /sign ClEaR is now the same as /sign clear.
    Previously, capitalized subcommands would not be understood as valid subcommands.
  • /sign ui with the native sign editor no longer modifies the real sign on the server to present human-editable formatting codes.
    Only the player who invoked the command will see the reformatted sign.
  • If a different plugin undoes the sign edit but does not cancel the corresponding SignChangeEvent, this plugin will now tell the player "Sign edit forbidden by policy or other plugin" instead of "Sign did not change".
  • Changed locale strings:
    • before_section now takes one argument ({0}) for optional text that may be shown at the end of the same line as the section.
    • after_section now takes one argument ({0}) for optional text that may be shown at the end of the same line as the section.

Fixed

  • /sign cut only put empty lines into the clipboard (#17)
  • /sign ui with the native sign editor incorrectly puts the de-formatted sign text into the history (regression from = 1.12.2)
  • /sign ui on Minecraft 1.16.2+ loses all formatting codes when opening the default (native) sign editor GUI.
  • /sign ui with the native sign editor would not show the actual "after" sign lines if another plugin modified the SignChangeEvent originating from the Minecraft client.
  • Line selection validation for /sign cut and /sign copy
  • Line selection validation should not accept empty delimiters at the end (e.g. /sign set 1,3,,,,)

v1.12.2 (2020-08-10)

10 Aug 04:22
v1.12.2
b0709ce
Compare
Choose a tag to compare

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 or compatibility.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.

Major Bug Notice (#17)

Affected Versions

  • v1.12.2

Upgrade Paths

  • v1.12.2 → v1.12.3

Description

On affected versions, /sign cut will only put empty lines into the clipboard.

All affected users are encouraged to upgrade to v1.12.3 or newer to resolve this bug.

Workaround

Run /sign copy followed by /sign 1-4, which is functionally equivalent to the intended behavior of /sign cut.

Added

  • Allow the administrator to opt in or out of the alternative sign editor GUI introduced in = 1.12.0 with the new configuration option compatibility.sign-ui: [Auto|EditableBook|Native]
  • New configuration option to send extra events (BlockBreakEvent and BlockPlaceEvent) on sign edit: compatibility.edit-validation: [Standard|Extra|None]

Fixed

  • If there was an error while editing a sign in two or more steps (e.g. right-mouse click action, sign editor GUI), the error won't be shown to the player, and the server console shows a "Cannot pass event … to SignEdit v…" error and stack trace. (#16)
  • The SignChangeEvent emitted natively by the native sign editor GUI is no longer sent twice.

Under the Hood

  • Removed the confusing concept of "in progress" interactions.
    These are no different from "pending" interactions.
  • Cleaned up dependencies passed from SignSubcommand to SignEditInteraction by letting Dagger 2 handle them
  • Configuration getters now validate their options and return the default if the existing value is invalid.
  • Builds now use the Bukkit v1.13 library to limit feature development to the minimum version supported

v1.12.1 (2020-07-23)

23 Jul 20:23
v1.12.1
bcedf69
Compare
Choose a tag to compare

Changed

  • The alternative sign editor GUI introduced in = 1.12.0 has been restricted to Minecraft 1.16.1 only. Previously, the GUI was present on Minecraft 1.16 and above, but the bug that necessitated it was fixed in Minecraft 1.16.2. Using this version of the plugin on Minecraft 1.16.2 and higher will open the native sign editor GUI again.

Under the Hood

  • Build and test dependencies updated to their latest versions