Files
PlayHours/docs/CHANGELOG.md
Mr¤KayJayDee c0fd2a2787 feat(docs): complete PlayHours mod implementation with comprehensive documentation
- Add complete PlayHours mod source code with all features:
  * Schedule enforcement with per-day schedules and midnight-spanning support
  * Login control with configurable thresholds and exemptions
  * Warnings and auto-kick system with countdown functionality
  * Force modes (NORMAL/FORCE_OPEN/FORCE_CLOSED) for maintenance
  * Whitelist/blacklist system for player access control
  * Date exceptions for holidays and special events
  * Multi-language support (English/French) with smart time formatting
  * LuckPerms integration with vanilla ops fallback
  * Dynamic MOTD system with real-time schedule display
  * Comprehensive command system with permission integration
  * TOML configuration with hot-reload support

- Add comprehensive documentation suite:
  * Installation guide with step-by-step setup instructions
  * Complete configuration reference with all options
  * Commands reference with usage examples
  * Features overview with detailed explanations
  * MOTD system configuration and customization guide
  * Permissions system documentation with LuckPerms integration
  * Technical details covering architecture and limitations
  * Usage examples with real-world scenarios
  * Changelog with version history

- Add resource files:
  * Language files (en_us.json, fr_fr.json) with localized messages
  * Mod metadata (mods.toml) with proper Forge configuration
  * Resource pack metadata (pack.mcmeta)

- Update build configuration:
  * Gradle build system with proper dependencies
  * Project properties and version management
  * Development environment setup

- Restructure documentation:
  * Replace old README.txt with new comprehensive README.md
  * Create modular documentation structure in docs/ directory
  * Add cross-references and navigation between documents
  * Include quick start guide and common use cases

This commit represents the complete v1.0.0 release of PlayHours, a production-ready server operation hours enforcement mod for Minecraft Forge 1.20.1.
2025-10-23 23:28:20 +02:00

7.6 KiB

Changelog

This document tracks all changes and updates to the PlayHours mod.

[1.0.0] - 2025-01-23

🎉 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

For the latest updates and changes, check the repository or contact the author.