增加计分板的注册支持
[MD]
# 1.objective
| 占位符 | 含义 |
|---|---|
| `{sb.<objective>}` | objective 的显示名(sidebar 标题) |
| `{sb.<objective>.title}` / `.display` / `.name` | 同上 |
| `{sb.<objective>.objective}` / `.id` | objective 名(不是显示名) |
| `{sb.<objective>.count}` / `.size` | 条目数量 |
| `{sb.<objective>.criteria}` | 判据(通常是 `dummy`) |
| `{sb.<objective>.slots}` | 当前显示槽,逗号分隔(如 `sidebar,list`;未显示为空) |
| `{sb.<objective>.lines}` | 全部条目,每行 `名字 分数`,用 `\n` 分隔 → 展开成立多行侧边栏 |
| `{sb.<objective>.names}` | 所有条目名,`, ` 分隔 |
| `{sb.<objective>.scores}` | 所有分数,`, ` 分隔 |
# 2.排行榜
| 占位符 | 含义 |
|---|---|
| `{sb.<objective>.top.<N>}` | 第 N 名,输出 `名字 分数` |
| `{sb.<objective>.top.<N>.name}` | 第 N 名的名字 |
| `{sb.<objective>.top.<N>.score}` | 第 N 名的分数 |
# 3.条目与玩家自身
| 占位符 | 含义 |
|---|---|
| `{sb.<objective>.<条目名>}` | 该条目在这个 objective 里的分数(找不到输出空串) |
| `{sb.<objective>.of.<条目名>}` | 同上;条目名与关键字(`count`/`title`/`top`…)同名时用这个写法 |
| `{sb.<objective>.me}` / `.myscore` | 当前玩家自己的分数 |
| `{sb.<objective>.rank}` / `.myrank` | 当前玩家自己的名次(1-based) |
# 4.新增配置项
```json
{
"hz": 100,
"scoreboard_cache_ms": 500 //计分板缓存 TTL(毫秒)同一刷新周期内多个 `{sb.*}` 共用一份缓存;`0` 表示每次都重新读取(不推荐)
}
```
[/MD]