玩家世界时间限制

玩家世界时间限制

玩家世界时间限制是一个Hytale服务器插件,它强制执行每个世界的游戏时间限制,并提供备用路由和集中式玩家消息传递。

杂项

PlayerWorldTimeLimit

PlayerWorldTimeLimit 是一款 Hytale 服务器插件,用于控制玩家在特定世界中可以停留的时长,并在达到限制时管理世界的访问权限。

该插件提供了一种基于场景的结构化消息系统,支持每个通道(聊天、通知、事件标题)的控制、完整的服务器/世界覆盖支持,以及游戏内 GUI 管理。

该插件设计为高度可配置、易于翻译,并在多世界环境中安全可靠。

特性

  • 每世界时间限制控制

    • 设置每世界最大允许时间 (TimeLimitSeconds)
    • 设置每世界重置窗口 (ResetTimeSeconds)
    • 自动追踪玩家存在并强制执行限制
  • 每世界最大玩家限制

    • 设置每世界最大玩家数 (MaxPlayers)
    • 在容量达到时阻止世界进入
    • 为满世界发送可配置的玩家反馈
  • 服务器默认 + 世界覆盖

    • 逻辑和消息的全局默认设置
    • 行为和通信的特定世界覆盖
    • 清晰的继承模型,在 GUI 中有明确的覆盖开关
  • 基于场景的结构化消息

    • 场景通道 配置消息
    • 支持的场景:
      • max_players_reached
      • time_left_current_world
      • time_expired_current_world
      • can_reenter_world
      • fallback_teleported
      • fallback_disconnected
    • 每个场景支持的通道:
      • 聊天
      • 通知包
      • 事件标题 (NotificationBroadcastUtil.showEventTitle)
      • 每个通道可启用/禁用
      • 即使服务器默认启用,世界也可以禁用某个通道
    • 备用解决方案层级:
      • 世界场景覆盖
      • 服务器场景默认
      • 翻译/语言备用(适用时)
  • 翻译就绪的默认设置

    • 构建为支持可翻译的玩家面向消息
    • 支持占位符(例如 {world}{max}{time} 等)
  • 专用游戏内管理员 GUI

    • 拆分配置页面:
      • 逻辑页面(时间限制、重置、备用、最大玩家数、命令行为)
      • 消息页面(场景/通道消息控制)
      • 带下拉菜单的场景选择器
      • 保存/取消控制,场景更改时立即刷新 UI
  • 退出命令支持

    • 可选的玩家命令以离开受限世界
    • 可配置的命令名称和别名(默认:returnexitworld
    • 可配置的目标:
      • 备用世界/服务器,或明确的坐标
  • 备用转移/断开行为

    • 超时时将玩家发送到备用世界/服务器
    • 如果没有备用可用,则断开连接并提供可配置的反馈
  • 通知系统

    • 超时前的周期性警告通知
    • 可配置的间隔、警告阈值、图标和声音
    • 事件标题时间/声音/图标自定义
  • 权限和绕过系统

    • 全局绕过权限 (playerworldtimelimit.bypass)
    • 创造模式绕过支持
    • 权限层级结构支持(服务器/世界)
  • 持久性

    • 基于 JSON 的配置 (playerworldtimelimit.json)
    • 玩家时间数据存储 (player_times.json)
    • 运行时保存/重新加载集成

命令

玩家

  • /timelimit(别名:tltimeleft
    • 显示限制状态、已花费/剩余时间以及重新进入信息
  • /return(默认别名 /exitworld,可配置)
    • 使用配置的目标/备用退出当前受限世界

管理员(创造模式 + 权限)

  • /timelimitgui(别名同上)
    • 权限:timelimit.admin.gui
  • /timelimitreset <playerName> <worldName>
    • 别名:tlresettlrresettimeresetlimit
    • 权限:timelimit.admin.reset

注意:如果在配置或 GUI 中更改了退出命令名称/别名,需要重启服务器,因为命令注册在启动时进行。

权限

管理权限

  • timelimit.admin.gui - 打开和使用 /timelimitgui(GUI 访问)所需
  • timelimit.admin.reset - 执行 /timelimitreset 及其别名所需

游戏/绕过权限

  • playerworldtimelimit.bypass(可通过 BypassPermission 配置)
    • 绕过时间限制和世界已满限制
    • 拥有此权限的玩家不会受到世界时间限制或玩家数量上限检查的阻止

额外绕过行为

  • 创造模式的玩家默认视为已绕过。