Improvements
- Implements numerous efficiency optimizations
- Constructs a JSON template once per message during initialization instead of constructing every time the message executes
- Expands all placeholders in the entire JSON template instead of per field
- Utilizes the correct
Stringreplace method,replaceinstead ofreplaceAllfor literal replacement, completely eliminating the overhead of creating Regex/Pattern objects
- Ensures execution pools are isolated and thread safe
- Integrates a self-cleaning Guava cache to prevent data accumulation on long-running/high-volume servers
- Ensures all threads are shutdown gracefully when the plugin is disabled
- Adds optional anonymous metrics gathering via bStats
Development
- Migrates from Maven to Gradle
- Refactors the
Messageclass for better maintainability- Introduces the
HandlingServiceandEmbedUtilclasses for greater separation of concerns and closer adherence of the single responsibility principle - Breaks methods up to reduce their sizes for better readability
- Introduces the
- Eliminates the use of two nested lists (lists of lists) by utilizing small efficient record classes
Related PR: #8