- 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.
42 lines
2.4 KiB
Java
42 lines
2.4 KiB
Java
package com.mrkayjaydee.playhours.config;
|
|
|
|
import net.minecraftforge.common.ForgeConfigSpec;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Day-specific schedule configuration for PlayHours.
|
|
* Contains opening periods for each day of the week.
|
|
*/
|
|
public final class DaysConfig {
|
|
private DaysConfig() {}
|
|
|
|
public static ForgeConfigSpec.ConfigValue<List<? extends String>> MON;
|
|
public static ForgeConfigSpec.ConfigValue<List<? extends String>> TUE;
|
|
public static ForgeConfigSpec.ConfigValue<List<? extends String>> WED;
|
|
public static ForgeConfigSpec.ConfigValue<List<? extends String>> THU;
|
|
public static ForgeConfigSpec.ConfigValue<List<? extends String>> FRI;
|
|
public static ForgeConfigSpec.ConfigValue<List<? extends String>> SAT;
|
|
public static ForgeConfigSpec.ConfigValue<List<? extends String>> SUN;
|
|
|
|
static void init(ForgeConfigSpec.Builder builder) {
|
|
builder.push("days");
|
|
MON = builder.comment("Monday-specific opening periods. Format: 'hh:mm AM-hh:mm PM'. Empty => use defaults.")
|
|
.defineListAllowEmpty("monday", new ArrayList<>(), o -> o instanceof String);
|
|
TUE = builder.comment("Tuesday-specific opening periods. Format: 'hh:mm AM-hh:mm PM'. Empty => use defaults.")
|
|
.defineListAllowEmpty("tuesday", new ArrayList<>(), o -> o instanceof String);
|
|
WED = builder.comment("Wednesday-specific opening periods. Format: 'hh:mm AM-hh:mm PM'. Empty => use defaults.")
|
|
.defineListAllowEmpty("wednesday", new ArrayList<>(), o -> o instanceof String);
|
|
THU = builder.comment("Thursday-specific opening periods. Format: 'hh:mm AM-hh:mm PM'. Empty => use defaults.")
|
|
.defineListAllowEmpty("thursday", new ArrayList<>(), o -> o instanceof String);
|
|
FRI = builder.comment("Friday-specific opening periods. Format: 'hh:mm AM-hh:mm PM'. Empty => use defaults.")
|
|
.defineListAllowEmpty("friday", new ArrayList<>(), o -> o instanceof String);
|
|
SAT = builder.comment("Saturday-specific opening periods. Format: 'hh:mm AM-hh:mm PM'. Empty => use defaults.")
|
|
.defineListAllowEmpty("saturday", new ArrayList<>(), o -> o instanceof String);
|
|
SUN = builder.comment("Sunday-specific opening periods. Format: 'hh:mm AM-hh:mm PM'. Empty => use defaults.")
|
|
.defineListAllowEmpty("sunday", new ArrayList<>(), o -> o instanceof String);
|
|
builder.pop();
|
|
}
|
|
}
|