Skip to content

🛠️ 開發者環境建置與 Gradle 編譯指南

📌 程式碼儲存庫原始碼聲明:本 Wiki 中的文件反映了程式碼儲存庫目前的最新原始碼狀態,可能包含尚未在 CurseForge 和 Modrinth 上發布的開發中功能或最新提交。


🏗️ 開發環境前置需求

從原始碼建置 True Sleep 需要準備以下工具鏈:

  1. Java 開發工具包 (JDK):JDK 25 或更高版本(如 Eclipse Temurin 25 或 GraalVM 25)。
  2. Git 版本控制:2.40 或更高版本。
  3. 整合開發環境 (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.jar
  • vanilla-outsider-true-sleep-1.3.22+26.2-sources.jar

2. 運行無頭 (Headless) 單元測試套件

bash
./gradlew test --no-daemon

3. 啟動開發客戶端進行除錯

bash
./gradlew runClient --no-daemon

4. 啟動專用獨立測試伺服器

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

Official documentation & web portal for Dasik Igaijinn mods.