Installation command
!!MCDR plugin install title_managerAuthor
Repository
Homepage
Synced at
...
Last update
...
Latest version
Total downloads
11
Back to catalogue
DCSTitleManager
Minecraft 服务器称号管理 MCDR 插件,基于 Team 机制实现称号的前缀显示,玩家可自行切换佩戴。
依赖
| 依赖 | 版本 | 说明 |
|---|---|---|
| MCDReforged | >=2.14.0 | 核心框架 |
| openpyxl | >=3.0.0 | 必要,导入导出功能需要 |
插件安装时,MCDR 会自动安装
requirements.txt中的 Python 依赖。另需配合
TitlePrefixHandler处理器插件使用,以确保包含称号前缀的玩家名在 MCDR 中正确解析。
TitlePrefixHandlerGitHub: https://github.com/ayuan94/TitlePrefixHandler
命令
玩家命令
| 命令 | 说明 |
|---|---|
!!title | 显示帮助 |
!!title help | 显示帮助 |
!!title list [页码] | 查看拥有的称号 |
!!title set <titleId> | 佩戴称号 |
!!title leave | 解除佩戴 |
管理员命令
| 命令 | 说明 |
|---|---|
!!title add <titleId> <名称> <颜色> <加粗> | 创建称号(无需输入中括号) |
!!title remove <titleId> | 删除称号 |
!!title join <玩家> <titleId> | 赋予并佩戴 |
!!title give <玩家> <titleId> | 赋予(不佩戴) |
!!title delete <玩家> <titleId> | 移除玩家称号 |
!!title show all | 查看所有称号 |
!!title show player <玩家> | 查看玩家称号 |
!!title show title <titleId> | 查看称号拥有者 |
!!title move <旧玩家> <新玩家> | 迁移称号(改名) |
!!title export | 导出数据到 Excel |
!!title import | 从 Excel 导入(预览) |
!!title import confirm | 确认导入 |
游戏内交互
- 称号列表以实际颜色和加粗效果预览,所见即所得
- 称号名可点击直接佩戴,佩戴中的称号显示
[解除]按钮 - 鼠标悬停显示操作提示
- 管理员
show all中点击称号名可跳转查看拥有者
数据文件
数据存储在 /config/title_manager/ 目录下。
title.json — 称号定义
[
{
"id": "1",
"name": "[星期六]",
"color": "red",
"bold": "true"
}
]
创建称号时无需输入中括号,插件会自动补齐
[名称],Team 前缀中自动追加空格与玩家名分隔。
等效命令:
/team modify 1 prefix {"text":"[星期六] ","color":"red","bold":true}
效果:
playerTitleData.json — 玩家与称号的关联
[
{ "playerName": "Steve", "titleId": "1" },
{ "playerName": "Steve", "titleId": "2" },
{ "playerName": "Alex", "titleId": "2" }
]
wearingTitle.json — 当前佩戴状态
{
"Steve": "1",
"Alex": "2"
}
Excel 导入导出
!!title export 导出数据到插件目录下的 title_data_export.xlsx,包含三个 Sheet:
| Sheet | 列 | 说明 |
|---|---|---|
| 称号 | 称号ID / 名称 / 颜色 / 加粗 | 所有称号定义 |
| 玩家称号 | 玩家名 / 称号ID | 玩家与称号关联 |
| 佩戴状态 | 玩家名 / 佩戴称号ID | 当前佩戴状态 |
导入流程:
- 将 Excel 文件放到插件数据目录,命名为
title_data_export.xlsx - 执行
!!title import预览数据量 - 确认后执行
!!title import confirm完成导入
Warning
导入会覆盖当前所有数据,请先 !!title export 备份。
Name Handler 适配
Important
DCSTitleManager 依赖一个额外的 handler 插件:TitlePrefixHandler。
该 handler 用于修复含有称号前缀的玩家名解析,避免默认 vanilla_handler 在处理多个 [] 前缀时误判玩家名。
请先安装并启用 TitlePrefixHandler,然后再加载本插件。
import re
from mcdreforged.handler.impl import VanillaHandler
PLUGIN_METADATA = {
'id': 'title_prefix_handler',
'version': '1.0.0',
}
class TitlePrefixHandler(VanillaHandler):
def get_name(self) -> str:
return 'title_prefix_handler'
def pre_parse_server_stdout(self, text: str):
text = super().pre_parse_server_stdout(text)
# Remove the third title prefix segment from raw server output.
text = re.sub(
r'^(.*?\[[^]]+\].*?\[[^]]+\].*?)\[[^]]+\]\s+',
r'\1',
text
)
return text
def parse_server_stdout(self, text: str):
info = super().parse_server_stdout(text)
if info.player is None:
m = re.fullmatch(r'<\[[^]]+](?P<name>[^>]+)> (?P<message>.*)', info.content)
if m is not None:
name = m['name'].strip()
if self._verify_player_name(name):
info.player, info.content = name, m['message']
return info
def on_load(server, prev_module):
server.register_server_handler(TitlePrefixHandler())
tips
Important
启用本称号插件前,建议清除服务器内所有已有 Team,避免冲突。
README source: README.md