跳到正文
本頁目錄

介面

本頁是 lip 交互介面的簡明參考:按鍵、各個頁面及其背後的命令,以及每個頁面都遵守的規則。想一步一步學習介面,請從介面導覽開始。

規範性定義見協議的 lip-tui(1) 頁。

啟動

shell
lip

標準輸入和標準輸出都是終端機時,不帶參數的 lip 會開啟介面;否則輸出幫助(見命令行)。

  • 介面同一時間只操作一個工作區,即目前工作區:一開始是啟動 lip 時所在的資料夾。
  • 介面由 lip 的常駐程式執行。可以同時開啟多個介面。
  • 終端機至少要有 60 列、16 行。更小的終端機裡,lip 會請你放大終端機,這時唯一可用的按鍵是 Ctrl+C,它不經詢問直接結束。
  • 終端機不足 80 列時,焦點在頁面上的時候,側邊欄只為每個頁面顯示一個符號。

按鍵

同樣的按鍵在每個頁面上作用相同。螢幕最下面一行列出焦點所在位置可用的按鍵。

按鍵作用
↑ ↓在清單或選單裡移動。在側邊欄裡顯示上一個或下一個頁面。
← →在側邊欄和頁面之間、並排的窗格或按鈕之間移動;變更有多個取值的選項。
Enter開啟或執行選取的內容。在清單的某一行上,開啟它的操作。
Space在可以多選的地方勾選一行;開啟或關閉一個選項。
Tab、Shift+Tab前往下一個或上一個區域,在側邊欄和頁面的各個區域之間循環。
Esc返回上一層:從對話方塊回到頁面,從頁面的內層區域回到前一個區域,從頁面回到側邊欄。在側邊欄裡詢問是否結束。
PgUp PgDn Home End在清單或文字裡翻頁。在側邊欄裡,Home 和 End 顯示第一個和最後一個頁面。
Ctrl+C在「伺服器」頁且伺服器執行時,停止伺服器。正在執行變更時,取消它。其他情況下詢問是否結束。
字母和數字焦點在輸入框裡時用於輸入。在其他地方不起作用:介面沒有字母快速鍵。

頁面

頁面作用命令
首頁顯示目前工作區的狀態和下一步該做什麼。
伺服器啟動和停止伺服器,顯示它的輸出,把你輸入的內容發給它。lip run --managed --detach、lip config set restart … --workspace
模組列出已安裝的套件;安裝、更新和解除安裝它們。lip list、lip install、lip update、lip uninstall
取得模組搜尋 levimc.org 上的模組,並安裝其中某個版本。lip install
遊戲設定編輯 server.properties、allowlist.json 和 permissions.json。無
模組設定編輯已安裝模組的設定檔。無
工作區列出工作區;切換、新增和移除工作區;建立伺服器;變更某個伺服器的遊戲或載入器。lip setup
工具建立 lip.toml、移轉 tooth.json、封裝 ZIP、檢視套件資訊。lip pkg init、lip pkg migrate、lip pkg pack、lip pkg view
設定語言、GitHub 代理伺服器、自動重新啟動、快取、lip 的更新、常駐程式、版本。lip config、lip cache clean、lip self-update、lip daemon status、lip --version

介面執行的命令遵守該命令自己的頁面的定義,以目前工作區為工作目錄,但有以下不同:

  • 命令的輸出顯示在介面裡,是英文。
  • 命令要詢問的內容在對話方塊裡詢問。
  • 命令失敗時,介面顯示原因,然後繼續執行。

預覽與應用

對工作區裡的套件所做的每項變更都走同一個流程:安裝、更新、解除安裝,以及安裝遊戲或載入器。

步驟發生什麼
1. 預覽lip 以試執行的方式執行命令,顯示它將要做什麼。此時什麼都沒有改變。
2. 套用或取消套用繼續。取消不作任何變更。預覽發現沒有可改的內容時,只有關閉一個按鈕。
3. 授權合約僅當這次變更要安裝遊戲時:lip 顯示《Minecraft 終端使用者授權合約》和《Microsoft 隱私權政策》。接受繼續;拒絕不作任何變更。
4. 進度Esc 或 Ctrl+C 取消;已經做的部分會被復原,並有一個標題為已取消的對話方塊說明。這不算失敗。
5. 結果命令的輸出,以及 ✓ 完成。
  • 應用不會從頭再來:預覽時讀取和下載的內容會直接使用。
  • 安裝伺服器的預覽裡點名了某些已安裝的模組、說它們沒有適合新遊戲或新載入器的版本時,選擇套用會解除安裝這些模組。
  • 失敗時顯示原因、lip 給出的提示(如果有),以及失敗報告的路徑(在工作區的 .lip/logs 下)。

