HyCommands

HyCommands

一个服务器端模组,添加了 /home /spawn /warps /msg /broadcast 以及更多功能……

生活质量

图片

图片

Discord YouTube GitHub CurseForge Modrinth

图片

图片

demo gif

需要 AurumX

HyCommands 是一款轻量级、可配置的 Hytale 服务器实用插件,它将常见的服务器功能整合到一个高性能模组中。它专为需要稳健默认设置、安全的异步操作以及易于与其他服务端插件(例如 AurumX 经济系统)集成的服务器管理员设计。

Support me on Ko-fi

核心目标: 性能、可配置性、小体积、安全的异步持久化、可预测的权限挂钩。

图片

  • 玩家家:每个玩家可命名的家,具有可配置的限制、冷却时间和预热时间。
  • 传送点:命名的服务器传送点,具有每个传送点的权限和简便管理。
  • 传送:/tpa、/tpaccept、/tpdeny、/back(包括死亡返回)、/rtp(随机安全传送)。
  • 出生点管理:/spawn、/setspawn(世界感知)。
  • 睡眠管理:可配置的跳过夜晚所需睡眠玩家百分比、聊天公告以及玩家断开连接时的优雅处理。
  • 通讯:/msg(私信)、/broadcast、自动加入/退出消息和定时公告。
  • 管理工具:/sethome(管理员覆盖)、/delhome、/setwarp、/delwarp、/warps、/homes 列表以及基于权限的控制。
  • 速率限制与冷却:可配置的每个命令冷却时间,防止滥用。
  • 安全的异步持久化:玩家数据使用线程安全的 JsonRepository 以 JSON 格式保存在 mods/HyCommands/ 下。
  • 经济挂钩:可选的 AurumX 集成(compileOnly 依赖),用于基于经济的功能(例如,传送或家需要花费)。
  • 可配置的消息和颜色代码(& 样式),通过 MessageFormatter 支持占位符。
  • 传送安全:移动取消检查、预热时间、区块异步加载和安全落点检测(扫描下方以找到地面)。
  • 权限优先设计:命令继承自 AbstractPlayerCommand 并预先检查 requirePermission()
  • 聊天室:持久的每个房间聊天频道,包含加入/离开管理、每个房间的颜色和格式以及可配置的可见性。新增聊天命令:/chatrooms(列表)、/chatroom <join|leave|create|delete> [name]/chatcolor <color>(为房间消息设置您的聊天颜色)。
  • 玩家工具:供服务器工作人员使用的游戏模式和移动辅助工具,以及供玩家使用的生活质量工具:/gmc/gma/gamemode <mode>/fly/speed <value>/heal/feed/god/near <radius>/ping/playtime/seen <player>/playerlist
  • 传送工具(管理员和玩家):/tp <player|x y z>/tphere <player>/tpall/tppos <x> <y> <z>/back/switchworld <world>/switchserver <address>
  • 经济集成(AurumX 支持):当存在 AurumX 时的账户和货币命令:/balance [player]/balancetop/pay <player> <amount>、管理员货币命令 /addmoney <player> <amount>/removemoney <player> <amount>/setmoney <player> <amount> 和列出货币的 /currency。经济功能是可选的,当 AurumX 在服务器类路径上可用时启用。
  • 玩家数据追踪:由 /playtime/seen/playerlist 使用的持久化游戏时间和加入追踪,用于驱动自动公告或管理工具。

这些系统都是可配置的——请参阅 configuration.md 中关于 chatplayerStats 部分的内容。


命令(快速参考)

命令 用法 描述
/sethome /sethome [name] 将当前位置保存为命名的家
/home /home [name] 传送至已保存的家
/delhome /delhome [name] 删除已保存的家
/homes /homes 列出已保存的家
/setwarp /setwarp <name> 在当前位置创建一个服务器传送点
/warp /warp <name> 传送至一个传送点
/delwarp /delwarp <name> 移除一个传送点
/warps /warps 列出可用的传送点
/tpa /tpa <player> 向其他玩家发送传送请求
/tpaccept /tpaccept 接受传入的传送请求
/tpdeny /tpdeny 拒绝传入的传送请求
/back /back 返回至之前的位置(支持死亡返回)
/rtp /rtp 随机安全传送
/spawn /spawn 传送至世界出生点
/setspawn /setspawn 设置世界出生点
/sleeppercent /sleeppercent [value] 设置跳过夜晚所需的睡眠玩家百分比
/msg /msg <player> <message> 发送私信
/broadcast /broadcast <message> 发送全服公告

