跳到正文
本頁目錄

工具

讀完本頁,你就能使用介面裡為製作套件的人準備的四個工具:建立 lip.toml、移轉舊的 tooth.json、封裝 ZIP,以及檢視任意一個套件的套件檔。

如果你只是執行伺服器,用不到這個頁面。想了解什麼是套件、怎樣發佈套件,請閱讀建立套件。

頁面

這些工具在目前工作區裡操作。要處理你自己的模組,請在模組的資料夾裡啟動 lip,或者在工作區頁新增那個資料夾。

開啟頁面:在側邊欄移到工具,按 Enter。

資料夾 D:\projects\WelcomeMod 裡的「工具」頁:四個操作,其中「移轉 tooth.json」是灰色的;下面是關於所選操作的一句話,再下面是工作區,以及它有沒有 lip.toml 和 tooth.json,兩者都是「不存在」。

  1. 所選操作的作用。用 ↑ ↓ 移動,按 Enter 執行。
  2. 目前工作區:這些操作所在的資料夾。
  3. 這個資料夾裡有沒有 lip.toml 和 tooth.json:已存在或不存在。lip 每兩秒檢視一次,所以這兩行會跟上你在 lip 之外做的改動。
  4. 灰色的操作:按資料夾現在的情況做不了的操作。見灰色的操作。
操作作用命令
建立 lip.toml為新的套件寫出套件檔。lip pkg init
移轉 tooth.json把 lip 0.x 的套件檔轉換為 lip.toml。lip pkg migrate
封裝 ZIP…把一個資料夾封裝成 ZIP 壓縮檔。lip pkg pack
檢視套件資訊…顯示一個套件的套件檔和可用版本。lip pkg view

名稱以 … 結尾的操作會先詢問,然後才動手。

灰色的操作

哪些操作做得了,由狀態行裡的兩個檔案決定。被它們排除的操作顯示為灰色。選取這樣的操作時,說明下面會多出一行原因,螢幕最下面一行也不再列出 Enter。

選取了灰色的「移轉 tooth.json」操作。它的說明下面寫著「這裡沒有 tooth.json。」

  1. 原因。
操作何時變灰頁面上的說明
建立 lip.toml資料夾裡已有 lip.toml。lip 不會取代它。這裡已有 lip.toml。
移轉 tooth.json資料夾裡已有 lip.toml。這裡已有 lip.toml。
移轉 tooth.json資料夾裡沒有 tooth.json。這裡沒有 tooth.json。

**封裝 ZIP…和檢視套件資訊…**從不變灰。伺服器是否在執行對這個頁面沒有影響:四個操作都不會改動伺服器。

檔案的情況一變,操作就恢復可用。想用新的 lip.toml 重新開始,就在檔案管理器裡刪掉舊的;兩秒之內頁面會顯示 lip.toml 不存在,建立 lip.toml 又可以選擇了。

建立 lip.toml

  1. 移到建立 lip.toml,按 Enter。lip 會詢問套件 ID。

    「建立 lip.toml」的進度對話方塊上面有一個標題為「lip 詢問」的對話方塊,詢問「the package id of the package (a Go module path, e.g. github.com/owner/repo)」,輸入框裡是 github.com/steve/WelcomeMod。

  2. 輸入 ID,按 Enter。ID 就是套件的儲存庫地址,例如 github.com/owner/repo。不是這種地址的回答會被重新詢問。按 Esc 取消,不寫入任何內容。問題本身是命令的原話,是英文。

  3. lip 在工作區裡寫出 lip.toml 並告知。按 Enter。

    「建立 lip.toml」對話方塊寫著「已建立 lip.toml。」,有「確定」按鈕。

檔案裡有你給的 ID、版本 0.1.0,以及一個針對 Windows x64 伺服器的條目:

toml
format = 4
id = "github.com/steve/WelcomeMod"
version = "0.1.0"

[[variants.""]]
side = "server"
platform = "win-x64"

之後請用文字編輯器編輯它;每個欄位的含義見 lip.toml。

