跳转至

Settings\Schedules.yml 中文注释版🔗

本页为 CMI 插件计划任务(Scheduler)配置说明,对应配置文件 Settings/Schedules.yml。 计划任务文件,你可以设置命令按固定时间间隔或特定时间执行。 支持 PlaceHolderAPI 变量;关于特殊命令的更多信息可以在 https://www.zrips.net/cmi/commands/specialized/ 找到。


计划任务参数🔗

Enabled(true/false)

只有启用的计划任务才会被包含 可以有 2 种类型:按固定时间间隔(以秒为单位)执行,或在特定时间执行

Delay(数字)

定义每次动作之间等待多久,600 表示每 10 分钟执行一次动作

Randomizefalse

如果设置为 true,那么只会使用定义命令中的一个随机命令。命令在全部用完之前不会重复。适用于重复随机公告

DuplicateRandomizefalse

如果设置为 true,那么只会使用定义命令中的一个随机命令。命令可能会重复。适用于重复随机公告

SingleLinearfalse

如果设置为 true,那么只会连续使用定义命令中的一个,不重复,直到所有命令都被执行。适用于需要按精确顺序逐一显示的场景

Repeattrue

如果设置为 false,动作只会执行一次,否则它将在间隔或特定时间反复执行

MinPlayers(数量)

将限制执行命令时应该在线的最小玩家数量

MinPlayersCommands(命令列表)

当在线玩家数量低于指定限制时要执行的命令列表

MaxPlayers(数量)

如果在线玩家超过定义的数量,将跳过计划任务

Feedbacktrue

如果设置为 false,在没有足够玩家执行此计划任务时将不会在控制台显示反馈消息

DontTranslatePlaceholdersfalse

如果设置为 true,我们不会在发送命令到后续处理前翻译命令内的占位符 这默认为 false,占位符会提前翻译 delay! 特殊命令变量除外,它总是会提前翻译

触发时间(PerformOn)🔗

PerformOn 部分将定义执行命令的特定时间。首先应定义名称,然后给出额外的时间段 它可以有 Month、Day、Hour、Minute、Second 部分。全部使用数字格式,小时使用 24 小时格式

PerformOn:
  FirstTimeFrame:
    Hour: 4
  SecondTimeFrame:
    Hour: 22
    Minute: 30

你可以使用星期名称来指示该计划任务应该在每周的哪一天执行。示例 - Day: Monday FirstMonthDayLastMonthDay 可以用来指示该计划任务应该在每月的哪一天执行。这会替换 Day 部分。示例 - FirstMonthDay: Friday 将在每月的第一个星期五触发计划任务 这将设置命令在凌晨 4 点和 22:30 执行。这是在在线玩家较少时控制服务器备份的好方法

命令专用语法(Commands)🔗

在时间正确时要执行的命令列表 可以在单行中定义多个命令,用 ;; 分隔每个命令,例如:command1;;command2;;command3

支持以下命令前缀: - 以 msg! 开头并给出玩家名称:如果该玩家在线,将向其发送一条简单消息 - 以 broadcast! 开头:将以简单方式向服务器上的所有人发送消息 - 以 actionbar! 开头:所有玩家将获得在此变量之后定义的动作栏消息 - 以 title! 开头:所有玩家将获得在此变量之后定义的标题消息 - 以 subtitle! 开头:所有玩家将获得在此变量之后定义的副标题消息 - 以 kickall! 开头:所有玩家将被踢出服务器并显示定义的消息。在服务器停止前很有用 - 以 perm:[permissionNode]! 开头:如果玩家拥有权限节点,命令将执行。当我们不知道目标玩家是谁时这不会起作用。例如:perm:cmi.announce.vip! broadcast! Hello vip guys - 以 moneycost:[amount]! 开头:如果玩家有足够的金钱,命令将执行 - 以 expcost:[amount]! 开头:如果玩家有足够的经验值,命令将执行 - 以 allPlayers! 开头:命令将通过使用每个在线玩家的名称来执行。命令本身需要包含 [allPlayers] 来指示玩家名称需要添加在哪里 - 插入 delay! 5 行以在计划任务触发后 5 秒执行剩余命令。这允许在服务器停止前创建例如倒计时 - [randomPlayer] 占位符可以用来获取没有 cmi.scheduler.exclude 权限节点的随机在线玩家名称。这可以用于在特定时间给随机玩家发放奖励。例如:cmi give [randomPlayer] diamond %rand/1-5% 将给随机在线玩家 1 到 5 颗随机数量的钻石

