跳到正文
本頁目錄

lip setup

選擇工作區的遊戲和載入器。

概要

text
lip setup --game <VERSION> [--build <BUILD>] [--loader <LOADER> | --no-loader] [--accept-eula] [-n | --dry-run] [-h | --help]

說明

lip setup 把工作區的伺服器設為版本 <VERSION>、組建 <BUILD> 的遊戲,帶載入器 <LOADER> 或不帶載入器,並保留工作區中能與之配合的其他套件。在空目錄中執行它可以建立一個伺服器;以後想換遊戲版本或載入器時,再執行一次即可。

術語

  • 遊戲是已安裝的 github.com/LiteLDev/bds 套件,即 Minecraft Bedrock Dedicated Server。一個工作區最多有一個。沒有它的工作區沒有遊戲。
  • 遊戲的組建是 windows 或 linux:Windows 版伺服器或 Linux 版伺服器。
  • 載入器是已安裝的 github.com/LiteLDev/LeviLamina 套件。沒有它的工作區沒有載入器。
  • 如果某個 LeviLamina 版本對 github.com/LiteLDev/bds 的相依接受某個遊戲版本,就說它適配這個遊戲版本。

執行過程

依次進行:

  1. 根據選項確定遊戲、組建和載入器。參見載入器。
  2. 在下列情況下,它在做出任何變更之前失敗:
    • 組建為 linux 卻要求載入器:LeviLamina 只能載入到 Windows 版伺服器中;
    • 該遊戲版本沒有這種組建(參見遊戲版本與組建);
    • 載入器版本不存在,或者不適配該遊戲版本。
  3. 規劃要安裝的套件。遊戲從 github.com/LiteLDev/bds@<VERSION> 請求,組建為 linux 時從 github.com/LiteLDev/bds#linux@<VERSION> 請求;載入器從 github.com/LiteLDev/LeviLamina@<version> 請求。其他顯式安裝的套件按各自安裝時的來源重新請求。
    • 套件的版本仍然可用時保持不變;否則可能換成其他版本。
    • 工作區原有的遊戲和載入器會被解除安裝,除非它們正是所要求的。
    • 不再被任何顯式安裝的套件需要的相依會被解除安裝。
  4. 如果有被排除的套件,詢問如何處理。
  5. 如果要安裝遊戲,請你接受授權合約。
  6. 組建為 windows 時,安裝 Windows 版伺服器需要而系統缺少的組件:Linux 和 macOS 上的 Wine,以及 Microsoft Visual C++ 可再發行組件套件。參見 Linux 和 macOS。
  7. 作為一次工作區操作安裝這些套件。

如果工作區已經有所要求的遊戲和載入器,組建和版本都相同,lip setup 不會為它們安裝或解除安裝任何東西。

遊戲和載入器是顯式安裝的,並固定在各自的版本上。之後 lip install 和 lip update 都不會改變它們;要更換,請再次執行 lip setup。lip uninstall 可以像解除安裝其他套件一樣解除安裝它們。

載入器

選項載入器
既沒有 --loader 也沒有 --no-loader,組建為 windows等同於 --loader levilamina。
既沒有 --loader 也沒有 --no-loader,組建為 linux不帶載入器。
--loader levilamina適配該遊戲版本的最新 LeviLamina。沒有適配的版本時,命令在做出任何變更之前失敗。
--loader levilamina@<version>恰好是這個 LeviLamina 版本。它必須適配該遊戲版本。
--no-loader不帶載入器。

levilamina 不區分大小寫。

遊戲版本與組建

lip 從 https://levimc.org/api/v4/mc/versions/ 取得伺服器組建的清單。一個組建由四個數字組成,例如 1.21.80.03。它對應兩個遊戲版本:

組建遊戲版本指的是
1.21.80.031.21.80該系統的清單中第一個 1.21.80.* 組建。
1.21.80.031.21.80-patch.3恰好是組建 1.21.80.03。

所以一般寫 --game 1.21.80;需要某個特定組建時寫 --game 1.21.80-patch.3。Windows 組建和 Linux 組建是兩個獨立的清單:一個版本可能只存在於其中一個。

伺服器本身從 www.minecraft.net 下載。

組建在哪裡執行
windows在 Windows 上直接執行。在 Linux 和 macOS 上通過 lip 安裝的 Wine 執行。
linux只能在 x64 的 Linux 上執行。lip setup --build linux 在任何系統上都能執行,但在其他系統上 lip run 會拒絕啟動伺服器。

INFO

介面只在 lip 執行於 x64 的 Linux 時才提供組建 linux。命令沒有這個限制。

授權合約

遊戲受 Minecraft 終端使用者授權合約和 Microsoft 隱私權政策約束。

lip setup 要安裝遊戲時,會輸出這兩個連結,並詢問你是否接受。輸入 yes 繼續。其他任何回答都會讓命令在做出任何變更之前失敗。

  • 帶 --accept-eula 時,lip 不詢問。
  • 不帶它時,如果標準輸入或標準錯誤不是終端機(例如在指令碼中),命令在做出任何變更之前失敗。
  • 回答不會被記錄。每次安裝遊戲的設定都會重新詢問;遊戲保持不變的設定不會詢問。

被排除的套件

除遊戲和載入器之外,某個顯式安裝的套件如果沒有任何版本能與新的遊戲和載入器配合,它就會被排除。它可以是模組,也可以是其他任何套件。

lip 會列出被排除的套件,並詢問是否解除安裝它們。你沒有回答 yes 時,命令在做出任何變更之前失敗。標準輸入或標準錯誤不是終端機時,lip 無法詢問:命令失敗並列出它們。請先用 lip uninstall 解除安裝它們,再執行 lip setup。

如果剩下的套件根本無法一起安裝,命令失敗。

lip 先詢問被排除的套件,再詢問授權合約。兩個問題都在 lip 決定好要做什麼之後、下載遊戲之前提出。

選項

選項說明
--game <VERSION>遊戲版本,例如 1.21.0:不帶前導 v 的 SemVer 版本。必需。其他值都是用法錯誤。
--build <BUILD>windows 或 linux。省略時為 windows。其他值都是用法錯誤。
--loader <LOADER>levilamina 或 levilamina@<version>。其他值都是用法錯誤。
--no-loader設定遊戲而不帶載入器。同時給出 --loader 和 --no-loader 是用法錯誤。
--accept-eula接受授權合約,不再詢問。
-n、--dry-run試執行。不提問。消息會列出將被安裝、解除安裝或標記為顯式安裝的套件、被排除的套件,以及 lip 是否會請你接受授權合約。
-h、--help輸出幫助並結束。

輸出

lip setup 沒有結果:它不向標準輸出寫任何內容。進度、提問和最後一行都是寫到標準錯誤的消息。

結束狀態

結束代碼含義
0設定已完成,或試執行已結束。
非 0用法錯誤,或設定失敗。失敗的設定會被復原。

示例

建立一個遊戲版本為 1.21.0 的伺服器,帶適配它的最新 LeviLamina:

shell
lip setup --game 1.21.0

設定指定版本的 LeviLamina,並在指令碼中接受授權合約:

shell
lip setup --game 1.21.0 --loader levilamina@1.0.0 --accept-eula

設定不帶載入器的 Windows 版伺服器:

shell
lip setup --game 1.21.0 --no-loader

設定 Linux 版伺服器,它沒有載入器:

shell
lip setup --game 1.21.0 --build linux

檢視換到另一個遊戲版本會對已安裝的套件產生什麼影響:

shell
lip setup --game 1.21.50 --dry-run

另請參閱