Tags
Creators
Details
2.0.0
Compatibility
Changes
🔥 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.
🏗️ Package Restructure
The entire codebase has been reorganised into a clean, domain-driven package layout under 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 from ZNxPiglinRush → PiglinRushPlugin.
🧩 Interface-backed Architecture
Four new API interfaces introduced under dev.znxki.zNxPiglinRush.api:
SchedulerService— abstracts Folia vs Spigot/Paper scheduling. Two implementations:FoliaSchedulerServiceandBukkitSchedulerService, selected at runtime viaSchedulerServiceFactorySpawnStrategy— strategy pattern for spawn behaviour. Implementations:StandardSpawnStrategyandWaveSpawnStrategy.SpawnLocationResolverextracted as a shared utilityStatsProvider— read-only interface over spawn statistics.SpawnTracker(exSpawnStats) implements itStorageBackend— persistence abstraction.SqliteStorageBackendis the built-in implementation
⚙️ Config Updater
New ConfigUpdater automatically migrates old config files to the current schema without overwriting user values:
- Detects config version via
config-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 swappableSpawnContextrecord introduced — passes spawn event data cleanly into strategy implementations- Fixed
update-checkerpermission check: wasmagmaspawner.admin, now correctlypiglinrush.admin - Fixed
getMagmaConfig()leftover reference — nowgetPluginConfig() - Renamed:
HeatmapManager→HeatmapService,DiagnosticsMonitor→DiagnosticsService,BlockSpawnerConfig→SpawnerDefinition,PiglinRushConfig→PluginConfig
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:XwaSxcre:LV5NOVmZ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:XwaSxcre:LV5NOVmZ"
}

