搜索

节日系统

现实日期、节日配置、提醒行为与当前实现边界。

日期来源

节日系统使用服务器操作系统的现实日期 LocalDate.now(),不会跟随:

  • 世界游戏时间;
  • calendar-state.yml 服内日历;
  • 手动设置的季节或节气。

因此服内日期与现实日期不同是允许的:日历 GUI 的季节日期可显示服内日期,而“今日节日”仍按现实日期判断。

默认节日

日期 ID 名称 优先级
01-01 new-year 元旦 10
02-14 valentines 情人节 8
02-24 lantern 元宵节 8
03-08 womens-day 妇女节 7
03-12 arbor-day 植树节 7
04-01 april-fools 愚人节 6
04-05 qingming 清明节 9
04-20 easter 复活节 8
05-01 labor-day 劳动节 9
06-01 children-day 儿童节 7
06-19 dragon-boat 端午节 8
08-19 qixi 七夕节 8
09-25 mid-autumn 中秋节 9
10-01 national-day 国庆节 9
10-29 double-ninth 重阳节 8
10-31 halloween 万圣节 8
11-26 thanksgiving 感恩节 7
12-22 winter-solstice 冬至节 8
12-25 christmas 圣诞节 9

这些是固定 MM-dd 记录,不会自动按每年农历或“某月第几个星期”重新计算。需要动态日期时,应在每年开服前更新 festivals.yml,或由外部工具生成配置。

配置格式

global:
  festival-cooldown-seconds: 5
  enabled: true

server-custom-festivals:
  new-year:
    type: "NEW_YEAR"
    date: "01-01"
    display-name: "元旦"
    category: "SERVER_CUSTOM"
    priority: 10
    enabled: true
    description: "新年快乐!愿新的冒险从今天开始。"

1.0.65 的默认文件保留了这两个 global 字段,但当前加载器尚未读取它们。实际全局短冷却固定为 5 秒;要关闭节日系统,请把每个节日的 enabled 设为 false。Wiki 在这里按实际代码行为说明,避免误以为修改全局开关已经生效。

字段说明:

  • 节点名是节日 ID;
  • type 必须对应内置 FestivalType;
  • date 使用 MM-dd;
  • display-name 是 GUI 和命令显示名;
  • category 默认统一使用 SERVER_CUSTOM;旧分类名仍可解析,但显示都为“节日”;
  • 同一天多个节日时,priority 高的作为“今日主节日”;
  • enabled: false 不参与“今日节日”索引和自然提醒;/seasons festival list 与节日 GUI 当前仍会显示全部已加载配置,包括已禁用项;
  • description 显示在 GUI 中。

提醒行为

季节事件轮询时会同时检查节日:

  • 每名玩家受固定 5 秒的全局短冷却保护;
  • 同一节日对同一玩家一天内只触发一次;
  • 触发时向玩家发送节日到来提示;
  • 同时进行一次全服广播。

1.0.65 的节日是日期记录与消息提醒系统。description 只用于展示,没有节日奖励、烟花、物品发放或玩法效果执行器;需要这些内容时应由其他插件监听日期/占位符,或另行扩展代码。

如果多名玩家在同一轮首次命中同一节日,当前实现可能由每个玩家分别触发全服广播。大型服务器可提高检查间隔,或在消息层面关闭/修改提示需求。

指令

/seasons festival list
/seasons festival today
/seasons festival info
  • list:列出已加载的节日配置;
  • today:按服务器现实日期显示今日主节日;
  • info:显示节日系统统计。

日历 GUI

节日页按全年日期排序并分页,并显示全部已加载配置。当天节日使用激活材质高亮,默认是 CLOCK;页面模板支持 <festival>、<date>、<category>、<description>、<today>。

返回首页