• v1.0.0 64edfa4d73

    v1.0.0
    All checks were successful
    Release Build / build-and-release (push) Successful in 2m27s
    Stable

    kayjaydee released 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 /hours command tree
    • Permission Integration - Automatic permission checking
    • Hot Reload - /hours reload for configuration changes
    • Status Commands - /hours status for current information
    • Force Mode Commands - /hours force normal|open|close
    • Configuration Commands - /hours set for various settings
    • Schedule Commands - /hours set day for per-day configuration
    • Exception Commands - /hours exceptions for date exceptions
    • List Commands - /hours lists for whitelist/blacklist management
    • MOTD Commands - /hours motd for 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 PlayerLoggedInEvent with 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

    1. Download playhours-1.0.0.jar from build/libs/
    2. Place in server's mods/ folder
    3. Start server to generate default config
    4. Edit config/playhours.toml to your needs
    5. Use /hours reload or 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