实时日程

实时日程

命令/schedule,但采用实时模式,无需担心TPS!

插件简介

此插件运行于服务端,扩展了 /schedule 的命令树:

/schedule
\
 -function
  \
   -<function>
    \
     -realtime
      \
      |-<magnitude>
      | \
      |  -(ms|s|min|h|d|a)
      |   \
      |    -[(append|replace)]
      \
       -at
        \
         -<time>
          \
           -[(append|replace)]

如何使用此插件

在运行此插件的情况下加载一个世界,并加载一些数据包函数,然后即可使用以下命令:

  • 临时实时计划
    • /schedule function funct1 realtime 800 ms append - 追加一个 funct1 的计划,将在 800 毫秒后执行
    • /schedule function funct2 realtime 10.5 s - 清除 funct2 的所有临时实时计划,并追加一个 funct2 的计划,将在 10.5 秒后执行
    • /schedule function #tag1 realtime 3.14 min replace - 清除 #tag1 的所有临时实时计划,并追加一个 #tag1 的计划,将在 3.14 分钟后执行
    • /schedule function #tag2 realtime 0.9 h append - 追加一个 #tag2 的计划,将在 0.9 小时后执行
    • /schedule function funct3 realtime 1 d - 清除 funct3 的所有临时实时计划,并追加一个 funct3 的计划,将在 1 天后执行
    • /schedule function funct4 realtime 0.25 a replace - 清除 funct4 的所有临时实时计划,并追加一个 funct4 的计划,将在 0.25 儒略年后执行
  • 持久化实时计划
    • /schedule function #tag3 realtime at "18:30" append - 追加一个 #tag3 的计划,将在“今天”18:30 执行
    • /schedule function #tag4 realtime at "24:30" - 清除 #tag4 的所有持久化实时计划,并追加一个 #tag4 的计划,将在“明天”00:30 执行
    • /schedule function funct5 realtime at "12:34:56" replace - 清除 funct5 的所有持久化实时计划,并追加一个 funct5 的计划,将在“今天”12:34:56 执行
    • /schedule function funct6 realtime at "03-14 15:09:26" append 或 /schedule function funct6 realtime at "14/3 15:09:26" - 追加一个 funct6 的计划,将在“今年”3 月 14 日 15:09:26 执行
    • /schedule function #tag5 realtime at "2025-06-07 00:00:00" 或 /schedule function #tag5 realtime at "7/6/2025 00:00:00" - 清除 #tag5 的所有持久化实时计划,并追加一个 #tag5 的计划,将在 2025 年 6 月 7 日 00:00:00 执行

所有未执行的临时实时计划将在服务器停止时被丢弃。所有未执行的持久化实时计划将在世界保存时保存到世界根目录下的 realtime-schedules.json。如果持久化实时计划的执行时间早于当前时间,它将立即执行。即使游戏被 /tick freeze 冻结或暂停(单人游戏),实时计划仍会执行。

许可证与源代码

此项目的 Fabric 版本遵循 GNU Lesser General Public License 第 3 版。其源代码仓库:https://github.com/IAmREGE/Realtime-Schedules
此项目的 Spigot 版本遵循 GNU General Public License 第 3 版。其源代码仓库:https://github.com/IAmREGE/Realtime-Schedules-spigot
由于 Modrinth 的限制,页面只能显示一个许可证(LGPL-3.0-or-later)和一个源代码链接。

已知问题

Spigot 平台

  • 执行 /bukkit:reload 可能会以 java.lang.IllegalStateException: zip file closed 破坏此插件。