StormtrooperX 1.9.0
release13 мая 2026 г.What's New
Added
- Folia support via a runtime-detected
PluginSchedulerabstraction. On Folia 1.20.4+, async work routes through Folia'sAsyncScheduler/GlobalRegionScheduler(via reflection so the Spigot API 1.18 compile dependency is unchanged). On Spigot, Paper, and Purpur the legacyBukkitScheduleris used. The scheduler is selected once at plugin enable;plugin.ymldeclaresfolia-supported: true. - Graceful Folia fallback. If
RegionizedServeris detected but Folia's scheduler API cannot be bound (e.g., a future signature change),PluginScheduler.createlogs a WARNING and falls back to the legacy scheduler instead of failing plugin enable. Async tasks continue working in degraded mode rather than bricking the plugin.
Changed
DatabaseManagerH2 thread safety. H2 operations (isOptedOut,setOptOut) are now serialized through an internal lock. JDBCConnectioninstances are not thread-safe, and Folia's regional async pool can dispatch concurrent opt-out reads/writes onto the single shared H2 connection. The MySQL path is unchanged — HikariCP gives each thread its own pooled connection, so no lock is taken there.UpdateCheckercallback contract. The update-check callback is now invoked on the async worker thread instead of being hopped back to the main thread. Logging only (java.util.loggingis thread-safe). The previous main-thread hop was unnecessary on Spigot/Paper and forbidden on Folia. Javadoc onUpdateCallback#onCompletedocuments the off-thread contract.- Constructor signatures.
OptOutManagernow takesPluginSchedulerin place ofPlugin;UpdateCheckernow takes an additionalPluginSchedulerargument. Internal change — affects noplugin.yml/permissions surface, no end-user config.
Security
- Tightened
UpdateCheckergithubRepovalidation to^[a-zA-Z0-9._-]+/[a-zA-Z0-9._-]+$(matching GitHub's actual repo-name charset). Defense-in-depth against path traversal, CRLF injection, and arbitrary URL-component characters in the segment that flows into the GitHub API URL. The current call site is hardcoded toGooberCraft/StormtrooperX, so this is preventative only.
Tests
- New
PluginSchedulerTest— 7 tests covering the legacy scheduler delegation (viaMockedStatic<Bukkit>) and the factory's non-Folia branch - New
UpdateCheckerconstructor tests — 5 tests covering semicolon injection, multi-segment paths, path traversal, CRLF injection, and the valid-character allowlist - Total test count: 156 → 170
Upgrade Notes
If upgrading from 1.8.x: No configuration changes required. plugin.yml adds folia-supported: true automatically; existing config.yml files continue to work as-is.
Server compatibility: Folia 1.20.4+ is now supported in addition to Spigot, Paper, and Purpur. Folia is detected automatically at startup — log message confirms which scheduler is in use (Folia detected, using regional schedulers vs Standard Bukkit scheduler in use). No Folia or Paper API dependency was added to the build; the plugin still compiles against Spigot API 1.18.
JAR verification: Built and attested via GitHub Actions with Sigstore. Verify with gh attestation verify StormtrooperX-1.9.0.jar --repo GooberCraft/StormtrooperX (requires gh 2.43.0+).
StormtrooperX 1.8.0
release13 мая 2026 г.What's New
Added
- Parched mob support (Minecraft 1.21.11+, Mounts of Mayhem) — the new desert skeleton variant that fires Arrows of Weakness with a bow. Treated as a standard bow user for accuracy nerfing. Gracefully disabled on servers older than 1.21.11.
Tests
- Added
EntityConfigLoadingTest— 10 tests covering bothloadEntityConfigvariants, the version-gatedIllegalArgumentExceptionfallback (the path Parched takes on older servers), and thedisplayEntityStatusDisabled branch - Total test count: 146 → 156
StormtrooperXclass line coverage improved from 61% → 72%- Tightened Jacoco package line-coverage minimum from 0.50 → 0.60
Dependencies
- Bump JUnit Jupiter from 5.14.3 → 6.0.3 (major version; transparent upgrade with no production-code impact)
Documentation
- Backfilled CHANGELOG entries for v1.6.3 (Modrinth publishing + dependabot/CI bumps) and v1.7.0 (Java 11 drop, MC 1.18 baseline, +5 test classes) which previously shipped without release notes
Upgrade Notes
If upgrading from 1.7.x: No configuration changes required. The new parched: entry is added with sensible defaults (enabled, accuracy 0.7) on first config regeneration; existing configs continue to work as-is.
Server compatibility: Parched only spawns/exists on Minecraft 1.21.11+. On earlier versions, the plugin logs Entity 'Parched' is not available in this Minecraft version (1.21.11+ required) and continues normally — no errors, no startup failures.
StormtrooperX 1.7.0
release25 апреля 2026 г.What's New
Compatibility
- Dropped Java 11 support — minimum is now Java 17
- Raised minimum Minecraft version to 1.18 — drops support for 1.13–1.17
- Added Minecraft 26.1.x support
- Added Java 25 to CI test matrix (17, 21, 25)
Dependencies
- Bump
mysql-connector-j9.6.0 → 9.7.0
CI / GitHub Actions
- Bump
codecov/codecov-actionv5 → v6 (Node 20 → 24) - Bump
softprops/action-gh-releasev2 → v3 (Node 20 → 24)
Tests
- Added
BowShootEventTest— 8 tests coveringonBowShoot()event handler - Added
CommandHandlerTest— 11 tests covering allonCommand()paths - Added
ConfigMigrationTest— 4 tests coveringmigrateConfigToV3() - Expanded
OptOutManagerTest— async DB exception handling coverage - Expanded
PluginResourceTest—api-versionassertion
Upgrade Notes
If upgrading from 1.6.x: No configuration changes required. Your existing config.yml is fully compatible.
Java requirement: Java 17 or higher is now required. Minecraft 1.18+ already requires Java 17, so this should have no impact on existing servers.
StormtrooperX 1.6.3
release18 марта 2026 г.Dependency Updates
- Updated
mysql-connector-jfrom 9.5.0 to 9.6.0 (7 bug fixes including multihost URL and batch statement handling) - Updated
bstats-bukkitfrom 3.1.0 to 3.2.1 (improved robustness against exceptions) - Updated
org.jetbrains:annotationsfrom 26.0.2 to 26.1.0 - Updated Maven build plugins (compiler 3.15.0, surefire 3.5.5, shade 3.6.2)
StormtrooperX 1.6.2
release2 декабря 2025 г.What's Changed
Performance
- Use EnumMap for faster entity config lookups (~30% improvement)
Bug Fixes
- Guard against zero-length velocity vectors (prevents NaN in edge cases)
- Validate MySQL pool configuration values with clear warnings for invalid settings
Documentation
- Document valid ranges for MySQL pool settings in config.yml
Dependencies
- Update Mockito from 5.15.2 to 5.20.0
Full Changelog: https://github.com/GooberCraft/StormtrooperX/compare/v1.6.1...v1.6.2

