Product
Moss
Version 1.2.2
Spring-powered dependency injection and lifecycle management for Minecraft plugins
Description
About Moss
Moss
Moss is Moonrise Studios' Spring-powered foundation for Minecraft plugin development. It brings dependency injection, lifecycle orchestration, and clean component wiring to Paper, BungeeCord, and Velocity projects without forcing developers into oversized plugin bootstrap classes or static-heavy architecture.
Instead of manually connecting listeners, commands, services, and configuration loaders, Moss embeds a Spring ApplicationContext inside the plugin lifecycle and gives teams a clean, modular structure from day one.
Why It Exists
Minecraft plugins often start simple and become hard to maintain fast. Main classes become catch-alls, dependencies spread through static access patterns, and platform-specific setup makes shared architecture difficult.
Moss solves that by giving plugin teams:
- Constructor-driven dependency injection
- Clear lifecycle hooks for load, enable, reload, and disable
- Platform bootstraps for Paper, BungeeCord, and Velocity
- Consistent bean discovery and invocation across plugin modules
- A lightweight path to Spring patterns without building a custom framework per project
What Makes It Valuable
Clean plugin architecture
Moss keeps plugin entrypoints thin and moves real logic into managed components, making large codebases easier to grow, test, and maintain.
Cross-platform foundation
The project supports multiple Minecraft server platforms while preserving one mental model for lifecycle and component management.
Faster developer onboarding
Because wiring, lifecycle flow, and component registration are standardized, new contributors can understand project structure quickly and start shipping features faster.
Production-friendly integration
Moss is designed to be shaded into plugin jars, making it practical for real deployments where teams want internal framework benefits without runtime setup complexity.
Technical Highlights
- Java 21
- Spring
ApplicationContextembedded in Minecraft plugin lifecycle - Support for Paper, BungeeCord, and Velocity
- Gradle-based publishing to Moonrise Studios Maven infrastructure
- Example plugins included for each supported platform
Ideal Use Cases
- Large Minecraft plugin projects that need stronger architecture
- Teams moving away from static singletons and tightly coupled main classes
- Shared platform tooling for a studio maintaining multiple server products
- Plugins that need lifecycle-aware initialization, reload handling, or modular services
