refactor: replace BoostStorage with Jaloquent-backed EzBoostRepository#42
Merged
Conversation
Owner
ez-plugins
commented
May 18, 2026
- Add StorageSettings, StorageFactory, StorageBundle for multi-backend support
- Add PlayerBoostStateRecord and PlayerCooldownRecord Jaloquent models
- Add EzBoostRepository replacing raw YAML BoostStorage
- Add QueryableStorage impl to YamlDataStore for in-memory query support
- Add storage.yml config for backend selection (yaml/sqlite/mysql/mariadb/postgresql/h2)
- Run SQL migrations via MigrationRunner for table creation
- Add org.xerial:sqlite-jdbc:3.46.1.3 shaded for SQLite backend support
- Leaderboard now uses same backend as game state via StorageBundle
- Add StorageSettings, StorageFactory, StorageBundle for multi-backend support - Add PlayerBoostStateRecord and PlayerCooldownRecord Jaloquent models - Add EzBoostRepository replacing raw YAML BoostStorage - Add QueryableStorage impl to YamlDataStore for in-memory query support - Add storage.yml config for backend selection (yaml/sqlite/mysql/mariadb/postgresql/h2) - Run SQL migrations via MigrationRunner for table creation - Add org.xerial:sqlite-jdbc:3.46.1.3 shaded for SQLite backend support - Leaderboard now uses same backend as game state via StorageBundle
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Jaloquent's BaseModel.getStoragePath(prefix) produces storage paths in the form 'prefix/id' (forward-slash separator), creating a flat YAML structure where every top-level key is the full storage path of a record (e.g. 'boost_states/uuid' or 'cooldowns/uuid:speed'). The previous query() implementation assumed a nested two-level structure (prefix → id) with dot separators, so it iterated the wrong keys and returned full YAML paths instead of record IDs, breaking all ModelRepository.query() calls on the YAML backend. Fixed: - Rewrite YamlDataStore.query() to iterate flat top-level keys and extract the record ID from the substring after the last '/' - Return IDs (e.g. 'uuid') not storage paths, matching the contract expected by ModelRepository.query() → find(id) - Update YamlDataStoreTest query tests to use slash-separated paths matching actual Jaloquent usage, and assert returned IDs not paths All 67 tests pass (5 EzBoostRepositoryTest failures resolved).
…rsion() getPluginMeta() is Paper 1.20+ API and throws NoSuchMethodError on older Spigot/Paper builds. getDescription().getVersion() is universally available across all Bukkit/Spigot/Paper versions.
…atibility AsyncChatEvent is Paper-only API. AsyncPlayerChatEvent is the Bukkit/Spigot compatible equivalent, available on all server implementations. Message is retrieved via event.getMessage() rather than the Adventure component serializer.
Add storage.debug-logging option (default: false). When false, JaloquentConfig.enableLogging(false) suppresses the verbose 'Queried X rows from flat-map store' and 'Saved model...' console spam. Set to true to re-enable for debugging.
…ent links - Rewrite README: structured sections (Features, Installation, Commands, Permissions, Configuration, Storage Backends, Boost Tokens, WorldGuard, Developer API, License) - Rewrite listings/bbcode.txt: remove duplicate Admin GUI bullet, fix version claim (1.20+ → 1.7+), add storage backend info, fix Markdown links to BBCode, update docs URLs to GitHub Pages - Rewrite listings/markdown.md: remove duplicate opening paragraph, add storage backend to config section, remove orphaned links list at end - docs/_config.yml: pin just-the-docs remote_theme to v0.10.0 - docs/EzBoostAPI.md: add Jekyll front matter (fixes unstyled rendering) - docs/api.md: update JitPack version reference to 2.0.0 - docs/index.md: add Developer API section with JitPack dependency snippet - StorageFactory.java: add @see Jaloquent GitHub link in Javadoc - storage.yml: add Jaloquent credit comment - release.yml: set Modrinth project ID
…odrinth
- Replace all — (em dash) with – (en dash) across README.md, listings/,
and docs/ for visual consistency (bbcode.txt was already using –)
- listings/markdown.md (Modrinth description) SEO improvements:
- Remove # EzBoost H1 (Modrinth provides its own page title)
- Move intro paragraph before images so search indexers read text first
- Rewrite intro: add 'Minecraft', 'potion boost plugin', 'PlaceholderAPI',
'SQLite/MySQL/MariaDB/PostgreSQL' for keyword coverage
- Remove Documentation section from top of description
- Add Documentation section at bottom with GitHub Pages links and table
- Docs links updated from GitHub blob URLs to ez-plugins.github.io/ezboost
…d with Java 17 - plugin.yml: api-version 26.1.2 → 1.13 so the plugin loads on Spigot/Paper 1.13–1.21 without an api-version mismatch warning - pom.xml: compiler source/target/release 25 → 17 for wider JDK compatibility - smoke-test.yml: add paper-1.21 (1.21.11) matrix entry via legacy papermc API; tighten pass condition to also require 'Enabling EzBoost' in server log so an api-version-rejected plugin doesn't falsely count as passing
- Bump version 2.0.0 → 2.1.0 in pom.xml - CHANGELOG: promote Unreleased → [2.1.0] 2026-05-18, add CI/compat entries - README, docs/index.md: version badge and Maven dep → 2.1.0; add Folia support and /boosttop leaderboard to feature lists - docs/api.md: Maven dep → 2.1.0 - docs/commands.md: add /boosttop command entry; remove duplicate Notes block - docs/permissions.md: add ezboost.top permission row - listings/markdown.md + bbcode.txt: add Folia to intro and feature lists; add /boosttop to commands table; add ezboost.top to permissions section
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.