Near-complete re-work of the SignLift plugin, including:
New:
- README for the repository.
- Added "/signlift reload" (and "/sreload") command.
- Writting in Javadocs.
- Included Jetbrains Annotations.
- Re-wrote command and tab-completion handling to SignLiftTabExecutor class.
- Added serialization in PrivateLiftSign and PlayerDataEntry for saving to a FileConfiguration.
- Cache all PrivateLiftSigns in memory to avoid loading them from disk on the main thread when trying to access them.
- Removed ad-hoc loading PrivateLiftSigns from disk, only done during Plugin onEnable() now to a cache.
Updates:
- .gitignore switched from Eclipse to Maven and Intellij IDEA.
- Initial rebuild and restructuring from unixminecraft to BSPF Systems, LLC for this fork.
- Version bump to 2.2.0.
- Updated to Minecraft/Bukkit 1.16.5.
- Better spacing on the file header.
- Reorganized all packages.
- Coding style updates.
- Reworked config.yml file to better follow the general standard of other config.yml files for plugins (re-)built by BSPF Systems.
- Updates to how PlayerDataEntries and PrivateLiftSigns store and re-create data.
- ChangeData made public.
- Re-organized onEnable() for SignLiftPlugin.
- Renamed SignLift class to SignLiftPlugin.
- Better permission checks for command execution.
- Reworked configuration data and message data loading and defaults.
- Better logic handling for LiftSigns (base, Private, and Public). Moved functionality around as needed.
- Expanded list of safe Blocks (for 1.16.5 Minecraft/Bukkit update).
- Made the data folder a local variable.
- Changed the save/delete methods for PrivateLiftSigns and save for PlayerDataEntries to be async.
- More detailed error logging.
- Rename plugin in plugin.yml to "SignLift".
Bugfixes:
- Moved where the configuration and message loading takes place.
- Re-worked the configuration/message loading to be on the main thread if it is not Command-triggered
- PlayerDataEntries are deserialized in a try-catch block.
- Use lowercase Plugin name when removing Command aliases.
- Save PrivateLiftSigns in the PrivateLiftSign directory, not the PlayerData directory.
- Use a java.util.ArrayList, not the Arrays.ArrayList when creating the args List.