CalendarEvents 是一款基于真实时间调度的插件,它允许你配置在特定时间点触发自定义事件,并执行相应的操作,例如发送消息、执行命令或与其他插件联动。无论是简单的定时问候,还是复杂的周期性任务,都可以轻松实现。
配置文件 config.yml 结构清晰,以下为关键部分概述。
每个事件需要一个唯一的标签作为标识。在 timing 下配置触发时机。
occasion: 触发日期。支持具体日期(如 "01"、"24.12.2022")、星期(如 "monday")、关键词(如 "every day")或逗号分隔的列表。time: 触发时间(24小时制)。支持具体时间(如 "12:00")、逗号分隔列表,或使用 x 作为通配符(如 "xx:00" 表示每小时整点)。在对应事件标签下,可配置触发时执行的动作。可使用以下占位符:
%time%: 事件触发时间(hh:mm)。%day%: 星期名称(取决于设置的语言)。%month%: 月份名称(取决于设置的语言)。%player%: 玩家名(用于需要玩家的上下文中)。%allOnline%: 为每个在线玩家单独执行命令时替换为玩家名。%allOffline%: 为每个离线玩家单独执行命令时替换为玩家名。%allPlayers%: 为所有(在线和离线)玩家单独执行命令时替换为玩家名。可用动作类型:
commands: 执行命令列表。commandsWithPerm: 为拥有特定权限的玩家执行命令列表。broadcast: 发送全服广播。broadcastWithPerm: 向拥有特定权限的玩家发送广播。actionbar: 发送动作栏消息(可选权限)。title: 发送标题消息(可选权限,可设置显示时长)。addHoursToServerTime: 调整服务器时间的小时偏移量,用于适配玩家所在时区。language: 设置语言(使用 IETF 语言标签),影响 %day% 和 %month% 的输出。插件本身不提供玩家命令,所有操作均通过配置文件或 API 在事件触发时自动执行。
动作中涉及的权限节点示例:
example.perm: 在示例配置中,用于控制谁可以接收带权限的广播、标题或动作栏。安装 PlaceholderAPI 后,可使用以下占位符获取距离指定事件下一次触发的时间:
%calendarevents_until:事件标签%:返回 d h min s 格式。%calendarevents_until-s:事件标签%:返回秒数。%calendarevents_until-min:事件标签%:返回分钟数。%calendarevents_until-min-plus-one:事件标签%:返回分钟数加一(用于修正显示)。%calendarevents_until-h:事件标签%:返回小时数。%calendarevents_until-d:事件标签%:返回天数。如果你开发自己的插件并希望集成 CalendarEvents,可以使用其 API。
me.nikl.calendarevents.CalendarEvents calendarEvents = (me.nikl.calendarevents.CalendarEvents) Bukkit.getPluginManager().getPlugin("CalendarEvents");
CalendarEventsApi api = calendarEvents.getApi();boolean addEvent(String label, String occasions, String timings): 动态添加一个事件。void removeEvent(String label): 移除指定标签的事件。boolean isRegisteredEvent(String label): 检查事件是否已注册。int secondsToNextCall(String label): 计算距离事件下次触发的秒数。在你的插件中监听 CalendarEvent:
@EventHandler
public void onCalendarEvent(CalendarEvent event) {
if (!event.getLabels().contains("你的_事件_标签")) {
return;
}
// 事件触发,执行你的逻辑
}<repositories>
<repository>
<id>nikl-repo</id>
<url>https://repo.nikl.me/artifactory/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>me.nikl</groupId>
<artifactId>calendarevents</artifactId>
<version>2.1.0</version> <!-- 请使用最新版本 -->
</dependency>
</dependencies>x:在时间配置中,x 可代表任何有效数字(例如 "xx:15" 表示每小时的 15 分)。events)仅在它所列出的所有基础事件在同一时间触发时才会触发。---
相关链接
友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:2,678,672 | 历史访问人次:3,248,291
今日访问人数:24,447 | 今日访问人次:29,269
昨日访问人数:30,655 | 昨日访问人次:36,381
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6