跳到正文

World Primer

作者:masady

在世界创建时自动运行命令,或生成并放置简单结构

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

描述

World Primer 可以在首次创建新世界时、每次加载世界时,或每次加载维度时自动运行一组命令。

 

配置

要运行的命令在以下配置选项中设置。它们也都可以通过游戏内配置菜单进行配置:

  • dimensionLoadingCommands – 每次加载维度时要运行的命令
  • earlyWorldCreationCommands – 在初始创建世界时运行的命令,此时出生点区块尚未生成或加载。如果启用了维度加载跟踪,那么这甚至会在任何维度被加载/初始化之前发生。
  • earlyWorldLoadingCommands – 每次加载世界时(即服务器启动时)要运行的命令。这些命令在服务器启动时、任何世界被加载之前运行。
  • postWorldCreationCommands – 在初始创建世界时运行的命令,此时出生点区块已经生成并加载。
  • postWorldLoadingCommands – 每次加载世界时(即服务器启动时)要运行的命令。这些命令在服务器已启动且主世界出生点区块已加载后运行。

还有单独的配置选项可用于启用或禁用所有这些命令,这样如果你想临时禁用它们,就不必删除所有命令:

  • enableDimensionLoadingCommands
  • enableDimensionLoadTracking – 启用对维度加载次数以及服务器启动次数(即世界加载次数)的跟踪。
  • enableEarlyWorldCreationCommands – 启用早期世界创建命令,这些命令在任何维度被加载之前执行,因此也在任何区块被生成或加载之前执行
  • enableEarlyWorldLoadingCommands – 启用早期世界加载命令,这些命令在每次服务器启动时执行一次,且在任何维度被加载之前执行
  • enablePostWorldCreationCommands – 启用晚期世界创建命令,这些命令在维度已加载且主世界出生点区块已生成后执行
  • enablePostWorldLoadingCommands – 启用晚期世界加载命令,这些命令在每次服务器启动时执行一次,且在所有维度以及主世界出生点区块都已加载后执行。

除此之外,还有 enableDebugLogging 选项,它会打印来自各种事件的日志消息,因此很容易跟踪发生了什么以及何时发生。

 

维度加载命令

维度加载命令可以指定为仅在特定维度加载时运行,方法如下:
worldprimer-dim-command <dim id> <the actual command>。
例如:
worldprimer-dim-command 1 say The End dimension has loaded!

如果只给出命令而不带前缀,那么每次任何维度加载时都会运行该命令,例如:
say Some dimension has loaded!

从 0.3.0 版本开始,现在还提供了另一种维度加载命令变体,可以在特定次数的维度加载时运行命令,或在给定值的任意倍数时运行。
注意:此变体需要启用选项 enableDimensionLoadTracking!
其语法为:
worldprimer-dim-command-nth <dim id> <load count> <the actual command>

因此,若只想在下界第一次加载时运行命令,可以使用:
worldprimer-dim-command-nth -1 1 say The Nether has loaded for the first time!

或者在末地第 6 次加载时:
worldprimer-dim-command-nth 1 6 say The End has loaded for the sixth time!

要在给定值的任意倍数时运行命令,请在值前加上“%”:
worldprimer-dim-command-nth 1 %5 say The End has loaded a multiple of 5 times!

从 0.4.0 版本开始,还支持将维度 id 或当前世界出生点坐标替换到命令中。
替换字符串为:{DIMENSION}、{SPAWNX}、{SPAWNY} 和 {SPAWNZ}。它们还支持对常量数值进行简单的加法和减法。

例如,现在你可以在 postWorldCreationCommands 中这样做,让玩家出生在地下 5x5x3 的房间里:
gameRule spawnRadius 0(这将出生点模糊范围设为 0,因此玩家会精确生成在那个小房间的中心,而不是在该点周围地表随机某处)
setworldspawn {SPAWNX} 7 {SPAWNZ}(将世界出生点下移到 y = 7)
fill {SPAWNX}-2 7 {SPAWNZ}-2 {SPAWNX}+2 9 {SPAWNZ}+2 minecraft:air(在地下挖出一个 5x5x3 的空气房间,或替换该位置原本的任何方块)

 

内置命令

从版本 0.5.0 开始,新增了一个内置命令:
worldprimer-load-chunks <chunkXMin> <chunkZMin> <chunkXMax> <chunkZMax>。

它可用于加载一定范围的区块,以便其他一些命令能够实际生效。例如,原版的 /fill 命令只能在已加载的区块中工作,因此可以用它在执行 fill 命令之前加载区块。这些区块会立即被排队卸载,因此它们甚至不会保持加载到下一次世界保存(每 45 秒一次),而是会在下一个游戏刻卸载。

坐标是区块坐标(即方块坐标除以 16)。范围是包含端点的,即从最小值一直到最大值(含最大值)。
请注意,这并不是一个真正注册的命令,因此无法通过聊天栏/服务器控制台使用,而只会在配置的命令中找到时于内部使用。

下面是一个示例,展示如何在末地维度首次加载时在 0,0 处建造一个基岩盒子。这些将作为 dimensionLoadingCommands 添加:
worldprimer-dim-command-nth 1 1 worldprimer-load-chunks -1 -1 0 0
worldprimer-dim-command-nth 1 1 fill 10 0 10 -10 7 -10 minecraft:bedrock
worldprimer-dim-command-nth 1 1 fill 9 1 9 -9 6 -9 minecraft:air
worldprimer-dim-command-nth 1 1 say Finished building your box!

 

命令:/worldprimer spread-player

此命令从版本 0.6.0-dev.20190814.220944 开始存在。
以下是可用选项的说明,以及该命令的工作方式:

/worldprimer spread-player [options] <playername1 playername2 …> 该命令有两种位置搜索/选择模式:网格模式和随机模式。
如果给定了网格选项及其网格大小,则使用网格模式。
否则使用随机位置模式。

选项:

  • –find-surface=<true | false> – 如果为 true,则将 y 位置设置为所找到的 x/z 位置上的顶部固体方块。
  • –grid=<integer> – 如果给定,则使用向外螺旋的网格搜索模式,而不是随机位置。
  • –max-radius=<integer> – 距 [0, 0] 的最大距离(按每个轴计算,而非绝对距离)。
  • –min-separation=<integer> – 与之前玩家分散位置以及同一维度中任何当前在线玩家的最小距离。
  • –new – 如果给定,那么当对之前已分散过的玩家再次运行该命令时,会生成一个新位置,而不是将其传送
  • 回原来的分散位置。
  • –y=<integer> – 如果给定,则使用此固定的 y 高度。
  • –y-offset=<integer> – 如果给定,并且 –find-surface=true,则将此偏移值加到表面 y 位置上。
  • 这允许将位置偏移到例如地下一定距离处。
  • –y-max=<integer> – 限制 –find-surface=true 情况下的(可能已偏移的)y 位置。
  • –y-min=<integer> – 限制 –find-surface=true 情况下的(可能已偏移的)y 位置。

 

如果你有想法、问题或反馈,或者只是想一起交流,可以加入我们的 Discord:

常见问题

World Primer 支持哪些 Minecraft 版本?

World Primer 支持 Minecraft Java 版 1.7.10–1.12.2,共 9 个版本,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

World Primer 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

masady 的其他作品

查看全部 →