截图
介绍
📊 CobblemonRanked 排位系统文档
此模组只需安装在服务器端。
安装客户端后,默认按下X键即可打开图形界面。
💡 若要使用enableTeamPreview功能,客户端也需要安装此模组。
🎯 功能概览
- 内置多语言支持(中文和英文),易于扩展
- 可配置的战斗场地,支持自动传送和返回
- 可自定义段位称号和 Elo 阈值
- 支持三种模式:单打、双打和2v2 单打
- 每种对战格式均独立计算 Elo 排名
- 每种对战格式均拥有独立的奖励系统,并可自定义命令
- 内置赛季系统,可自动轮换并重置数据
- 基于 Elo 的匹配队列,可选择根据等待时间放宽匹配条件
- 断线将视为失败,并扣除 Elo
- 完全由图形界面驱动,包含可点击的文本菜单和图形界面
- 支持跨服务器匹配
- 将
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 |
打开主菜单界面 |
/rank gui_top |
打开排行榜格式选择界面 |
/rank gui_info |
查看你的详细 Elo 统计数据 |
/rank gui_info_players |
分页列出在线玩家,可查看他们的排名 |
/rank gui_myinfo |
快速查看自己的排名 |
/rank gui_queue |
打开匹配菜单 |
/rank gui_info_format <player> <format> |
通过界面查看其他玩家本赛季的统计数据 |
/rank queue join [format] |
加入排位队列 |
/rank queue leave |
退出所有匹配队列 |
/rank status |
显示你当前的队列状态 |
/rank info <format> <season> |
显示你在指定对战格式和赛季中的统计数据 |
/rank info <player> <format> [season] |
查看其他玩家在指定对战格式和赛季中的排名 |
/rank top |
查看默认对战格式和当前赛季的排行榜 |
/rank top <format> [season] [page] [count] |
分页查看指定对战格式和赛季的排行榜 |
/rank season |
查看当前赛季信息(开始/结束时间、参与情况等) |
/rank pokemon_usage <season> <page> |
查看宝可梦的使用统计数据 |
🛡️ 管理员命令(需要 OP 权限)
| 命令 | 描述 |
|---|---|
/rank gui_reward |
打开奖励格式选择界面 |
/rank gui_reset |
分页列出在线玩家,可重置其排名 |
/rank reset <player> <format> |
重置玩家当前赛季和指定对战格式的数据 |
/rank reward <player> <format> <rank> |
根据指定排名向玩家发放奖励 |
/rank season end |
强制结束当前赛季 |
/rank reload |
重新加载配置文件(语言、排名设置等) |
/rank setseasonname <seasonId> <name> |
设置赛季名称 |
以下是修订后的 Wiki 内容:
占位符 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
用法:在占位符后添加 _format
| 占位符 | 说明 |
|---|---|
%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)
<details> <summary>点击展开完整配置参考(含内联注释)</summary>
{
"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 或域名)
}
</details>
<details> <summary>点击展开 database.json</summary>
“`json { // Database type: ‘sqlite’ or ‘mysql’ “databaseType”: “sqlite”, // SQLite database file path (relative to config folder) “sqliteFile”: “ranked.db”, // MySQL configuration “mysql”: { // MySQL host address “host”: “localhost”, // MySQL port “port”: 3306, // MySQL database name “database”: “cobblemon_ranked”, // MySQL username “username”: “root”, // MySQL password “password”: “”, // MySQL connection pool size “poolSize”: 10, // MySQL connection timeout (ms) “connectionTimeout”: 5000, // Additional MySQL connection parameters “parameters”: “useSSL=false&serverTimezone=UTC&characterEncoding=utf8” } }
常见问题
Cobblemon Ranked 支持哪些 Minecraft 版本?
Cobblemon Ranked 支持 Minecraft Java 版 1.21.1,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。
Cobblemon Ranked 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
Kurt5 的其他作品
查看全部 →
Cobblemon Ranked
为Cobblemon添加了排名系统和跨服匹配支持
Unknown Echoes
adventure Mod centered around exploration, puzzle-solving, boss battles, and progressive ability growth.
Unknown Echoes
adventure Mod centered around exploration, puzzle-solving, boss battles, and progressive ability growth.
ElytraAutoCollect
Smart Elytra Auto-Collection Module, which can also function as a mapping tool
评论
登录后评论和评分