檔案有了之後,這個操作就變灰了:

選取了灰色的「建立 lip.toml」操作。它的說明下面寫著「這裡已有 lip.toml。」,lip.toml 的狀態行是「已存在」。

  1. lip 不會取代已有的 lip.toml。

移轉 tooth.json

lip 0.x 的套件用 tooth.json 描述自己。這個操作寫出內容相同的 lip.toml,並刪除 tooth.json。

  1. 移到移轉 tooth.json。狀態行是 lip.toml 不存在、tooth.json 已存在時,它才可以選擇。

    選取了「移轉 tooth.json」操作。狀態行顯示 lip.toml 不存在、tooth.json 已存在。

    1. 讓這個操作可以進行的狀態行。
  2. 按 Enter。如果 tooth.json 缺少 lip.toml 需要的內容,lip 會逐項詢問。這裡舊檔案沒有寫明適用的平臺:

    標題為「lip 詢問」的對話方塊詢問「the platforms (RIDs, comma-separated, e.g. win-x64) the variants without a platform apply to」,輸入框裡是 win-x64。

    輸入回答,按 Enter。無效的回答會被重新詢問。

  3. lip 顯示結果。按 Enter。

    「移轉 tooth.json」對話方塊裡有一行以警告符號開頭、關於 preserve_files 的內容,最後是「已將 tooth.json 移轉為 lip.toml。」和「確定」按鈕。

    1. 以 ⚠ 標出的提示:新檔案裡換了一種寫法的內容,或者新檔案裡沒有位置放的內容。請逐條閱讀,並檢查 lip.toml 裡對應的部分。提示是英文。
    2. 結果:lip.toml 已寫入,tooth.json 已刪除。
  4. 狀態行現在反過來了,這個操作也變灰了:已經沒有可移轉的東西。

    狀態行顯示 lip.toml 已存在、tooth.json 不存在。頁面上寫著「這裡已有 lip.toml。」

兩種格式之間有哪些變化,見移轉套件。

封裝 ZIP…

這個操作把一個資料夾封裝成 ZIP 壓縮檔,用來附在套件的發行版上。它會問兩件事:封裝哪個資料夾,以及寫到哪個檔案。

  1. 移到封裝 ZIP…,按 Enter。資料夾瀏覽器從工作區開啟,標題是要封裝的資料夾。

    「要封裝的資料夾」瀏覽器顯示 D:\projects\WelcomeMod,裡面有資料夾 WelcomeMod,以及「選擇此資料夾」「新增資料夾…」「取消」三個按鈕。

    1. 將被封裝的資料夾。要封裝工作區本身就不用動;否則開啟別的資料夾。
    2. 按 Tab 到按鈕,在選擇此資料夾上按 Enter。
  2. 第二個瀏覽器開啟,標題是儲存 ZIP。它預設使用工作區裡的 package.zip 這個名字。

    「儲存 ZIP」瀏覽器顯示同一個資料夾,裡面有檔案 package.zip;「檔案名稱」輸入框裡是 package.zip,下面有「檔案:.zip」的說明,以及「儲存」「新增資料夾…」「取消」三個按鈕。

    1. ZIP 寫入的資料夾。想存到別處,就開啟別的資料夾。
    2. ZIP 的檔案名稱。按 Tab 到這裡可以改名;沒寫 .zip 會自動補上。在這個輸入框裡按 Enter 就是儲存。

    按 Esc 回到第一步。

  3. 如果同名檔案已經存在,lip 會先詢問再取代。Enter 預設按下的是取消,它會回到檔案名稱那一步;要取代,先按 ← 再按 Enter。

    「封裝 ZIP」對話方塊寫著「package.zip 已存在。要取代它嗎?」,有「取代」和「取消」兩個按鈕。

  4. lip 寫出壓縮檔並顯示它的路徑。按 Enter。

    「封裝 ZIP」對話方塊寫著壓縮檔已經封裝好,並給出它的路徑 D:\projects\WelcomeMod\package.zip,有「確定」按鈕。

