- ◆ 支持核心
- CatServer,Spigot
- ◆ 插件前置
- PlaceholderAPI
- ◆ 游戏版本
- 1.12.2 - 1.21.*(宝可梦仅支持CatServer 1.12.2)
ChallengeMission
基于Bukkit 1.12.2开发的任务插件,可以通过PlaceholderAPI占位符和强大的表达式语言,来自由的配置任务,可以控制任务刷新时间,每日每周每月的重复循环,插件使用现代化设即使现在功能不是很全面,但它依旧是市面上强大的任务插件。
—————————————————————————————
插件基础功能:
- 自动重载

- 定时保存

- 数据优化

- 多线程优化

插件任务功能:
- 无限多的任务

- 自动重置任务

- 支持:每日(几点几分几秒),每周(第几周几点几分几秒),每月(第几天几点几分几秒),永不刷新任务。
- 支持运算符

- 支持:算术运算 (+, -, *, /, %),关系运算 (>, >=, <, <=, ==, !=),逻辑运算 (&&, ||, !)。
- 支持各种标题

支持的任务类型:
警告:目前仅支持 Pixelmon-1.12.2-8.4.2+ 的任务,当然 Pixelmon-1.16.x 也支持,具体需要自己测试以及向作者反馈!1. 繁殖出蛋
2. 投喂糖果
3. 击败首领(Boss)
4. 击败普通
5. 击败神兽
6. 击败异兽
7. 捕捉普通
8. 捕捉神兽
9. 捕捉异兽
10. 精灵升级
11. 获得经验
12. 打败训练家
13 激活三鸟祭坛
14. 采摘树果
15. 采摘球果
16. 精灵进化
17. 精灵球箱
18. 高级球箱
19. 大师球箱
20. 究极球箱
21. 全部球箱
22. 投喂极巨糖果
23. 钓鱼
24. 购买商人的物品
25. 出售商品给商人
26. 交换精灵(交换机)
27. 获得努力值
PlaceholderAPI占位符:
占位符 | 说明 |
%chm_getStats_<文件名称>.<任务名称>.makeEgg% | 繁殖出蛋 |
%chm_getStats_<文件名称>.<任务名称>.rareCandy% | 投喂糖果 |
%chm_getStats_<文件名称>.<任务名称>.beatPokemonBoss% | 击败首领(Boss) |
%chm_getStats_<文件名称>.<任务名称>.beatPokemonCommon% | 击败普通 |
%chm_getStats_<文件名称>.<任务名称>.beatPokemonLegendary% | 击败神兽 |
%chm_getStats_<文件名称>.<任务名称>.beatPokemonUltraBeast% | 击败异兽 |
%chm_getStats_<文件名称>.<任务名称>.capturePokemonCommon% | 捕捉普通 |
%chm_getStats_<文件名称>.<任务名称>.capturePokemonLegendary% | 捕捉神兽 |
%chm_getStats_<文件名称>.<任务名称>.capturePokemonUltraBeast% | 捕捉异兽 |
%chm_getStats_<文件名称>.<任务名称>.pokemonLevelUp% | 精灵升级 |
%chm_getStats_<文件名称>.<任务名称>.experienceGain% | 获得经验 |
%chm_getStats_<文件名称>.<任务名称>.beatTrainer% | 打败训练家 |
%chm_getStats_<文件名称>.<任务名称>.playerActivateShrine% | 激活三鸟祭坛 |
%chm_getStats_<文件名称>.<任务名称>.berryEventPickBerry% | 采摘树果 |
%chm_getStats_<文件名称>.<任务名称>.apricornEventPickBerry% | 采摘球果 |
%chm_getStats_<文件名称>.<任务名称>.evolveEventPostEvolve% | 精灵进化 |
%chm_getStats_<文件名称>.<任务名称>.rewardPokeChest% | 精灵球箱 |
%chm_getStats_<文件名称>.<任务名称>.rewardUltraChest% | 高级球箱 |
%chm_getStats_<文件名称>.<任务名称>.rewardMasterChest% | 大师球箱 |
%chm_getStats_<文件名称>.<任务名称>.rewardBestChest% | 究极球箱 |
%chm_getStats_<文件名称>.<任务名称>.rewardAllTypeChest% | 全部球箱 |
%chm_getStats_<文件名称>.<任务名称>.dynamaxCandy% | 投喂极巨糖果 |
%chm_getStats_<文件名称>.<任务名称>.fishingEventReel% | 钓鱼 |
%chm_getStats_<文件名称>.<任务名称>.shopkeeperPurchase% | 购买商人的物品 |
%chm_getStats_<文件名称>.<任务名称>.shopkeeperSell% | 出售商品给商人 |
%chm_getStats_<文件名称>.<任务名称>.pixelmonTrade% | 交换精灵(交换机) |
%chm_getStats_<文件名称>.<任务名称>.evsGained% | 获得努力值 |
%chm_getData_<文件名称>.<任务名称>.<数据名称>% | 获取数据 |
插件的命令 /chm help:
别名: cm, chm, challengemission
重载全部配置: /cm reload
重载指定配置: /cm reload <fileName>执行任务动作: /cm task <player> <文件名> <任务名> <操作名>说明: 执行配置中的任务操作,需要指定文件 > 任务 > 操作的名称。
设定自定义数据: /cm data set <player> <文件名> <任务名> <数据名> <值>
说明: 可以设定或自定义数据,随着任务过期而重置数据。删除自定义数据: /cm data delete <player> <文件名> <任务名> <数据名>说明: 可以删除设定过的自定义数据。
插件的权限:
challengemission.admin # 总控制权
challengemission.reload # 重载权限
challengemission.task # task命令权限
challengemission.revise # revise命令权限challengemission.data # data命令权限
配置结构:
YAML:
Challenge:
# 任务名称
DAILY:
# 任务刷新周期,可选"DAILY", "WEEKLY", "MONTHLY", "MAX"
# 说明:当完成或未完成任务时到了指定时间任务就会重置,什么时候重置由你决定。
# 日常任务格式: DAILY-23:59:59
# 每周任务格式: WEEKLY-23:59:59-1
# 每月任务格式: MONTHLY-23:59:59-31
# 永远不会刷新: MXA-?
# 注意:
# 1. 时间格式范围00:00:00到23:59:59,填写不正确以默认23:59:59为准。
# 2. 周期格式范围1到7,填写不正确以以默认下周一为准。
# 3. 日期格式范围1的31天,若没有31天以当月最后一天为准,格式不正确默认以当月最后一天为准。
# 4. 当你设定了 WEEKLY-23:59:59-1 的重置时间时,在设定 DAILY-23:59:59 玩家数据刷新时间依旧以
# WEEKLY-23:59:59-1 为准直到过期后才会以 DAILY-23:59:59 为准,除非对任务重命名,且不跟历史任务名称有重复。
Period: "DAILY-23:59:59"
# 执行命令: /chm task <玩家> daily DAILY MAKE_EGG
# 说明: 当任务完成后就会执行领取奖励,并锁定防止重复领取,除非任务刷新!
# 繁殖出6个蛋
MAKE_EGG:
# 说明:表达式语言脚本
# - 支持的运算:
# * 算术运算 (+, -, *, /, %)
# * 关系运算 (>, >=, <, <=, ==, !=)
# * 逻辑运算 (&&, ||, !)
# * 条件运算 (? :)
- condition: "%chm_getStats_daily.DAILY.makeEgg% >= 6 && %chm_getData_daily.DAILY.MAKE-EGG% == false"
actions:
- "data: daily DAILY MAKE-EGG true"
- "tell: &7[&b任务系统&f]&f: &a恭喜 %player_name% 完成,今日的繁殖6个蛋任务!"
# 完成任务后要执行的命令
deny:
# 当任务已完成被锁定时执行 actions,还未达到任务条件执行 deny。
- condition: "%chm_getStats_daily.DAILY.makeEgg% >= 6 && %chm_getData_daily.DAILY.MAKE-EGG% == true"
actions:
- "tell: &7[&b任务系统&f]&f: &e抱歉 %player_name% 你已完成今日的繁殖6个蛋任务,明天再来吧。"
deny:
- "tell: &7[&b任务系统&f]&f: &c抱歉 %player_name% 你还未达到今日繁殖6个蛋的任务条件,完成了再来领取吧。"
# ----------------------------------------------------------------------------------------------------------------------------------- #
# 执行命令: /chm task <玩家> daily DAILY RARE-CANDY
# 说明: 当任务完成后就会执行领取奖励,并锁定防止重复领取,除非任务刷新!
# 投喂糖果给三只宝可梦
RARE-CANDY:
- condition: "%chm_getStats_daily.DAILY.rareCandy% >= 3 && %chm_getData_daily.DAILY.RARE-CANDY% == false"
actions:
##################################################################################################
# 给玩家设定临时数据(随着任务重制而重置数据)
# 用法: 文件名称 任务名称 数据名称(自定义) 值(自定义)
# 说明: 可以用于任务完成后防止重复领取,使用占位符%chm_data_<文件名称>_<任务名称>_<数据名称>%可以获取值!
# - "data: daily DAILY RARE-CANDY true"
# - "data-dsl: daily > DAILY > RARE-CANDY = true" # 语法不同效果一致
# 以玩家身份执行命令
# - "command: me 我是一个玩家!"
# 以管理员身份执行命令
# - "op: give %player_name% minecraft:diamond"
# 以控制台身份执行命令
# - "console: give %player_name% minecraft:diamond_sword"
# 发送信息给玩家
# - "tell: 你获得了一个钻石和一把钻石剑!"
# 发送标题给玩家
# 用法(20kit为1秒): `主标题` `副标题` 淡入时间 停留时间 淡出时间
# - "title: `任务完成` `奖励已发放至您的背包` 10 100 10"
##################################################################################################
- "data: daily DAILY RARE-CANDY true"
- "tell: &7[&b任务系统&f]&f: &a恭喜 %player_name% 完成,今日的投喂糖果给3只宝可梦任务!"
# 完成任务后要执行的命令
- "console: give %player_name% minecraft:diamond 1 0"
deny:
# 当任务已完成被锁定时执行 actions,还未达到任务条件执行 deny。
- condition: "%chm_getStats_daily.DAILY.rareCandy% >= 3 && %chm_getData_daily.DAILY.RARE-CANDY% == true"
actions:
- "tell: &7[&b任务系统&f]&f: &e抱歉 %player_name% 你已完成今日的投喂糖果给3只宝可梦任务,明天再来吧。"
deny:
- "tell: &7[&b任务系统&f]&f: &c抱歉 %player_name% 你还未达到今日投喂糖果给3只宝可梦的条件,完成了再来领取吧。"