跳到正文
本页目录

界面

本页是 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 的所有文件和目录见文件。

另请参阅