Custom LAN

Custom LAN

通过开放局域网菜单,为您提供对集成服务器的更多控制。

工具

自定义局域网界面截图 一个 Fabric 模组,允许你:

  • 自定义更多集成服务器设置(在线模式、PvP、最大玩家数、MOTD)
  • 在 MOTD 中使用“&”符号(&)代替段落符号(§)来输入格式代码,并支持变量(如 ${username}、${world})
  • 在游戏中途更改设置(包括端口),无需退出世界即可停止服务器
  • 全局或按世界保存设置(自动加载,按世界保存的设置优先于全局设置,全局设置优先于系统默认值)
  • 使用 /op 和 /deop 命令单独更改可使用作弊的玩家,并在不开放局域网的情况下在单人游戏中作弊(替换“允许作弊”按钮)
  • 使用 /ban、/ban-ip、/banlist、/pardon 和 /pardon-ip 管理封禁,使用 /whitelist 管理白名单玩家(使用 /whitelist on/off 启用/禁用)
  • 通过隧道将服务器暴露在局域网之外(目前仅支持 ngrok)

它还允许你按回车键启动局域网世界,不强制游戏模式(例如,以创造模式离开的玩家加入时仍会处于创造模式,即使世界设置为生存模式),并扩展了 /publish 命令,现在也可以在游戏中途更改设置(使用端口 -1 来随机化):

/publish [<port>] [<onlineMode>] [<pvpEnabled>] [<maxPlayers>] [<defaultGameMode>] [<tunnel>] [<motd>]
/publish [perworld|global|system] [<port>] [<onlineMode>] [<pvpEnabled>] [<maxPlayers>] [<defaultGameMode>] [<tunnel>] [<motd>]
/publish stop

它需要 Fabric Loader 和 Cloth Config API,但不需要 Fabric API。

它已移植到 Fabric 支持的所有 Minecraft 版本(快照版本除外)! 我目前不计划自己将其移植到 Forge,但非常欢迎你向我发送拉取请求。

MOTD 格式代码和变量说明

在 MOTD 中,& 符号会被替换为 § 符号,以便你输入格式代码(例如,&9Hello, &a&lworld! 会使 Hello, 变为蓝色,world! 变为绿色且加粗)。 你可以连续使用两个 & 符号(&&)来输入真正的 & 符号。

以下变量将使用 Apache Commons Text 的 StringSubstitutor 进行展开:

  • ${username} —— 主机用户名(如“DimiDimit”)
  • ${world} —— 世界名称(如“New World”)

已保存设置说明

设置可以按世界或全局保存。打开“对局域网开放”界面时,设置会自动按该顺序加载,也可以使用“加载”按钮手动加载。

使用 /publish 命令而不指定使用哪种已保存设置(perworld、global 或 system)时,如果世界尚未对局域网开放,则使用相同顺序;如果已开放,则使用当前值而不是任何已保存的设置。 指定已保存设置时,则仅使用该特定设置或系统默认值(如果未保存),不检查其他设置,即使世界已对局域网开放也是如此(例如,如果指定了 perworld 且未保存按世界设置,则即使存在已保存的全局设置,也会使用系统默认值)。 作为参数指定的设置将覆盖已保存的设置或当前值(例如,/publish perworld 12345 false 将使用按世界设置,但端口为 12345 且在线模式禁用)。

全局设置存储在 .minecraft/config/customlan.toml 中,而按世界设置存储在对应世界目录中的 data/customlan.dat 中。

/op 和 /deop 说明

/op 和 /deop 的工作方式与专用服务器相同。 你也可以对主机本人使用这些命令。这样做会添加/移除世界上的“作弊”标签(就像你通过 NBT 编辑了 allowCommands 字段一样),你也可以在不开放局域网的情况下使用这些命令,从而替代原版中开放局域网、作弊、退出世界并重新进入的流程。

操作员按世界持久化存储在该世界目录下的 ops.json 文件中。要允许操作员分配和移除其他操作员,以及封禁和白名单玩家,请将其在 ops.json 文件中的 level 改为 3 或更高(默认为 2,而 4 级允许他们使用 /publish)。作为主机,你始终可以分配和移除操作员,即使你自己不是操作员。

封禁和白名单说明

这些命令的工作方式也与专用服务器相同,但你无法封禁或白名单主机。 启用白名单不会踢出所有不在白名单中的玩家(即 enforce-whitelist 始终为 false)。

使用的文件也是按世界存储的,与专用服务器相同——banned-players.json、banned-ips.json、whitelist.json——不过白名单是否启用存储在 data/customlan.dat 中。