Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces several type-safety improvements to the mechanics system, adds a new event for item loading, and enhances error logging throughout the codebase. Additionally, it improves configuration handling for time values and refines Dialogs support based on configuration. Below are the most important changes:
Mechanics System Type-Safety Improvements
MechanicandMechanicFactoryto use generics, ensuring type safety when handling mechanics and their factories. This includes updating relevant method signatures and internal maps to use parameterized types.Event System Enhancements
ZMenuItemsLoadthat is fired after custom items and their mechanics are loaded or reloaded, providing listeners with the loaded item IDs and reload status.Error Logging Improvements
System.err.printlncalls with structured logging using theLoggerclass for better error reporting in placeholder handling and parsing.Configuration and Data Handling
secondsfield inActionPlayerDataand related loaders fromlongtoString, allowing for more flexible configuration (such as supporting expressions or different formats).Dialogs and Command Registration
enableMiniMessageFormatconfiguration is true, with clear logging to inform users of the requirement.Let me know if you have questions about any of these changes or need more details on a specific part!