跳到正文
本页目录

模组配置

读完本页,你就能在界面里修改模组的设置,不必去找它们的文件,也不必手写 JSON。

“模组配置”页列出已安装模组的配置文件。JSON 文件会展开成一棵由名称和值组成的树,你可以逐个修改;其他格式的文件只显示内容,需要用文本编辑器修改。

页面列出哪些文件

每个模组在服务器里都有自己的文件夹 mods/<mod>/,其中 <mod> 是模组的名称。对每个已安装的模组,lip 列出:

  • mods/<mod>/config/ 及其子文件夹里的所有文件;
  • 如果一个都没有:直接放在 mods/<mod>/ 里的 .json、.ini、.toml、.yml、.yaml 文件(manifest.json 除外),以及 mods/<mod>/data/config.json。

大多数模组在服务器第一次带着它启动时写出自己的配置文件。lip 不会创建配置文件。

文件列表

打开页面:在侧边栏移到模组配置,按 Enter。

“模组配置”页:左边的文件列表有六行,右边打开的是 GMLIB 的文件,里面有三个值。

  1. 一个文件:模组文件夹的名称,后面是文件在该文件夹里的路径。有多个文件的模组占多行。
  2. 没有配置文件的模组,显示为灰色。
  3. 选中的文件。页面打开时选中列表里的第一个文件。

用 ↑ ↓ 移动,右边会跟着变化。列表太窄、放不下长名称时,名称的末尾会被截掉;右边的标题是模组名,第一行是文件的路径。

没有文件的模组没有内容可显示:

列表里选中了 LegacyRemoteCall。右边写着“没有配置文件,启动服务器后可能会生成。”

  1. lip 在它查找的位置没有找到这个模组的文件。服务器下次启动时,模组可能会写出一个。

如果已安装的模组都没有自己的文件夹,或者根本没有安装模组,页面会显示没有可配置的模组。 在获取模组上按 Enter 可以打开获取模组页。

没有模组的服务器的“模组配置”页:一句“没有可配置的模组。”和“获取模组”按钮。

编辑 JSON 文件

在文件上按 Enter 或 → 进入它。页面一次显示文件的一层:每个名称一行,后面是它的值。

LeviOptimize 的文件,位于“features”这一组里:有 3 项的 optPushEntity 组,以及五个为 true 的值。

  1. 模组及其文件。
  2. 文件里的值,一次显示一层。
  3. 保存和放弃:保存之前不会写入任何内容。
显示为含义按 Enter
{…} 3 项一组带名称的值(JSON 对象)。打开它。
[…] 1 项一列值(JSON 数组)。打开它。
[x] true、[ ] false真或假。切换;按 Space 也可以。
3、0.05数字。输入新的数字。
"en"文本。输入新的文本。
null空值。输入任意类型的值。

各行下面的一行文字说明所选行的值是哪一类。

在文件里移动

  1. 移到一个组或一个列表上,按 Enter 打开。
  2. 按 Esc 或 ← 返回上一层。在最上层按 Esc 回到文件列表。

在 LeviOptimize 的文件里向下走了两层。第一行是“config/config.json › features › optPushEntity”,下面的行是 enabled、maxPushTimes 和第三个名称。

  1. 当前位置:文件,然后是你打开的每一层。这一行太长时,开头会换成 …。
  2. 一个真或假的值。
  3. 一个数字。

太长、放不进名称一栏的名称会用 … 截断。

修改值

在数字或文本上按 Enter,会打开一个带有当前值的输入框。输入新值后按 Enter;按 Esc 关闭输入框,不作更改。

值的类型不会变。数字只接受数字;文本则是输入什么就是什么,包括空格,所以在文本里输入 5,得到的仍是文本 "5"。

def_money 的输入框,标签是“数字”,里面是“a lot”,下面显示“请输入数字。”

  1. 这一行的值的类型。
  2. 不接受这个值的原因。改正后再按 Enter。

在真或假的值上,按 Space 或 Enter 立即切换。

修改列表

列表显示各个值及其序号 [0]、[1]……,最后一行是添加值…。

列表 ignoredDimensions 里有一个值 "the_end",序号是 0,下面是“添加值…”一行。

  1. 列表中的一个值。
  2. 用来添加值的那一行。

要添加值,在**添加值…**上按 Enter,然后输入。输入的内容按 JSON 读取:42 是数字,true 是真,{"a": 1} 是一个组。不是 JSON 的内容一律当作文本,所以单词不用加引号。

“添加值”对话框只有“值”一个输入框,里面是单词 nether。

新值加在列表末尾。

要修改或移除列表里的值,在它上面按 Enter。菜单里有编辑…(按值的类型,也可能是切换或打开)和移除。

序号为 1 的值的菜单,有“编辑…”和“移除”两行。

页面做不到的事

