Added the legacyMode variable to the GateUpdater class, which controls whether the system uses the legacy method for updating block states (REDSTONE_BLOCK or Material.AIR) or the modern method (GateUtils.setRedstonePower).
Added legacyMode configuration in the config.yml file with a corresponding comment explaining its functionality.
Updated messages.yml file.
Added a Sound.BLOCK_NOTE_BLOCK_PLING when a gate block is interacted with.
Added support for Material.TARGET block on output.
Changed
Improved the setRedstonePower function in the Bukkit plugin to make it safer. Added synchronization, improved exception handling.
Corrected the UpdateChecker class to use proper format specifiers in String.format.
Fixed
Fixed the java.util.UnknownFormatConversionException: Conversion = 'l' error in the UpdateChecker class.
Fixed issues in the messages.yml file related to incorrect format specifiers.