壓縮檔裡是資料夾中的所有檔案,路徑與在資料夾裡相同;壓縮檔自身,以及資料夾頂層的 .git 和 .lip 兩個資料夾除外。

瀏覽器的完整用法見資料夾和檔案瀏覽器。

檢視套件資訊…

這個操作在安裝之前顯示 lip 對一個套件的瞭解:它的套件檔,以及有哪些版本。它不會改動工作區。

移到檢視套件資訊…,按 Enter。lip 會問套件在哪裡:

「檢視套件資訊」對話方塊有三行:「已安裝的模組…」「輸入套件…」和「瀏覽…」。下面一行說明所選項顯示什麼。

在這三項裡按 Esc 都會回到這個選擇。

已安裝的模組

  1. 在**已安裝的模組…**上按 Enter。lip 列出工作區裡安裝的內容:先是你安裝的模組,然後是它們的相依,最後是遊戲和載入器。

    「已安裝的模組」對話方塊列出七個套件及其版本,下面一行是所選套件的完整名稱。

    1. 已安裝的版本。
    2. 灰色的行:只是因為別的套件需要才安裝的套件。

    太長的名稱會從中間截斷,清單下面的一行顯示完整名稱。

  2. 在某個套件上按 Enter。lip 讀取它的套件檔(可能需要聯網)並顯示結果。按 Esc 停止等待。

    標題為 github.com/LiteLDev/LegacyScriptEngine#lua@0.13.1 的檢視器顯示以 "manifest" 開頭的 JSON。

    1. manifest:已安裝版本的套件檔,以 JSON 顯示。再往下,versions 列出儲存庫裡的所有版本。

    用 ↑、↓、PgUp、PgDn、Home、End 捲動,按 Esc 關閉檢視器。

沒有安裝任何套件的工作區裡沒有可列出的內容:

「已安裝的模組」對話方塊寫著「這裡尚未安裝任何套件。」,有「關閉」按鈕。

輸入一個套件

在**輸入套件…**上按 Enter,像在命令行裡那樣輸入套件:一個儲存庫(想看特定版本就加上 @ 和版本號)、一個 ZIP 檔案的網址,或者一個路徑。

「檢視套件資訊」對話方塊,「套件」輸入框裡是 github.com/LiteLDev/LeviOptimize@1.8.1。

按 Enter。結果的顯示方式與已安裝的模組相同。

磁碟上的檔案或資料夾

在**瀏覽…**上按 Enter。瀏覽器列出資料夾和 .zip 檔案。

「選擇套件」瀏覽器顯示 D:\servers\survival,裡面有資料夾 mods 和檔案 LeviAntiCheat-windows-x64.zip,下面有「檔案:.zip」的說明,以及「選擇此資料夾」和「取消」兩個按鈕。

  1. ZIP 檔案:按 Enter 顯示其中的套件。
  2. 選擇此資料夾把地址欄裡的資料夾當作套件來顯示:也就是含有 lip.toml 的資料夾,比如你自己模組的資料夾。
  3. 清單顯示的檔案類型。

操作失敗時

頁面只根據兩個狀態行來判斷操作要不要變灰。操作仍然可能因為別的原因失敗:tooth.json 寫壞了、找不到套件、資料夾剛剛被刪掉。這時 lip 會顯示一個對話方塊,標題是操作的名稱加上失敗,並且不改動任何東西。

「移轉 tooth.json · 失敗」對話方塊以「錯誤: Cannot read tooth.json」開頭,後面是三行以「caused by:」開頭的內容,並給出一個報告檔案。

  1. 錯誤:出了什麼問題,通常還有該怎麼辦。每一行 caused by: 都把原因再往深處說一層,最後一行往往最具體。這裡是 tooth.json 裡沒有 version。這段文字來自命令,是英文。
  2. 完整報告:記錄詳細資訊的檔案,位於工作區的 .lip/logs 下。求助時請附上它,見故障排除。

按 Enter 或 Esc 關閉對話方塊。