🛠️ 開發者環境建置與 Gradle 編譯指南
📌 程式碼儲存庫原始碼聲明:本 Wiki 中的文件反映了程式碼儲存庫目前的最新原始碼狀態,可能包含尚未在 CurseForge 和 Modrinth 上發布的開發中功能或最新提交。
🏗️ 開發環境前置需求
從原始碼建置 True Sleep 需要準備以下工具鏈:
- Java 開發工具包 (JDK):JDK 25 或更高版本(如 Eclipse Temurin 25 或 GraalVM 25)。
- Git 版本控制:2.40 或更高版本。
- 整合開發環境 (IDE):IntelliJ IDEA 2026.1+ 或配置了 Java Extension Pack 的 VS Code。
📥 程式碼儲存庫複製
bash
git clone https://github.com/Rifaditya/Vanilla-Outsider-True-Sleep.git
cd Vanilla-Outsider-True-Sleep🔨 Gradle 編譯建置指南
True Sleep 基於 Fabric Loom 建置體系與 Gradle 9.3+,並在建置時採用無常駐行程 (--no-daemon) 規範。
1. 編譯並打包 JAR 構件
bash
./gradlew build --no-daemon編譯完成的模組二進位 JAR 與原始碼 JAR 將生成於 build/libs/ 目錄下:
vanilla-outsider-true-sleep-1.3.22+26.2.jarvanilla-outsider-true-sleep-1.3.22+26.2-sources.jar
2. 運行無頭 (Headless) 單元測試套件
bash
./gradlew test --no-daemon3. 啟動開發客戶端進行除錯
bash
./gradlew runClient --no-daemon4. 啟動專用獨立測試伺服器
bash
./gradlew runServer --no-daemon📐 原始碼目錄工程架構圖
Vanilla-Outsider-True-Sleep/
├── build.gradle # Loom build script (Java 25 release)
├── gradle.properties # Target Minecraft & mod versions
├── src/main/java/net/vanillaoutsider/truesleep/
│ ├── TrueSleep.java # Entrypoint & ModVersionGuard init
│ ├── TrueSleepTags.java # Datapack tag constants
│ ├── command/
│ │ └── TrueSleepCommand.java# Brigadier /truesleep command tree
│ ├── config/
│ │ ├── TrueSleepRules.java # Namespaced GameRule definitions
│ │ ├── TrueSleepConfig.java # GSON JSON config persistence
│ │ ├── ClothConfigScreenHelper.java # Cloth Config GUI builder
│ │ └── ModMenuIntegration.java # ModMenu API integration
│ ├── logic/
│ │ ├── TimeWarpManager.java # Hyperspace acceleration engine
│ │ ├── BiologicalStasisHelper.java # Farm aging math & potion aging
│ │ ├── SleepHungerHelper.java # Sleep hunger exhaustion math
│ │ └── QuietClockManager.java # World clock interfaces
│ ├── mixin/
│ │ ├── BedRuleMixin.java # Bed threshold override
│ │ ├── EntityMixin.java # Drown immunity pulmonary stasis
│ │ ├── LevelMixin.java # Machine & hopper tick multiplier
│ │ ├── LivingEntityMixin.java # Active potion effect aging
│ │ ├── MobEffectInstanceMixin.java # Cascade duration decrement
│ │ ├── MobMixin.java # Mob freeze & aging bridge
│ │ ├── ServerLevelMixin.java # Sleep suppression & warp hook
│ │ └── VibrationSystemListenerMixin.java # Warden vibration mute
│ └── mixin/client/
│ ├── HudMixin.java # Sleep black fade cancellation
│ └── SkyRendererMixin.java # Angular celestial sky lerp
└── src/main/resources/
├── fabric.mod.json # Mod metadata & dependencies
├── truesleep.mixins.json # Common mixin configuration
├── truesleep.client.mixins.json # Client mixin configuration
└── data/truesleep/tags/ # Machine & worker mob tags