- ◆ 支持核心
- Arclight,PaperSpigot
- ◆ 插件前置
- Cobblemon
- ◆ 游戏版本
- 1.21.1
介绍
本插件是道馆管理系统插件,支持 Arc/Youer核心 多平台部署,该插件为服务器提供完整的道馆运营解决方案,包含馆主管理、挑战系统、规则配置和奖励机制等功能模块 功能太多了不知道怎么遍了........(省略号)道馆管理系统
- 支持创建和管理多个独立道馆实例
- 提供馆主申请流程与审核机制(支持自动审核与人工审核模式)
- 实现道馆挑战系统,确保公平竞技环境
- 设计馆主继承与更替机制,保障道馆持续运营
对战功能模块
- 实现玩家 vs 玩家道馆挑战模式
- 集成虚拟训练师系统(馆主离线时可由AI智能代战)
- 支持自定义战斗规则配置
- 配备回合数限制、超时处理等高级战斗设置
规则配置引擎
- 提供宝可梦属性限制功能(类型、等级、IVs、EVs)
- 支持禁用宝可梦/传说/幻兽/究极异兽条款
- 实现同种族条款控制
- 配备超级进化条款管理
- 支持自定义申请条件验证
奖励分发系统
- 设计成为馆主奖励机制
- 实现失去馆主惩罚机制
- 提供挑战胜利/失败差异化奖励
- 配备馆主定期奖励系统(支持冷却时间配置)
- 支持道馆物品自动化发放
扩展功能
- 提供直观的GUI图形界面管理系统
- 集成PlaceholderAPI变量支持
- 支持SQLite/MySQL双数据库后端
- 实现挑战冷却时间控制系统
指令列表
| 命令 | 描述 | 权限 |
|---|---|---|
| /cg help | 显示帮助信息 | - |
| /cg open | 打开道馆主界面 | - |
| /cg reload | 重载配置文件 | cobblemongym.admin |
| /cg setgym <道馆名> <玩家> | 设置玩家为馆主 | cobblemongym.admin |
| /cg remove <道馆名> | 移除道馆馆主 | cobblemongym.admin |
| /cg removeplayer <玩家> | 移除玩家的馆主身份 | cobblemongym.admin |
| /cg gymbattle <玩家> | 发起道馆对战 | - |
| /cg giveitem | 领取道馆物品 | - |
PlaceholderAPI
| 变量 | 描述 |
|---|---|
| %cobblemongym_title% | 玩家的道馆称号 |
| %cobblemongym_gym_<道馆名>_owner% | 指定道馆的馆主名称 |
配置文件结构
battlerules/example.yml配置 - 对战规则文件
YAML:
# 馆主/馆主离线虚拟训练时对战规则
# 能无限创建申请配置
一般道馆战斗规则:
battle:
# 回合数量限制 达到回合数强制结束
# -1则不受限制
roundLimit: -1
# 回合内多久内没有动作视为挂机, 如果超过这个时间则强制结束战斗
# -1则不受限制
timeOut: -1
# n只神规则: 只能携带n只传奇宝可梦 -1表示不限制
Legend: -1
# n只究极异兽规则: 只能携带n只究极异兽宝可梦 -1表示不限制
Monster: -1
# n只幻兽规则: 只能携带n只幻兽宝可梦 -1表示不限制
Phantom: -1
# 条款
clause:
# 是否开启条款
enable: true
# 条款
# 一站到底规则:禁止逃跑
forfeitClause: false
# 包包条款:玩家不可以在战斗时使用背包中的道具。
bagClause: false
# 队伍顺序条款: 玩家不可以在战斗时切换宝可梦。
teamOrderClause: false
# 种类条款: 队伍中不可存在重复的宝可梦
speciesClause: false
# 超级进化条款: 禁止携带超级进化石 可以在config里自由删减添加
superEvolutionClause: false
# 条件
# 评估条件表达式 支持的比较运算符: ==, !=, >, <, >=, <=
# 支持 placeholderapi papi变量
# {teamNumber} - 玩家队伍数量
condition:
- '{teamNumber} >= 1'
gui/gymmaingui.yml配置 - 界面自定义文件
YAML:
# 精灵道馆主界面配置
# 槽位19 - 查看精灵馆主按钮
gymListButton:
name: "&b查看精灵馆主"
lore:
- "&7查看所有道馆信息"
- "&7以及当前的馆主"
- ""
- "&e点击打开"
# 槽位22 - 审核信息按钮
applicationButton:
name: "&c审核信息"
# 有权限时的lore
lore:
- "&7查看玩家的馆主申请"
- "&7并进行审核处理"
- ""
- "&e待审核: &f{pending}"
- ""
- "&e点击打开"
# 无权限时的lore
noPermissionLore:
- "&7查看玩家的馆主申请"
- "&7并进行审核处理"
- ""
- "&c你没有权限查看!"
# 槽位25 - 管理道馆按钮
manageButton:
name: "&d管理道馆"
lore:
- "&7查看你管理的道馆"
- "&7以及道馆信息"
- ""
- "&e点击打开"
gym/example.yml配置 - 道馆配置自定义
YAML:
# 道馆
# 能无限创建道馆配置
一般道馆:
# 道馆称号
# 该馆主拥有的称号 papi变量为cobblemongym_title
Title: "一般道馆"
# 填写rules配置文件夹里的配置文件里的申请配置名称
# 如rules配置文件夹example配置文件里的"一般道馆申请要求"
Rules: "一般道馆申请要求"
# 该道馆无道馆主时使用对战道馆训练师代替申请
# 也要像申请一样遵循Rules配置的要求 没有满足无法申请道馆npc对战
# 填入配置好的虚拟道馆npc后玩家申请道馆变成直接挑战道馆虚拟训练师
# 挑战胜利后直接成为该道馆主
# 该配置为空时 则为申请道馆
UseMatch: "一般道馆npc"
# 挑战馆主对战或者馆主离线时与馆主训练师代替对战时的战斗配置
Battle: "一般道馆战斗规则"
# 如果是使用对战道馆训练师代替申请情况下
# 挑战多少次才能成为馆主
MatchCount: 1
# 挑战者挑战馆主
# 挑战多少次才能成为新馆主
ChallengeCount: 1
# 挑战者挑战馆主/馆主离线时馆主训练师
# 挑战冷却 -1 或者0为 无限制 单位秒
MatchCooldown: -1
# 道馆物品
# 馆主使用指令/cg giveitem 给予自己该物品
Items:
name: "&7一般道馆徽章"
type: "cobblemonpokemonbadges:balance_badge"
lore:
- "&7一般道馆馆主: &a{p}"
- "&7身份的象征!!!!"
# 成为馆主执行的命令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# 变量:
# '{p}' 玩家名称
# '{gymName}' 道馆名称
InheritReward:
- '[broadcast]&7玩家 &f{p} &7成为了 {gymName} 馆主!!'
# 失去馆主执行的命令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# 变量:
# '{p}' 玩家名称
# '{gymName}' 道馆名称
LostReward:
- '[broadcast]&7玩家 &f{p} &7失去了 {gymName} 馆主!!'
# 挑战馆主胜利时执行的命令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 仅发给挑战者
# 变量:
# '{p}' 玩家名称
# '{gymName}' 道馆名称
# '{gymPlayName}' 道馆馆主玩家名称
WinReward:
- '[broadcast]&7玩家 &f{p} &7挑战了 {gymName} 馆主 {gymPlayName},挑战成功!!'
# 挑战馆主失败时执行的命令
# command 玩家执行
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 仅发给挑战者
# 变量:
# '{p}' 玩家名称
# '{gymName}' 道馆名称
# '{gymPlayName}' 道馆馆主玩家名称
LoseReward:
- '[broadcast]&7玩家 &f{p} &7挑战了 {gymName} 馆主 {gymPlayName},挑战失败!!'
# 馆主击败挑战者时执行的命令
# command 玩家执行
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 仅发给馆主
# 变量:
# '{p}' 玩家名称
# '{gymName}' 道馆名称
# '{gymChallengePlayName}' 道馆挑战者玩家名称
WinChallengeReward:
- '[tell]&f{p} &7击败了 {gymChallengePlayName} 挑战者'
# 馆主被挑战者击败时执行的命令
# command 玩家执行
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# tell 仅发给馆主
# 变量:
# '{p}' 玩家名称
# '{gymName}' 道馆名称
# '{gymChallengePlayName}' 道馆挑战者玩家名称
LoseChallengeReward:
- '[tell]&f{p} &7被 {gymChallengePlayName} 挑战者击败'
#设置在gui中显示的图标
GuiItem:
#物品显示名称
name: "&6☆ &7一般道馆 &6☆"
#显示物品id
type: "cobblemonpokemonbadges:balance_badge"
#物品数量
data: 1
#已有馆主时显示的lore
HaveLore:
- "&a当前馆主: &e{p}"
- ""
- "&a点击进入道馆"
#无馆主时申请的lore
NotLore:
- "&d馆主要求:"
- "&a一般系精灵 × 3"
- "&a精灵数量 × 6"
- "&a6v精灵 × 3"
- "&a满努力值精灵 × 3"
- "&a等级不得低于100级"
- "&f条件: {rules}"
- ""
- "&c点击申请馆主"
# 馆主奖励
Reward:
# 多久可领取一次 秒
cooldown: 86400
# 奖励
rewardCommands:
# 领取奖励执行时的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# '{p}' 玩家名称
- '[tell]&7恭喜你 &f{p} &7获得了奖励'
rules/example配置 - 道馆申请配置
YAML:
# 道馆申请配置
# 能无限创建申请配置
一般道馆申请要求:
# 禁止携带那些宝可梦
banPokemon:
tip: "您队伍拥有禁止携带的宝可梦或者相关属性的宝可梦!不可申请!"
# 禁止的宝可梦以及宝可梦的相关属性
list:
# 能无限创建禁止宝可梦的配置
# 该配置跟原版指令类似
# 能写原版指令的所有标签包括模组增加的标签
# 如何了解自定义宝可梦的标签
# 可以使用模组原版/pokemonspawn或者/givepokemon
# 然后tab 就可以查看所有宝可梦标签
# 这些标签都可以填写在下面配置中
# 自由度超乎你的想象
# 禁用皮卡丘 等级100 闪光
- "pikachu level=100 s"
# 禁用超梦 所有属性 形态 携带物等
- "mewtwo"
# 禁用所有100级的宝可梦
- "level=100"
# 禁用所有携带物为dragon_fang且闪光宝可梦
- "s helditem=cobblemon:dragon_fang"
# 禁止技能所有为恶意计划、多变光束、大地之力的宝可梦
- "moves=nastyplot,ficklebeam,earthpowe"
# 禁止恶意计划技能
- "moves=nastyplot"
# 禁止多变光束技能
- "moves=ficklebeam"
# 禁止能量吸收技能
- "moves=gigafrain"
# 禁止大地之力技能
- "moves=earthpowe"
# 固定需要哪些宝可梦
fixedPokemon:
tip: "您队伍没有所需要的固定宝可梦!"
list:
# 能无限创建禁止宝可梦的配置
# 自由度以上所示
- "pikachu level=100 s"
- "mewtwo"
# 精灵属性要求
attributePokemon:
tip: "您队伍不满足精灵属性要求!"
# amount:填写要求需达到的精灵数量
# type:填写要求的类型:
# ivs(个体)、evs(努力值)、level(等级)、type(属性)
# value:填写要求的值 可创建多个判断进行多个要求
# ivs:填写要求精灵个体总和至少 >= ?
# evs:填写要求精灵努力值总和至少 >= ?
# level:填写要求精灵等级至少 >= ?
# value:填写要求精灵判断要求
# 填写属性本地化名称,可创建多个属性判断进行多个属性要求
# 一般、火、水、电、草、冰
# 格斗、毒、地面、飞行、超能力
# 虫、岩石、幽灵、龙、恶、钢、妖精
# 能无限创建配置
精灵个体总和186×3:
# 数量
amount: 3
# 类型
type: "ivs"
value:
- "186"
精灵努力值总和510×3:
amount: 3
type: "evs"
value:
- "510"
精灵等级100×6:
amount: 6
type: "level"
value:
- "100"
一般属性精灵×3:
amount: 3
type: "type"
value:
- "一般"
virtualnpc/example.yml配置 - 道馆申请/离线虚拟训练师自定义
YAML:
# 虚拟训练家配置
一般道馆npc:
# 虚拟训练家名称
name: "一般道馆虚拟人机"
# 虚拟训练家等级
aiLevel: 5
# 虚拟训练家宝可梦队伍
team:
- "mewtwo level=100 s ability=zerotohero mega_evolution=mega_x helditem=cobblemon:dragon_fang"
- "pikachu level=100 s"
- "pikachu level=100 s moves=discharge,thunder,lightscreen,thunderbolt ability=regenerator"
# 战胜虚拟训练师 胜利时执行的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# '{p}' 玩家名称
# '{gymName}' 道馆名称
# '{virtualName}' 虚拟训练家名称
# '{currentWins}' 当前胜利次数
# '{requiredWins}' 所需胜利次数
winCommands:
- '[tell]&7恭喜你 &f{p} &7战胜了{virtualName}道馆训练师!进度: {currentWins}/{requiredWins}'
# 输与虚拟训练师 失败时执行的指令
# command 玩家执行
# op 玩家以 op 执行
# console 玩家以控制台执行
# broadcast 广播信息
# '{p}' 玩家名称
# '{gymName}' 道馆名称
# '{virtualName}' 虚拟训练家名称
# '{currentWins}' 当前胜利次数
# '{requiredWins}' 所需胜利次数
loseCommands:
- '[tell]&7失败了 希望你&f{p} &7再接再厉! 当前进度: {currentWins}/{requiredWins}'
游戏截图