只有列表可以增减。页面不能给组添加名称、移除名称或改名:文件里有哪些名称由模组决定。需要这样改时,请用文本编辑器编辑文件。

version 这一行

很多模组在文件最上层放一个名为 version 的整数,用来记录文件的格式版本。页面把它显示为灰色,不允许修改:在这一行按 Enter 没有反应,下面的一行文字说明了原因。

LeviOptimize 的文件的最上层。选中的是“version 4”一行,下面的一行文字是“此版本号由模组自行维护。”

  1. 在这一行按 Enter 没有反应的原因。

保存或放弃更改

编辑时不会写入任何内容。页面会标出有更改的文件:

LegacyMoney 的 money.json,其中一个值已被修改。右上角有“未保存”,列表里该文件后面有一个圆点,“保存”和“放弃”按钮变亮。

  1. 第一行右端的未保存。
  2. 列表里该文件后面的圆点 ●(列表放得下时才显示)。
  3. 现在可以选择的保存和放弃。

保存的步骤:

  1. 按 Tab,直到焦点落在按钮上。在最后一行按 ↓ 也会到按钮。

    焦点在该文件的“保存”按钮上。

  2. 在保存上按 Enter。lip 写入文件,并在右下角显示已保存。

    保存之后的文件:“未保存”和圆点都消失了,最下面一行的末尾是“已保存。”

lip 会重写整个文件:值是你改完的样子,每个名称留在原来的位置,用四个空格缩进。文件里的注释不会保留。如果文件在这期间被删除,lip 不会重新创建它,而是提示文件已不存在。

放弃会先询问,然后重新读取文件,你的更改随之丢弃。

带着未保存的更改去别处

一次只能编辑一个文件。文件有更改时选择另一个文件、前往别的页面、切换到别的工作区或退出 lip,lip 会问你怎么处理这些更改。

“未保存的更改”对话框写着“LeviOptimize · config/config.json”,询问“要保存更改吗?”,有“保存”“放弃”“取消”三个按钮。

按钮作用
保存保存文件,然后继续。
放弃丢掉更改,然后继续。
取消,或 Esc留在文件里,更改保持原样。

文件在磁盘上被改动

模组会自己写配置文件,有些在服务器运行期间也会写。如果文件已经不是 lip 读到的样子,保存时不会不问一声就覆盖。

“保存 config/config.json”对话框写着“读取之后,磁盘上的文件已被修改。要覆盖吗?”和“重新读取会放弃你的更改。”,有“覆盖”“重新读取”“取消”三个按钮。

  1. 覆盖用你的版本覆盖磁盘上的文件。模组写入的内容会丢失。
  2. 重新读取显示磁盘上现在的文件。你的更改会丢失。
  3. 取消是 Enter 默认按下的按钮,什么也不写,你的更改仍留在屏幕上。

只能查看的文件

不是 JSON 的文件显示为文本,上面有一行只读,请用文本编辑器修改。 请在 lip 之外用文本编辑器修改它。

LegacyMoney 的 ranking.yml 显示为文本,上面一行是“只读,请用文本编辑器修改。”

不是有效 JSON 的 .json 文件也这样显示,上面是只读:不是有效的 JSON。 和 JSON 读取器给出的说明。注释(// 和 /* */)以及最后一个值后面的逗号不会让文件无效:lip 能读。

LegacyMoney 的 money.json 显示为文本。上面一行以“只读:不是有效的 JSON。”开头,后面用英文说明哪里有错。

  1. 文件不能显示为树的原因。JSON 读取器的说明在任何语言下都是英文。
  2. 出错的地方,这里是少了一个冒号。用文本编辑器改正后,重新打开页面。

文本比显示区域长时,按 Enter 进入;用 ↑、↓、PgUp、PgDn、Home、End 滚动,按 Esc 回到列表。

服务器运行期间

与游戏配置页不同,这个页面在服务器运行期间也可以修改和保存。这时页面最后一行会显示更改可能需要重启服务器才生效。:很多模组只在服务器启动时读取配置。

服务器运行期间的“模组配置”页。页面最后一行是“更改可能需要重启服务器才生效。”,最下面一行的末尾是“已保存,可能需要重启服务器。”

  1. 提示,服务器运行期间一直显示。
  2. 这期间保存后的提示。

更改是否需要重启取决于模组。拿不准时,到服务器页重启服务器。

在窄终端里

终端太窄(大约不足 90 列)、无法并排显示列表和文件时,页面一次只显示其中一个。

  1. 文件列表占满页面。在文件上按 Enter。

    72 列终端里的“模组配置”页:只显示文件列表,侧边栏显示图标。

  2. 文件占满页面,第一行是模组和文件的名称。在最上层按 Esc 回到列表。

    同一个终端里打开了 GMLIB 的文件:第一行是“GMLIB · config/config.json”,后面是它的三个值。

其余操作与宽终端相同。关于窄终端,小终端里有更多说明。