2.1.0latestzNxPiglinRush 2.1.0Jun 9, 2026 v2.1.0 — Multi-Backend Storage & Paper-Native Library Loading
Major storage overhaul: choose between YAML, JSON, H2, MySQL and MariaDB directly from the config. Heavy JDBC dependencies are fetched at runtime via Paper's native library loader — keeping the JAR well under 3.5 MB.
---
The plugin now supports five storage backends, configurable without recompiling or swapping JARs. *Storage Backend Selection
Added
YAMLbackend — stores stats instats.yml, zero extra dependencies *Added
JSONbackend — stores stats instats.json, uses Gson already bundled by Paper *Existing
H2backend retained as the default (embedded, file-based, no remote setup) *Added
MYSQLbackend — full HikariCP connection pool, remote MySQL server *Added
MARIADBbackend — same as MySQL but uses the official MariaDB JDBC driver Choose your backend in `config.yml`:
---storage: type: H2 # YAML | JSON | H2 | MYSQL | MARIADB database: host: localhost port: 3306 name: minecraft username: root password: "" pool-size: 5 connection-timeout: 5000
HikariCP and the JDBC drivers for MySQL/MariaDB are not shaded into the plugin JAR. Instead they are resolved at server startup using Paper'sPaper-Native Library Loading (No JAR Bloat)
PluginLoader/MavenLibraryResolverAPI — the same mechanism used by other major plugins. *JAR stays lean even with SQL support (H2 is the only shaded lib, ~2 MB) *
Libraries are cached by Paper in
libraries/and not re-downloaded on every restart 🚫 Spigot support dropped — the plugin now targets Paper / Folia only* (paper-plugin.yml) ---
A styled startup banner now prints to the console when the plugin loads, showing version, platform (Paper/Folia), active storage backend and spawner count. ---Startup Banner
* NewInternal Changes
StorageLibraryLoaderimplementsPluginLoader— declared underloader:inpaper-plugin.yml* NewStorageBackendFactoryselects the correct backend at runtime *PluginConfigexposes aStorageTypeenum and full HikariCP connection parameters `ConfigUpdater` bumped to schema v3* with automatic migration — existing configs gain thestorage:section transparently (default:H2) * Removed legacyplugin.yml(Spigot) — onlypaper-plugin.ymlremains ---
Existing installs*: configs are migrated automatically on first boot; stats are preserved Default storage* remainsNotes
H2— no action required if you are happy with the current behaviour MySQL / MariaDB require a running database server and the `storage.database.` fields filled in * Safe drop-in update from v2.0.x2.0.1zNxPiglinRush 2.0.1Jun 9, 2026 v2.0.1 — Storage Backend Migration
Internal database overhaul replacing SQLite with H2 to reduce dependency weight and improve build footprint.
---
The plugin storage layer has been migrated from SQLite to H2. *Database Changes
Replaced
SqliteStorageBackendwith H2-based implementation *Removed SQLite JDBC dependency from the build *
Significantly reduced shaded JAR size *
Lighter and cleaner dependency tree ---
* Updated database initialization and connection handling * Preserved full compatibility with existing stats and persistence logic * No changes required to user configuration or usage ---Internal Improvements
* No configuration changes * No gameplay or feature changes * Fully backward compatible from a user perspective * Safe drop-in update from v2.0.0Notes
2.0.0zNxPiglinRush 2.0.0Jun 9, 2026 v2.0.0 — Architecture Overhaul
Complete rewrite of the plugin internals. Same behaviour on the surface, professional-grade code underneath. Drop-in update — just swap the jar and run
---/pr reload.
The entire codebase has been reorganised into a clean, domain-driven package layout underPackage Restructure
dev.znxki.zNxPiglinRush: | Old package | New package | |---|---| |config.engine|spawner.strategy| |config.registry|spawner.registry| |config.spawner|config(→SpawnerDefinition) | |events|listener| |hook|integration| |stats.repository|stats.storage| Main class renamed fromZNxPiglinRush→PiglinRushPlugin. ---
Four new API interfaces introduced underInterface-backed Architecture
dev.znxki.zNxPiglinRush.api: - `SchedulerService` — abstracts Folia vs Spigot/Paper scheduling. Two implementations:FoliaSchedulerServiceandBukkitSchedulerService, selected at runtime viaSchedulerServiceFactory- `SpawnStrategy` — strategy pattern for spawn behaviour. Implementations:StandardSpawnStrategyandWaveSpawnStrategy.SpawnLocationResolverextracted as a shared utility - `StatsProvider` — read-only interface over spawn statistics.SpawnTracker(exSpawnStats) implements it - `StorageBackend` — persistence abstraction.SqliteStorageBackendis the built-in implementation ---
NewConfig Updater
ConfigUpdaterautomatically migrates old config files to the current schema without overwriting user values: - Detects config version viaconfig-versionfield (absent = legacy v1) - v1 → v2: moves flat keys (spawn-count,spawn-cooldown, etc.) intospawners.magma_block.*, preserving all user-set values - Creates a timestamped backup (config_backup_YYYYMMDD_HHmmss.yml) before any migration - Fills missing keys from bundled defaults on every startup — future updates add new options automatically ---
-Other Improvements
ModrinthUpdateSourceextracted fromUpdateChecker— HTTP logic is now separate and swappable -SpawnContextrecord introduced — passes spawn event data cleanly into strategy implementations - Fixedupdate-checkerpermission check: wasmagmaspawner.admin, now correctlypiglinrush.admin- FixedgetMagmaConfig()leftover reference — nowgetPluginConfig()- Renamed:HeatmapManager→HeatmapService,DiagnosticsMonitor→DiagnosticsService,BlockSpawnerConfig→SpawnerDefinition,PiglinRushConfig→PluginConfig1.1.1zNxPiglinRush 1.1.1Jun 7, 2026 v1.1.1 — Manifest Fix
Small maintenance release to correctly declare Folia compatibility in plugin metadata.
---
The plugin already supported Folia internally, but the compatibility flag was missing from the plugin descriptors. *Folia Compatibility
Added
folia-supported: truetoplugin.yml*Added
folia-supported: truetopaper-plugin.ymlThis ensures Folia properly recognizes the plugin as compatible during startup. ---
* No code changes * No configuration changes * No behavior changes * Safe drop-in update from v1.1.0Notes
1.1.0zNxPiglinRush 1.1.0Jun 6, 2026 v1.1.0 — Folia & Paper Command System
Full Folia compatibility + Paper's new command system. Drop-in upgrade — no config changes needed.
---
The plugin now runs natively on Folia's region-threaded architecture. A newFolia Support
SchedulerAdapterlayer handles all scheduling transparently — the correct scheduler is picked at runtime via reflection, no config needed. | Task | Folia | Spigot / Paper | |---|---|---| | Extra piglin spawns |RegionScheduler.run()|BukkitScheduler.runTask()| | Join notifications |GlobalRegionScheduler.runDelayed()|BukkitScheduler.runTaskLater()| | Update check (HTTP) |AsyncScheduler.runNow()|runTaskAsynchronously()| ---
Commands are now registered viaPaper Command System
LifecycleEventManager+ Brigadier on Paper and Folia, fixing the long-standing "commands registered too late" issue introduced in Paper 1.20.6. -Added
paper-plugin.ymlfor Paper/Folia environments -Spigot automatically falls back to the legacy
plugin.yml+PluginCommandapproach -/piglinrush infonow shows the active runtime (Spigot/PaperorFolia) ---
-Fixes & Improvements
folia-supported: trueadded toplugin.yml- Update checker now queries Modrinth for bothpaperandspigotloaders - Cleaned up all internal strings tozNxPiglinRush/piglinrush.admin1.0.0zNxPiglinRush 1.0.0Jun 6, 2026
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta