
加入指令
一个轻量级Hytale模组,当玩家连接到服务器时自动运行可配置的命令。
加入指令(Join Commands)
一个轻量级的 Hytale 服务器插件,在每次有玩家加入服务器时运行一组可配置的指令。适用于发放初始物品、发送欢迎消息、将玩家传送到出生世界,或执行任何其他需要在连接时进行的、由指令驱动的设置。
功能特性
- 玩家加入时,按配置中出现的顺序运行任意数量的指令。
- 支持以加入的玩家身份 或 控制台身份运行指令,因此你可以将需要高权限的设置与普通玩家操作混合使用。
- 支持按玩家(以 UUID 为键)指定的指令列表,这些指令会在全局列表之外额外运行。按玩家的列表同样支持以玩家身份和控制台身份执行指令。
- 跳过空条目,因此配置中留空行不会导致错误。
- 接受带或不带前导斜杠的指令。
/give coins --quantity=100和give coins --quantity=100都有效。 - 记录每条已发送的指令,便于调试,包括显示执行者(玩家或控制台)。
- 逐条捕获并报告指令执行失败,因此一条故障条目不会阻止其余指令运行。
- 可选集成 PlaceholderAPI。如果安装了该插件,诸如
%player_username%、%luckperms_prefix%或任何其他已注册的扩展变量,都会在指令运行前被替换。即使指令以控制台身份运行,变量也会针对加入的玩家进行解析。
配置
配置文件在首次启动时生成于 mods/com.azuredoom_joincommands/joincommands.json。默认情况下,它包含一个空的指令列表,这意味着在你添加条目之前,加入时不会运行任何指令。
示例:
{
"Commands": [
"coins --quantity=100",
"say Welcome to the server!",
"tp 0 64 0"
],
"ConsoleCommands": [
"echo %player_username% just joined!"
]
}
每个条目都如同由加入的玩家输入指令一样运行。玩家是执行者,因此需要权限才能运行指令。
玩家指令与控制台指令
插件在配置的每一层都支持两种执行上下文:
Commands– 以加入的玩家身份运行。玩家是执行者,并且需要玩家的权限指令才能成功。将此用于你希望玩家“自己”执行的操作。ConsoleCommands– 以服务器控制台(ConsoleSender)身份运行。这些指令绕过玩家的权限集,并以完整的服务器权限运行。将此用于管理操作,如发放物品、修改权限组或广播消息,这些操作中,加入的玩家不应需要(或拥有)直接运行指令的权限。
在这两种情况下,加入的玩家仍然是变量解析的上下文,因此像 %player_username% 这样的内容即使在 ConsoleCommands 条目中也会解析为加入的玩家。
对于每个玩家,全局指令首先运行(Commands,然后是 ConsoleCommands),随后是任何匹配的按玩家条目。
按玩家指令
除了全局的 Commands 列表,你还可以定义仅为特定玩家运行的指令,以 UUID 为键。这些指令在全局指令之后运行,因此它们是叠加在上面的,而不是替换它们。
{
"Commands": [
"say Welcome to the server!"
],
"ConsoleCommands": [
"echo %player_username% just joined!"
],
"PlayerCommands": [
{
"Uuid": "550e8400-e29b-41d4-a716-446655440000",
"Commands": [
"coins --quantity=500",
"echo Welcome back, admin."
],
"ConsoleCommands": [
"coins --quantity=500 --player=%player_username%",
"lp user %player_username% parent set admin"
]
},
{
"Uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"Commands": [
"tp 100 64 100"
]
}
]
}
注意:
- UUID 为精确匹配。请使用上面所示的标准带连字符格式。
- 如果在
PlayerCommands列表中找不到 UUID,则该玩家只会运行全局指令。 - 同一个 UUID 可以有多个条目;所有匹配的条目将按它们出现的顺序运行。
- 在按玩家的条目中,
Commands和ConsoleCommands都是可选的。只包含你需要的列表即可。 PlayerCommands字段本身也是可选的。如果只需要全局指令,可以完全省略它。
使用占位符
如果与 Join Commands 一起安装了 PlaceholderAPI,任何在 PlaceholderAPI 中注册的占位符都可以在指令字符串中使用,涵盖全部四个列表(全局 Commands、全局 ConsoleCommands、按玩家 Commands、按玩家 ConsoleCommands)。插件会在启动时自动检测 PlaceholderAPI,并在检测到时记录确认信息。
占位符始终针对加入的玩家进行解析,即使指令本身以控制台身份发送也是如此。这意味着你可以编写针对加入玩家名称或 UUID 的控制台指令,而无需给予玩家自己运行这些指令的权限。
使用占位符的示例:
{
"Commands": [
"echo Welcome back, %player_username%!"
],
"ConsoleCommands": [
"say %player_username% just joined with rank %luckperms_prefix%",
"give %player_username% starter_kit"
]
}
如果未安装 PlaceholderAPI,占位符字符串将保持不变并原样传递给指令。
行为说明
- 指令在
PlayerReadyEvent期间运行,该事件在玩家完全连接并准备好接收游戏状态时触发。它们不会在连接过程的早期阶段运行。 - 对于任何给定玩家的执行顺序是:全局
Commands→ 全局ConsoleCommands→ 按玩家Commands→ 按玩家ConsoleCommands,对每个匹配的PlayerCommands条目都是如此。 - 指令通过 Hytale 的指令管理器异步运行。失败会以警告形式记录,并且不会中断列表中的后续指令。
- 每条已发送的指令都会记录其发送者标签(
console或玩家的用户名),使你可以一目了然地看出指令是在哪个上下文中运行的。 - 全局指令在按玩家指令之前运行。按玩家指令不会替换全局列表,它们是全局列表的扩展。
依赖项
- PlaceholderAPI by HelpChat(可选,软依赖)。
托管合作伙伴
正在寻找一个可靠的服务器来运行 LevelingCore 和其他 Hytale 模组?
BisectHosting 为模组环境提供预配置的游戏服务器、快速的设置和稳定的性能。
使用代码 azuredoom 可享受首月 25% 折扣。
正在加载版本记录…

正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。