
方块宝可梦-排位赛
为Cobblemon添加排名系统和跨服务器匹配支持。
查看大图📊 CobblemonRanked 排位系统文档
该模组只需在服务端安装。
客户端安装后,按下X键默认会打开图形化 GUI。
💡 为了使用enableTeamPreview功能,客户端也需要安装此模组。
🎯 功能概览
- 内置多语言支持(中文和英文),易于扩展
- 可配置的战斗竞技场,支持自动传送与返回
- 可自定义的段位称号和 Elo 分数阈值
- 支持三种模式:单打、双打和2v2单打
- Elo 排位系统按模式独立计算
- 每种模式拥有独立的奖励系统和可自定义的指令
- 内置赛季系统,支持自动轮换和数据重置
- 基于 Elo 的匹配队列,可选择按等待时间放宽匹配条件
- 掉线视为失败,并扣除 Elo 分数
- 完全 GUI 驱动,支持可点击文本菜单和图形化 GUI
- 支持跨服务器匹配
- 当
enableTeamPreview为True时,如果宝可梦数量超过设定限制,将触发选择参战宝可梦的界面。如果没有超过限制,则不会触发该界面。
例如,如果singlesPickCountNumber设为 3:
玩家 1 有 5 只宝可梦,将触发选择界面,需要选择 3 只参战。
玩家 2 只有 2 只宝可梦,不会触发选择界面。玩家 1 完成选择后,将直接开始战斗。
🌐 跨服务器匹配(不再维护)
自 v1.2.0+ 可用 — 支持从任何服务器或单人世界连接(需要正版 Minecraft 账号)
跨服务器匹配演示与配置:YouTube
你可以在此下载服务端以搭建自己的服务器。下载
✅ 使用方法
- 在配置中启用
enableCrossServer - 修改
cloudServerId,不要与其他服务器重复(默认的server可能已被他人使用) - 输入
/rank reload重新加载配置,或重启服务器 - 输入
/rank cross start连接云服务器
⚠️ 当前限制
- 仅支持单打模式
- 某些道具和技能效果可能无法生效
- 来自同一服务器的玩家不会被匹配在一起
🌐 跨服务器指令
| 指令 | 描述 | 权限 |
|---|---|---|
/rank cross start |
连接云服务器 | OP |
/rank cross stop |
断开云服务器连接 | OP |
/rank cross chat |
与对手聊天 | 所有玩家 |
/rank cross join singles |
进入单打匹配队列 | 所有玩家 |
/rank cross leave |
离开匹配队列 | 所有玩家 |
/rank cross battle move [1-4] |
战斗中使用招式 | 所有玩家 |
/rank cross battle switch [1-6] |
切换宝可梦 | 所有玩家 |
/rank cross battle forfeit |
投降 | 所有玩家 |
📌 指令总览
所有指令均以
/rank开头
🎮 玩家指令
| 指令 | 描述 |
|---|---|
/rank gui |
打开主菜单 GUI |
/rank gui_top |
打开排行榜格式选择 GUI |
/rank gui_info |
查看你的详细 Elo 统计数据 |
/rank gui_info_players |
分页查看在线玩家列表以查看其排名 |
/rank gui_myinfo |
快速查看自己的排名 |
/rank gui_queue |
打开匹配菜单 |
/rank gui_info_format <玩家> <模式> |
GUI 查看另一名玩家的赛季数据 |
/rank queue join [模式] |
加入排位队列 |
/rank queue leave |
离开所有匹配队列 |
/rank status |
显示当前队列状态 |
/rank info <模式> <赛季> |
显示指定模式和赛季的数据 |
/rank info <玩家> <模式> [赛季] |
查看另一名玩家在特定模式和赛季的排名 |
/rank top |
查看默认模式和当前赛季的排行榜 |
/rank top <模式> [赛季] [页数] [数量] |
分页查看指定模式和赛季的排行榜 |
/rank season |
查看当前赛季信息(开始/结束时间、参与情况等) |
/rank pokemon_usage <赛季> <页数> |
查看宝可梦使用率统计 |
🛡️ 管理员指令(需要 OP)
| 指令 | 描述 |
|---|---|
/rank gui_reward |
打开奖励模式选择 GUI |
/rank gui_reset |
分页显示在线玩家列表以重置排名 |
/rank reset <玩家> <模式> |
重置玩家在当前赛季和模式的数据 |
/rank reward <玩家> <模式> <段位> |
向玩家发放指定段位的奖励 |
/rank season end |
强制结束当前赛季 |
/rank reload |
重新加载配置文件(语言、段位设置等) |
/rank setseasonname <赛季ID> <名称> |
设置赛季名称 |
占位符 API
基础占位符(使用默认模式)
| 占位符 | 描述 |
|---|---|
%cobblemon_ranked:elo% |
ELO 分数 |
%cobblemon_ranked:rank_title% |
段位称号 |
%cobblemon_ranked:win_rate% |
胜率 |
%cobblemon_ranked:wins% |
胜利次数 |
%cobblemon_ranked:losses% |
失败次数 |
%cobblemon_ranked:total_games% |
总比赛场数 |
%cobblemon_ranked:streak% |
当前连胜 |
%cobblemon_ranked:best_streak% |
最佳连胜纪录 |
%cobblemon_ranked:flee_count% |
逃跑/退出次数 |
%cobblemon_ranked:rank% |
当前排名(例如,#1) |
赛季相关占位符
| 占位符 | 描述 |
|---|---|
%cobblemon_ranked:season_name% |
赛季名称 |
%cobblemon_ranked:season_id% |
赛季 ID |
%cobblemon_ranked:season_days_left% |
赛季剩余天数 |
%cobblemon_ranked:season_time_left% |
格式化后的剩余时间 |
段位进度占位符
| 占位符 | 描述 |
|---|---|
%cobblemon_ranked:next_rank_elo% |
下一段位所需的 ELO 分数 |
%cobblemon_ranked:next_rank_name% |
下一段位名称 |
队列状态占位符
| 占位符 | 描述 |
|---|---|
%cobblemon_ranked:queue_status% |
当前队列状态 |
模式支持(指定战斗模式)
支持三种战斗模式:singles、doubles、2v2singles
用法:在占位符中添加 _模式
| 占位符 | 描述 |
|---|---|
%cobblemon_ranked:elo_singles% |
单打 ELO 分数 |
%cobblemon_ranked:elo_doubles% |
双打 ELO 分数 |
%cobblemon_ranked:elo_2v2singles% |
2v2 单打 ELO 分数 |
%cobblemon_ranked:rank_title_singles% |
单打段位称号 |
%cobblemon_ranked:rank_title_doubles% |
双打段位称号 |
%cobblemon_ranked:win_rate_singles% |
单打胜率 |
%cobblemon_ranked:win_rate_doubles% |
双打胜率 |
%cobblemon_ranked:wins_singles% |
单打胜利次数 |
%cobblemon_ranked:wins_doubles% |
双打胜利次数 |
%cobblemon_ranked:rank_singles% |
单打排名 |
%cobblemon_ranked:rank_doubles% |
双打排名 |
%cobblemon_ranked:next_rank_elo_singles% |
单打下一段位所需 ELO |
%cobblemon_ranked:next_rank_name_singles% |
单打下一段位名称 |
注意: 赛季相关占位符(season_name、season_id、season_days_left、season_time_left)和 queue_status 不支持模式参数,因为它们与特定模式无关。
⚙️ 配置文件参考(cobblemon_ranked.json)
点击展开完整配置参考(含行内注释)
{
"defaultLang": "en", // 默认语言:'en' 或 'zh'
"defaultFormat": "singles", // 默认战斗模式
"minTeamSize": 1, // 每队最少宝可梦数量
"maxTeamSize": 6, // 每队最多宝可梦数量
"allowDuplicateItems": false, // 允许队伍中重复携带相同道具
"enableTeamPreview": true, // 启用队伍预览和选择(携带 6 选 3/4)
"teamSelectionTime": 90, // 队伍选择允许时间(秒)
"turnActionTimeoutSeconds": 90, // 每回合选择行动允许时间(秒,0 = 禁用)
"singlesPickCount": 3, // 单打选择宝可梦数量(通常为 3)
"doublesPickCount": 4, // 双打选择宝可梦数量(通常为 4)
"maxEloDiff": 200, // 匹配时最大 Elo 差距
"maxQueueTime": 300, // 最大等待时间(秒),超过后放宽 Elo 规则
"maxEloMultiplier": 3.0, // Elo 差距放宽的最大倍数
"seasonDuration": 30, // 赛季持续时间(天)
"initialElo": 1000, // 赛季初的 Elo 分数
"eloKFactor": 32, // Elo K 系数(影响 Elo 变化幅度)
"minElo": 0, // Elo 最低下限
"loserProtectionRate": 1.0, // 败者保护系数(0.0 到 1.0)。败者最多扣除(胜者得分 * 保护系数)。1.0 = 无保护
"bannedPokemon": ["Mewtwo", "Arceus"], // 禁用宝可梦列表(例如,传说宝可梦)
"restrictedPokemon": ["Mew", "Celebi"], // 限制宝可梦列表
"maxRestrictedCount": 2, // 队伍中允许的限制宝可梦最大数量
"bannedHeldItems": ["cobblemon:leftovers"], // 禁用宝可梦携带道具
"bannedCarriedItems": ["cobblemon:leftovers"], // 禁用玩家背包中的道具
"bannedMoves": ["leechseed"], // 禁用招式
"bannedNatures": ["cobblemon:naughty"], // 禁用性格
"bannedAbilities": [], // 禁用特性
"bannedGenders": ["MALE"], // 禁用性别
"bannedShiny": false, // 禁用闪光宝可梦参与战斗
"allowedFormats": ["singles", "doubles", "2v2singles"], // 支持的战斗模式
"maxLevel": 0, // 宝可梦最高等级(0 = 无限制)
"allowDuplicateSpecies": false, // 是否允许重复的宝可梦种类
"enableCustomLevel": false, // 启用强制修改宝可梦等级
"customBattleLevel": 50, // 强制修改后的宝可梦等级
"preventBlockBreaking": true, // 防止玩家在排位战斗中破坏方块
"restorePokemonHpAfterBattle": true, // 战斗结束后恢复宝可梦 HP
"battleArenas": [ // 竞技场列表(战斗传送位置)
{
"world": "minecraft:overworld",
"playerPositions": [
{ "x": 0.0, "y": 70.0, "z": 0.0 },
{ "x": 10.0, "y": 70.0, "z": 0.0 }
]
},
{
"world": "minecraft:overworld",
"playerPositions": [
{ "x": 100.0, "y": 65.0, "z": 100.0 },
{ "x": 110.0, "y": 65.0, "z": 100.0 }
]
}
],
"victoryRewards": [ // 胜利奖励配置(每次胜利后执行)
"give {player} minecraft:experience_bottle 5",
"give {player} minecraft:emerald 1"
],
"rankRewards": { // 按模式划分的段位奖励(基于指令)
"singles": {
"Bronze": ["give {player} minecraft:apple 5"],
"Silver": ["give {player} minecraft:golden_apple 3"],
"Gold": ["give {player} minecraft:diamond 2", "give {player} minecraft:emerald 5"],
"Platinum": ["give {player} minecraft:diamond_block 1", "effect give {player} minecraft:strength 3600 1"],
"Diamond": ["give {player} minecraft:netherite_ingot 1", "give {player} minecraft:elytra 1"],
"Master": ["give {player} minecraft:netherite_block 2", "give {player} minecraft:totem_of_undying 1", "effect give {player} minecraft:resistance 7200 2"]
},
"doubles": {
"Bronze": ["give {player} minecraft:bread 5"],
"Silver": ["give {player} minecraft:gold_nugget 10"],
"Gold": ["give {player} minecraft:emerald 1"],
"Platinum": ["give {player} minecraft:golden_apple 1"],
"Diamond": ["give {player} minecraft:totem_of_undying 1"],
"Master": ["give {player} minecraft:netherite_ingot 2"]
},
"2v2singles": {
"Bronze": ["give {player} minecraft:bread 5"],
"Silver": ["give {player} minecraft:gold_nugget 10"],
"Gold": ["give {player} minecraft:emerald 1"],
"Platinum": ["give {player} minecraft:golden_apple 1"],
"Diamond": ["give {player} minecraft:totem_of_undying 1"],
"Master": ["give {player} minecraft:netherite_ingot 2"]
}
},
"rankTitles": { // Elo 阈值 → 段位名称
"3500": "Master",
"3000": "Diamond",
"2500": "Platinum",
"2000": "Gold",
"1500": "Silver",
"0": "Bronze"
},
"rankRequirements": { // 每个段位奖励所需的最低胜率要求(0.0 ~ 1.0)
"Bronze": 0.0,
"Silver": 0.3,
"Gold": 0.3,
"Platinum": 0.3,
"Diamond": 0.3,
"Master": 0.3
},
"enableCrossServer": true, // 启用跨服务器匹配
"cloudServerId": "server", // 此服务器的云服务器 ID(不能与他人重复)
"cloudToken": "", // 云服务器认证令牌(公共云服务器留空)
"cloudApiUrl": "http://139.196.103.55:8000", // 云 API 地址(IP 或域名均可)
"cloudWebSocketUrl": "ws://139.196.103.55:8000/ws/" // 云 WebSocket 地址(IP 或域名均可)
}
点击展开 `database.json`
{
// 数据库类型:'sqlite' 或 'mysql'
"databaseType": "sqlite",
// SQLite 数据库文件路径(相对于配置文件夹)
"sqliteFile": "ranked.db",
// MySQL 配置
"mysql": {
// MySQL 主机地址
"host": "localhost",
// MySQL 端口
"port": 3306,
// MySQL 数据库名称
"database": "cobblemon_ranked",
// MySQL 用户名
"username": "root",
// MySQL 密码
"password": "",
// MySQL 连接池大小
"poolSize": 10,
// MySQL 连接超时时间(毫秒)
"connectionTimeout": 5000,
// 其他 MySQL 连接参数
"parameters": "useSSL=false&serverTimezone=UTC&characterEncoding=utf8"
}
}
正在加载版本记录…







正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。