# Usage Examples This guide provides real-world examples and scenarios for configuring PlayHours in different server environments. ## 🏢 Business Server ### Standard Business Hours **Scenario:** A business server that operates Monday-Friday, 9 AM to 6 PM. **Configuration:** ```toml [general] timezone = "America/New_York" force_mode = "NORMAL" closing_threshold_minutes = 15 deny_login_during_threshold = true kick_exempt = false warning_minutes = [15, 10, 5, 1] countdown_seconds = 5 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "en_us" motd_enabled = true [defaults] periods = ["09:00 AM-06:00 PM"] [days] monday = ["09:00 AM-06:00 PM"] tuesday = ["09:00 AM-06:00 PM"] wednesday = ["09:00 AM-06:00 PM"] thursday = ["09:00 AM-06:00 PM"] friday = ["09:00 AM-06:00 PM"] saturday = [] sunday = [] ``` **Commands:** ```bash # Set timezone /hours set timezone America/New_York # Configure default hours /hours set default periods add "09:00 AM-06:00 PM" # Set weekend to closed /hours set day sat periods clear /hours set day sun periods clear # Configure warnings /hours set warnings 15 10 5 1 /hours set countdown 5 ``` ## 🎮 Gaming Server ### Extended Gaming Hours **Scenario:** A gaming server with extended hours, including late-night sessions. **Configuration:** ```toml [general] timezone = "Europe/London" force_mode = "NORMAL" closing_threshold_minutes = 30 deny_login_during_threshold = true kick_exempt = false warning_minutes = [30, 15, 10, 5, 1] countdown_seconds = 10 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "en_us" motd_enabled = true [defaults] periods = ["06:00 PM-11:59 PM"] [days] monday = ["06:00 PM-11:59 PM"] tuesday = ["06:00 PM-11:59 PM"] wednesday = ["06:00 PM-11:59 PM"] thursday = ["06:00 PM-11:59 PM"] friday = ["06:00 PM-02:00 AM"] # Extended Friday night saturday = ["02:00 PM-02:00 AM"] # All day Saturday sunday = ["02:00 PM-11:59 PM"] ``` **Commands:** ```bash # Set timezone /hours set timezone Europe/London # Configure default hours /hours set default periods add "06:00 PM-11:59 PM" # Set extended Friday night /hours set day fri periods add "06:00 PM-02:00 AM" # Set all-day Saturday /hours set day sat periods add "02:00 PM-02:00 AM" # Configure extended warnings /hours set warnings 30 15 10 5 1 /hours set countdown 10 ``` ## 🎓 Educational Server ### School Hours with Breaks **Scenario:** An educational server that operates during school hours with breaks. **Configuration:** ```toml [general] timezone = "America/Chicago" force_mode = "NORMAL" closing_threshold_minutes = 10 deny_login_during_threshold = true kick_exempt = false warning_minutes = [10, 5, 1] countdown_seconds = 3 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "en_us" motd_enabled = true [defaults] periods = ["08:00 AM-03:00 PM"] [days] monday = ["08:00 AM-03:00 PM"] tuesday = ["08:00 AM-03:00 PM"] wednesday = ["08:00 AM-03:00 PM"] thursday = ["08:00 AM-03:00 PM"] friday = ["08:00 AM-03:00 PM"] saturday = [] sunday = [] [exceptions] closed_dates = [ "2025-12-23", # Winter break "2025-12-24", "2025-12-25", "2025-12-26", "2025-12-27", "2025-12-28", "2025-12-29", "2025-12-30", "2025-12-31", "2026-01-01", "2026-01-02", "2026-01-03" ] ``` **Commands:** ```bash # Set timezone /hours set timezone America/Chicago # Configure school hours /hours set default periods add "08:00 AM-03:00 PM" # Add winter break closures /hours exceptions add-closed "2025-12-23" /hours exceptions add-closed "2025-12-24" /hours exceptions add-closed "2025-12-25" # ... (continue for all break days) # Configure warnings /hours set warnings 10 5 1 /hours set countdown 3 ``` ## 🏥 Healthcare Server ### 24/7 with Maintenance Windows **Scenario:** A healthcare server that operates 24/7 with scheduled maintenance windows. **Configuration:** ```toml [general] timezone = "America/Los_Angeles" force_mode = "NORMAL" closing_threshold_minutes = 0 deny_login_during_threshold = false kick_exempt = false warning_minutes = [60, 30, 15, 10, 5, 1] countdown_seconds = 10 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "en_us" motd_enabled = true [defaults] periods = ["12:00 AM-11:59 PM"] # 24/7 [days] monday = ["12:00 AM-11:59 PM"] tuesday = ["12:00 AM-11:59 PM"] wednesday = ["12:00 AM-11:59 PM"] thursday = ["12:00 AM-11:59 PM"] friday = ["12:00 AM-11:59 PM"] saturday = ["12:00 AM-11:59 PM"] sunday = ["12:00 AM-11:59 PM"] [exceptions] closed_dates = [ "2025-01-01", # New Year's Day "2025-07-04", # Independence Day "2025-12-25" # Christmas Day ] # Maintenance windows (closed for maintenance) open_dates = [ "2025-01-15 02:00 AM-04:00 AM", # Monthly maintenance "2025-02-15 02:00 AM-04:00 AM", "2025-03-15 02:00 AM-04:00 AM" ] ``` **Commands:** ```bash # Set timezone /hours set timezone America/Los_Angeles # Configure 24/7 operation /hours set default periods add "12:00 AM-11:59 PM" # Add holiday closures /hours exceptions add-closed "2025-01-01" /hours exceptions add-closed "2025-07-04" /hours exceptions add-closed "2025-12-25" # Add maintenance windows /hours exceptions add-open "2025-01-15 02:00 AM-04:00 AM" # Configure extended warnings /hours set warnings 60 30 15 10 5 1 /hours set countdown 10 ``` ## 🎉 Event Server ### Special Event Hours **Scenario:** A server that hosts special events with extended hours. **Configuration:** ```toml [general] timezone = "Europe/Paris" force_mode = "NORMAL" closing_threshold_minutes = 20 deny_login_during_threshold = true kick_exempt = false warning_minutes = [20, 15, 10, 5, 1] countdown_seconds = 5 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "fr_fr" motd_enabled = true [defaults] periods = ["07:00 PM-11:00 PM"] [days] monday = ["07:00 PM-11:00 PM"] tuesday = ["07:00 PM-11:00 PM"] wednesday = ["07:00 PM-11:00 PM"] thursday = ["07:00 PM-11:00 PM"] friday = ["07:00 PM-11:00 PM"] saturday = ["07:00 PM-11:00 PM"] sunday = ["07:00 PM-11:00 PM"] [exceptions] open_dates = [ "2025-12-31 08:00 PM-11:59 PM", # New Year's Eve "2025-07-14 08:00 PM-11:59 PM", # Bastille Day "2025-12-25 08:00 PM-11:59 PM" # Christmas Eve ] ``` **Commands:** ```bash # Set timezone /hours set timezone Europe/Paris # Configure regular hours /hours set default periods add "07:00 PM-11:00 PM" # Add special event hours /hours exceptions add-open "2025-12-31 08:00 PM-11:59 PM" /hours exceptions add-open "2025-07-14 08:00 PM-11:59 PM" /hours exceptions add-open "2025-12-25 08:00 PM-11:59 PM" # Configure warnings /hours set warnings 20 15 10 5 1 /hours set countdown 5 ``` ## 🛡️ Whitelist Server ### Invitation-Only Server **Scenario:** A private server with whitelist-only access. **Configuration:** ```toml [general] timezone = "America/New_York" force_mode = "NORMAL" closing_threshold_minutes = 0 deny_login_during_threshold = true kick_exempt = false warning_minutes = [15, 10, 5, 1] countdown_seconds = 5 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "en_us" motd_enabled = true [defaults] periods = ["06:00 PM-10:00 PM"] [days] monday = ["06:00 PM-10:00 PM"] tuesday = ["06:00 PM-10:00 PM"] wednesday = ["06:00 PM-10:00 PM"] thursday = ["06:00 PM-10:00 PM"] friday = ["06:00 PM-10:00 PM"] saturday = ["02:00 PM-10:00 PM"] sunday = ["02:00 PM-10:00 PM"] [lists] whitelist_enabled = true whitelist = ["Player1", "Player2", "Player3"] blacklist_enabled = false blacklist = [] ``` **Commands:** ```bash # Set timezone /hours set timezone America/New_York # Configure regular hours /hours set default periods add "06:00 PM-10:00 PM" # Set weekend hours /hours set day sat periods add "02:00 PM-10:00 PM" /hours set day sun periods add "02:00 PM-10:00 PM" # Add players to whitelist /hours lists whitelist toggle Player1 /hours lists whitelist toggle Player2 /hours lists whitelist toggle Player3 # Enable whitelist /hours lists whitelist enable ``` ## 🚫 Blacklist Server ### Problem Player Management **Scenario:** A server that needs to block specific players. **Configuration:** ```toml [general] timezone = "America/Chicago" force_mode = "NORMAL" closing_threshold_minutes = 0 deny_login_during_threshold = true kick_exempt = false warning_minutes = [15, 10, 5, 1] countdown_seconds = 5 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "en_us" motd_enabled = true [defaults] periods = ["12:00 PM-11:59 PM"] [days] monday = ["12:00 PM-11:59 PM"] tuesday = ["12:00 PM-11:59 PM"] wednesday = ["12:00 PM-11:59 PM"] thursday = ["12:00 PM-11:59 PM"] friday = ["12:00 PM-11:59 PM"] saturday = ["12:00 PM-11:59 PM"] sunday = ["12:00 PM-11:59 PM"] [lists] whitelist_enabled = false whitelist = [] blacklist_enabled = true blacklist = ["Griefer123", "Spammer456", "Troll789"] ``` **Commands:** ```bash # Set timezone /hours set timezone America/Chicago # Configure hours /hours set default periods add "12:00 PM-11:59 PM" # Add players to blacklist /hours lists blacklist toggle Griefer123 /hours lists blacklist toggle Spammer456 /hours lists blacklist toggle Troll789 # Enable blacklist /hours lists blacklist enable ``` ## 🔧 Maintenance Mode ### Server Maintenance **Scenario:** A server that needs to enter maintenance mode. **Commands:** ```bash # Enter maintenance mode /hours force close # Check status /hours status # Exit maintenance mode /hours force normal ``` **Configuration:** ```toml [general] force_mode = "FORCE_CLOSED" # Maintenance mode ``` ## 🌍 Multi-Language Server ### International Server **Scenario:** A server with international players using different languages. **Configuration:** ```toml [general] timezone = "UTC" force_mode = "NORMAL" closing_threshold_minutes = 15 deny_login_during_threshold = true kick_exempt = false warning_minutes = [15, 10, 5, 1] countdown_seconds = 5 exempt_bypass_schedule = true exempt_bypass_threshold = true message_locale = "en_us" # or "fr_fr" motd_enabled = true [defaults] periods = ["12:00 PM-11:59 PM"] [days] monday = ["12:00 PM-11:59 PM"] tuesday = ["12:00 PM-11:59 PM"] wednesday = ["12:00 PM-11:59 PM"] thursday = ["12:00 PM-11:59 PM"] friday = ["12:00 PM-11:59 PM"] saturday = ["12:00 PM-11:59 PM"] sunday = ["12:00 PM-11:59 PM"] ``` **Commands:** ```bash # Set UTC timezone /hours set timezone UTC # Configure 24/7 operation /hours set default periods add "12:00 PM-11:59 PM" # Set language /hours set message_locale en_us # or fr_fr ``` ## 📢 MOTD Examples ### Basic MOTD **Configuration:** ```toml [motd] show_status = true show_next_open = true show_next_close = true use_colors = true open_color = "green" closed_color = "red" ``` **Display:** ``` 🟢 Open | Closes at 10:00 PM ``` ### Custom MOTD **Configuration:** ```toml [motd] custom_format = "Status: %status% - Next: %openday% at %opentime%" use_colors = true open_color = "green" closed_color = "red" ``` **Display:** ``` Status: Closed - Next: Monday at 9:00 AM ``` ### Branded MOTD **Configuration:** ```toml [motd] custom_lines = [ "🎮 My Game Server", "Status: %status%", "Next open: %openday% at %opentime%" ] use_colors = true open_color = "green" closed_color = "red" ``` **Display:** ``` 🎮 My Game Server Status: Open Next open: Monday at 9:00 AM ``` ## 🔄 Configuration Updates ### Hot Reload Examples **After editing config file:** ```bash /hours reload ``` **After changing timezone:** ```bash /hours set timezone Europe/London /hours reload ``` **After modifying schedule:** ```bash /hours set day mon periods add "09:00 AM-06:00 PM" /hours reload ``` ## 🚨 Emergency Scenarios ### Server Emergency **Immediate closure:** ```bash /hours force close ``` **Emergency maintenance:** ```bash /hours force close # Perform maintenance /hours force normal ``` ### Player Issues **Block problematic player:** ```bash /hours lists blacklist toggle ProblemPlayer ``` **Temporary maintenance:** ```bash /hours force close # Fix issues /hours force normal ``` ## 📚 Related Documentation - **[Configuration Guide](CONFIGURATION.md)** - Detailed configuration options - **[Commands Reference](COMMANDS.md)** - All available commands - **[Features Overview](FEATURES.md)** - How features work - **[MOTD System](MOTD.md)** - MOTD configuration --- *For more configuration options, see the [Configuration Guide](CONFIGURATION.md).*