File Details
LimitedSpectator-neoforge-2.0.0.jar
- R
- Jan 23, 2026
- 173.95 KB
- 430
- 1.21.11+10
- NeoForge
File Name
LimitedSpectator-neoforge-2.0.0.jar
Supported Versions
- 1.21.11
- 1.21.10
- 1.21.9
- 1.21.8
- 1.21.7
- 1.21.6
- 1.21.5
- 1.21.4
- 1.21.3
- 1.21.2
- 1.21.1
Curse Maven Snippet
[2.0.0] - 2026-01-18
🚀 Multi-Loader Architecture Release
Major architectural overhaul introducing support for NeoForge, Fabric, and Quilt mod loaders with shared core logic.
Added
- Multi-Loader Support - Three separate builds for different mod loaders:
LimitedSpectator-neoforge-2.0.0.jar(171 KB) - Full configuration supportLimitedSpectator-fabric-2.0.0.jar(156 KB) - Hardcoded defaultsLimitedSpectator-quilt-2.0.0.jar(158 KB) - Uses Fabric API compatibility
- Core Abstraction Layer:
SpectatorConfiginterface - Loader-agnostic configuration contractSpectatorManagerclass - Shared business logic (100% code reuse)SpectatorStaterecord - Immutable state representationDistanceValidationResultrecord - Type-safe validation results
- Loader-Specific Adapters:
NeoForgeSpectatorConfig- Adapts NeoForge config to interfaceFabricSpectatorConfig- Hardcoded defaults for FabricQuiltSpectatorConfig- Delegates to Fabric config (composition pattern)
- Fabric Implementation:
LimitedSpectatorFabric- Fabric entry point with Fabric API integration- Command registration via
CommandRegistrationCallback.EVENT - Event handlers via
ServerTickEventsandServerPlayConnectionEvents
- Quilt Implementation:
LimitedSpectatorQuilt- Quilt entry point (100% Fabric API compatible)- Uses Fabric API for all events and commands
- Demonstrates perfect Fabric-Quilt compatibility
- Build System:
- Separate Gradle build files per loader (
build.gradle,build-fabric.gradle,build-quilt.gradle) - Source exclusions to prevent cross-loader compilation errors
- Java 21 toolchain configuration
- Separate Gradle build files per loader (
Changed
- Architecture: Refactored from monolithic NeoForge-only to multi-loader with shared core
- Code Organization:
- Core logic moved to loader-agnostic classes
- Loader-specific code isolated in separate packages
- Zero code duplication (>95% shared code)
- Logging: Replaced
System.out.printlnwith SLF4J Logger in Fabric/Quilt implementations - Build Process:
- NeoForge build excludes Fabric/Quilt sources
- Fabric build excludes NeoForge/Quilt sources
- Quilt build excludes NeoForge/Fabric entry points
Technical
- Thread-Safe State Management:
SpectatorManagerusesConcurrentHashMapfor multiplayer safety - Type-Safe Validation: Enum-based validation results prevent null pointer exceptions
- Backward Compatibility: Legacy HashMaps maintained with
@Deprecatedannotation - Dual-Write Strategy: Ensures external mods/mixins continue working
- Clean Separation: Zero loader dependencies in core business logic
Performance
- Shared
SpectatorManagerinstance across all loaders - Singleton pattern for config adapters
- Lazy configuration evaluation
- Minimal per-tick overhead (~0.01ms per spectator)
Documentation
- Updated README.md with multi-loader installation instructions
- Added loader comparison table
- Documented build commands for each loader
Migration Notes
- NeoForge users: No changes required - fully backward compatible with v1.x
- Fabric/Quilt users: New! Download the appropriate JAR for your loader
- Configuration: Only NeoForge version supports TOML config (Fabric/Quilt use hardcoded defaults)
Known Limitations
- Fabric and Quilt versions use hardcoded configuration (config system planned for future release)
- Network packet synchronization not yet implemented for Fabric/Quilt (HUD behavior may differ)
- Quilt version requires Fabric API (QSL support planned)