调度器示例🔗

GiveDiamonds(发放钻石)🔗

Enabledfalse

是否启用该调度器

MinPlayers3

执行命令时至少需要在线的最小玩家数量

FeedBacktrue

是否在控制台显示反馈消息

Repeattrue

是否重复执行

PerformOn18:00

定义执行时间

PerformOn:
  '1':
    Hour: 18

Commands(命令列表)

执行时执行的命令

Commands:
- cmi give [randomPlayer] diamond %rand/1-5%
- msg! [randomPlayer] &eYou just got diamonds!

StopServer(停止服务器)🔗

Enabledfalse

是否启用该调度器

PerformOn03:59:30

定义执行时间

PerformOn:
  '1':
    Hour: 3
    Minute: 59
    Second: 30

Commands(命令列表)

执行时执行的命令(倒计时后踢出所有玩家并停止服务器)

Commands:
- actionbar! &eServer will stop in &630 &esec!
- delay! 5
- actionbar! &eServer will stop in &625 &esec!
- delay! 5
- actionbar! &eServer will stop in &620 &esec!
- delay! 5
- actionbar! &eServer will stop in &615 &esec!
- delay! 5
- actionbar! &eServer will stop in &610 &esec!
- delay! 5
- actionbar! &eServer will stop in &65 &esec!
- delay! 1
- actionbar! &eServer will stop in &64 &esec!
- delay! 1
- actionbar! &eServer will stop in &63 &esec!
- delay! 1
- actionbar! &eServer will stop in &62 &esec!
- delay! 1
- actionbar! &eServer will stop in &61 &esec!
- delay! 1
- kickall! &eServer will be back online soon!
- delay! 1
- stop

AllInOneJustExample(综合示例)🔗

Enabledfalse

是否启用该调度器

MinPlayers3

执行命令时至少需要在线的最小玩家数量

MaxPlayers10

如果在线玩家超过定义的数量,将跳过计划任务

FeedBackfalse

是否在控制台显示反馈消息

Delay600

定义每次动作之间等待多久

Repeattrue

是否重复执行

PerformOn(多个时间段)

定义执行时间,可包含 Month、Day、Hour、Minute、Second 部分

PerformOn:
  '1':
    Month: 12
    Day: monday
    Hour: 18
    Minute: 36
    Second: 15
  '2':
    Hour: 18

Commands(命令列表)

执行时执行的命令

Commands:
- cmi give [randomPlayer] diamond %rand/1-5%
- msg! [randomPlayer] &eYou just got diamonds!
- broadcast! &e[randomPlayer] just got some stuff!
- delay! 1
- actionbar! &eServer will stop in &61 &esec!
- kickall! &eServer will be back online soon!

Announcer(公告)🔗

Enabledfalse

是否启用该调度器

MinPlayers1

执行命令时至少需要在线的最小玩家数量

FeedBackfalse

是否在控制台显示反馈消息

Delay600

定义每次动作之间等待多久

Repeattrue

是否重复执行

Randomizetrue

随机选取一条命令执行

Commands(命令列表)

执行时执行的命令

Commands:
- broadcast! &eRules can be found at &e/rules
- broadcast! &eKits can be accesed with &e/kits
- broadcast! &eIf you need help, ask staff
- broadcast! &eAdvertisement of other servers will be punished