更新补丁中新增的命令

命令 用法 描述
/chatrooms /chatrooms 列出已配置的聊天室
/chatroom /chatroom <join|leave|create|delete> [name] 管理或加入聊天室
/chatcolor /chatcolor <color> 为房间消息设置您的聊天颜色
/gmc /gmc 设置创造模式(管理员)
/gma /gma 设置冒险模式(管理员)
/gamemode /gamemode <mode> [player] 更改玩家的游戏模式
/fly /fly [on|off] 切换飞行状态
/speed /speed <value> 设置玩家移动速度
/heal /heal [player] 恢复生命值
/feed /feed [player] 恢复饱食度
/god /god [player] 切换无敌状态
/near /near [radius] 列出附近的玩家或实体
/ping /ping [player] 显示网络延迟
/playtime /playtime [player] 显示游戏时长统计
/seen /seen <player> 显示玩家最后上线时间
/playerlist /playerlist 列出在线玩家及基本统计信息
/tp /tp <player|x y z> 传送玩家或至指定坐标
/tphere /tphere <player> 将一名玩家传送至你所在位置
/tpall /tpall 将所有人传送至你所在位置
/tppos /tppos <x> <y> <z> 传送至指定坐标
/switchworld /switchworld <world> 将玩家移至另一个世界
/switchserver /switchserver <address> 将玩家连接至外部服务器(如果支持)
/balance /balance [player] 显示经济余额(AurumX)
/balancetop /balancetop 显示余额排行榜(AurumX)
/pay /pay <player> <amount> 支付给其他玩家(AurumX)
/addmoney /addmoney <player> <amount> 管理员:增加货币(AurumX)
/removemoney /removemoney <player> <amount> 管理员:移除货币(AurumX)
/setmoney /setmoney <player> <amount> 管理员:设置余额(AurumX)
/currency /currency 列出 AurumX 提供的货币

有关完整的命令选项和权限,请参阅此模块中的 commands.md


权限(概览)

  • hycommands.home — 使用家
  • hycommands.home.set — 设置家
  • hycommands.home.limit.<n> — 授予家的数量(取最高值)
  • hycommands.warp — 使用传送点
  • hycommands.warp.set — 创建传送点
  • hycommands.warp.use.<name> — 使用特定的传送点
  • hycommands.warp.bypass — 忽略传送点保护
  • hycommands.tpa — 发送传送请求
  • hycommands.tpaccept — 接受传送请求
  • hycommands.spawn.set — 设置出生点
  • hycommands.admin.* — 管理命令(broadcast、delhome、delwarp 等)

权限有意设计得扁平且简单——请参阅 permissions.md 以获取详尽列表和示例。


配置亮点

配置文件写入 mods/HyCommands/hycommands.json。关键可配置部分:

  • homes — 默认数量、冷却时间、预热时间
  • warps — 公开/私有默认设置和每传送点权限
  • teleport — 预热持续时间、移动取消阈值、冷却时间
  • sleep — 跳过夜晚所需的 requiredPercent
  • messages — 公告模板,占位符如 {player}{time}
    • chat — 聊天室、每房间颜色、可见性和权限
    • playerStats — 启用/禁用游戏时间和加入追踪、保留和存储选项

最小示例(hycommands.json 摘录):

{
  "homes": {
    "defaultLimit": 3,
    "cooldownSeconds": 30
  },
  "teleport": {
    "warmupSeconds": 5,
    "movementCancel": 1.5
  },
  "sleep": {
    "requiredPercent": 50
  }
}

请参阅 configuration.md 以获取完整架构和默认值。


构建与安装

使用 Gradle(根项目或模块)构建 jar 包:

./gradlew :hycommands:shadowJar

将生成的 HyCommands-<version>.jar 文件放入您的服务器 mods/ 文件夹,然后重启服务器。插件将在首次运行时在 mods/HyCommands/ 下生成配置文件。

说明:

  • 项目针对 TestServer/HytaleServer.jar(compileOnly)编译——确保本地构建时存在 server/TestServer/HytaleServer.jar
  • 可选的 AurumX 经济集成可用;该模块编译为 compileOnly(project(":aurumx")),因此请将 AurumX 模块包含在类路径中以启用相关功能。

数据存储

玩家和服务器数据使用线程安全的 JsonRepository 以 JSON 格式存储在 mods/HyCommands/ 下。存储库在主线程之外进行写入,以避免服务器卡顿。


支持与链接

如果您发现错误或想要新功能,请开启一个 Issue 或在 Discord 上留言。

图片