-
v1.0.0
StableAll checks were successfulRelease Build / build-and-release (push) Successful in 2m27sreleased this
2025-10-24 00:05:59 +02:00 | 1 commits to main since this release🎉 Initial Release
This is the first public release of PlayHours, a comprehensive server operation hours enforcement mod for Minecraft Forge.
✨ Features Added
Core Functionality
- Schedule Enforcement - Per-day schedules with midnight-spanning support
- Login Control - Deny logins outside open hours with clear messages
- Warnings & Auto-Kick - Configurable warnings and automatic player removal
- Force Modes - Override schedule (NORMAL/FORCE_OPEN/FORCE_CLOSED)
- Whitelist/Blacklist - Player access control independent of schedule
- Date Exceptions - Special open/closed dates for holidays and events
Multi-Language Support
- English (en_us) - 12-hour AM/PM format with full localization
- French (fr_fr) - 24-hour format with full localization
- Smart Time Formatting - Automatically adapts to locale
- Humanized Messages - User-friendly status messages instead of raw booleans
Permission System
- LuckPerms Integration - Soft dependency with automatic detection
- Vanilla Ops Fallback - Works with or without LuckPerms
- Permission Nodes -
playhours.admin,playhours.view,playhours.exempt - Timeout Protection - Prevents blocking on permission checks
MOTD System
- Dynamic Server List - Real-time schedule information in server list
- Status Display - Open/Closed status with color coding
- Next Open/Close Times - Shows when server will open/close next
- Countdown Timer - Minutes until close when closing soon
- Force Mode Indicators - FORCE_OPEN/FORCE_CLOSED status display
- Custom Formatting - Flexible format strings with placeholders
- Performance Optimized - Updates every 60 seconds (configurable)
Command System
- Comprehensive Commands - Full
/hourscommand tree - Permission Integration - Automatic permission checking
- Hot Reload -
/hours reloadfor configuration changes - Status Commands -
/hours statusfor current information - Force Mode Commands -
/hours force normal|open|close - Configuration Commands -
/hours setfor various settings - Schedule Commands -
/hours set dayfor per-day configuration - Exception Commands -
/hours exceptionsfor date exceptions - List Commands -
/hours listsfor whitelist/blacklist management - MOTD Commands -
/hours motdfor MOTD control
Configuration System
- TOML Configuration - Human-readable configuration format
- Hot Reload - Apply changes without server restart
- Validation - Comprehensive configuration validation
- Default Values - Sensible defaults for all settings
- Documentation - Extensive inline documentation
🔧 Technical Features
Architecture
- Modular Design - Clean separation of concerns
- Event-Driven - Efficient event handling system
- Performance Optimized - Minimal server resource usage
- Error Handling - Graceful degradation on errors
- Logging - Comprehensive logging for debugging
Time Handling
- Timezone Support - Full IANA timezone support
- Midnight Spanning - Proper handling of time ranges across midnight
- DST Support - Automatic daylight saving time handling
- Precise Calculations - Accurate time-based schedule calculations
Schedule Logic
- Priority System - Force mode → Blacklist → Whitelist → Exceptions → Schedule
- Caching - Efficient schedule data caching
- Validation - Time range validation and error handling
- Flexibility - Support for complex schedule patterns
📚 Documentation
Comprehensive Documentation
- Installation Guide - Step-by-step setup instructions
- Configuration Guide - Complete configuration reference
- Commands Reference - All available commands and usage
- Features Overview - Detailed feature explanations
- MOTD System - MOTD configuration and customization
- Permissions System - Permission details and LuckPerms integration
- Technical Details - Architecture and implementation details
- Usage Examples - Real-world scenarios and configurations
- Changelog - Version history and updates
Code Documentation
- JavaDoc - Comprehensive code documentation
- Inline Comments - Detailed implementation comments
- Architecture Notes - Design decisions and rationale
- Performance Notes - Optimization strategies and considerations
🛠️ Development
Build System
- Gradle Build - Modern build system with wrapper
- Forge Integration - Full Forge mod development support
- Dependency Management - Proper dependency handling
- Version Management - Semantic versioning
Code Quality
- Clean Code - Well-structured and readable code
- Error Handling - Comprehensive error handling
- Logging - Appropriate logging levels
- Testing - Manual testing and validation
🚨 Known Limitations
Technical Limitations
- Early Login Denial - Forge 1.20.1 lacks pre-join network event
- Deprecation Warning -
FMLJavaModLoadingContext.get()deprecated - MOTD Caching - Some server list clients may cache MOTD content
Workarounds
- Login Guard - Uses
PlayerLoggedInEventwith immediate disconnection - Compatibility - Required for 1.20.1 compatibility
- Update Frequency - MOTD updates every 60 seconds by default
📋 Requirements
System Requirements
- Java: 17 or 23 (recommended: 17 LTS)
- Minecraft: 1.20.1
- Forge: 47.4.10 or higher
- Server: Dedicated server (not single-player)
Mod Requirements
- Server-side only - No client mod required
- Forge mod loader - Not compatible with Fabric or other loaders
- Dedicated server - Single-player mode not supported
🔄 Installation
Quick Start
- Download
playhours-1.0.0.jarfrombuild/libs/ - Place in server's
mods/folder - Start server to generate default config
- Edit
config/playhours.tomlto your needs - Use
/hours reloador restart server
Configuration
- Auto-generated - Configuration file created on first startup
- Sensible defaults - Works out of the box with minimal configuration
- Hot reload - Apply changes without server restart
- Validation - Configuration validation with helpful error messages
🔮 Future Plans
Potential Enhancements
- Additional Languages - Support for more locales
- Advanced Scheduling - More complex schedule patterns
- Integration APIs - External system integration
- Performance Improvements - Further optimization
- Feature Extensions - Additional functionality
Version Roadmap
- 1.1.0 - Additional language support
- 1.2.0 - Advanced scheduling features
- 2.0.0 - Major feature additions
Release Notes
v1.0.0 Release Notes
- Initial release - First public release
- Full feature set - All planned features implemented
- Comprehensive documentation - Complete documentation suite
- Production ready - Tested and validated for production use
Breaking Changes
- None - This is the initial release
Deprecations
- None - This is the initial release
Security
- Permission system - Secure permission checking
- Input validation - Comprehensive input validation
- Error handling - Secure error handling
Performance
- Optimized - Performance optimized for production use
- Caching - Efficient caching strategies
- Resource management - Minimal resource usage
Downloads