伺服器執行期間

只要 lip 在執行某個工作區的伺服器,這個伺服器就算在執行,不管是誰啟動的:介面、lip run --managed,還是終端機裡普通的 lip run。這期間,介面對該工作區的行為如下:

內容伺服器執行期間
安裝、更新和解除安裝套件(模組、取得模組)不可用。
在它的資料夾裡建立伺服器、變更它的遊戲或載入器(工作區)不可用。
server.properties、allowlist.json、permissions.json(遊戲設定)只顯示,不能修改或儲存。未儲存的變更會保留到伺服器停止。
模組的設定檔(模組設定)照常修改和儲存。頁面會提示變更可能需要重新啟動。
其他一切:瀏覽模組、切換工作區、工具、設定照常。

不可用的內容仍然顯示在螢幕上,是灰色的,並註明原因:請先停止伺服器。

以上只針對介面。命令 lip install、lip update、lip uninstall 和 lip setup 在伺服器執行期間不會被拒絕,見用命令執行伺服器。

結束介面不會停止由常駐程式執行的伺服器。如果 lip 因為無法使用常駐程式而自己執行介面,結束時會停止介面啟動的伺服器。

設定檔

檔案讀取寫入
server.properties「遊戲設定」頁顯示時。儲存時:只寫改過的屬性的值,不動其他任何字元。檔案不存在時不會建立。
allowlist.json、permissions.json同上。不存在的檔案讀作空清單。儲存時:整個檔案,不含註釋。檔案不存在時會建立。
模組的 .json 檔案在「模組設定」頁選取該檔案時。儲存時:整個檔案,不含註釋,每個名稱留在原位。檔案已不存在時不會建立。
模組的其他檔案同上。從不寫入。
  • lip 讀不懂的檔案只顯示,從不寫入。
  • 自 lip 讀取之後在磁碟上被改動過的檔案,只有在你同意時才會被覆寫。
  • 帶著未儲存的變更離開頁面時,會詢問是否儲存。
  • 儲存的變更在伺服器下次啟動時生效。

模組的檔案指 mods/<mod>/config/ 裡的檔案;如果一個都沒有,則是直接放在 mods/<mod>/ 裡的 .json、.ini、.toml、.yml、.yaml 檔案(manifest.json 除外),以及 mods/<mod>/data/config.json。

語言

language 的值介面
en英文
zh-Hans簡體中文
zh-Hant繁體中文
未設定系統的語言:英文,或按區域設定決定的中文。

語言在設定頁選擇,或者用 lip config 設定;見設定。變更立即生效。命令輸出的內容在任何語言下都是英文。

GitHub 檢查

介面啟動時,如果 github_proxy 沒有設定,lip 會在背景檢查一次能否連上 GitHub,最多等待 10 秒。連不上時,介面會詢問怎樣連線:

回答作用
使用代理伺服器詢問代理伺服器的網址、進行測試,並把 github_proxy 設為該網址。
直接連線把 github_proxy 設為空值:lip 不再檢查,也不再詢問。
以後再說不作任何變更;下次介面啟動時 lip 會再檢查。

見設定。

結束狀態

結束介面時,lip 以程式碼 0 結束,不管在介面裡執行的命令結果如何,也不管伺服器以什麼程式碼結束。

檔案

檔案介面
狀態目錄裡的 workspaces.json讀寫工作區清單。
設定目錄裡的 config.toml讀取 language 和 github_proxy;在「設定」頁和 GitHub 檢查時寫入它們。
工作區裡的 .lip/config.toml讀寫 restart(自動重新啟動)。
工作區裡的 server.properties、allowlist.json、permissions.json讀取;儲存時寫入。
mods/ 下模組的設定檔讀取;儲存時寫入其中的 .json 檔案。
工作區裡的 .lip/logs/命令失敗時寫入失敗報告。
https://levimc.org/api/v4/mods/讀取模組目錄。其內容不會寫入磁碟,也不經過 github_proxy。

介面執行的命令會讀寫它們各自頁面所說的檔案。lip 的所有檔案和目錄見檔案。

另請參閱