商店与获取方式
玩家可以通过以下方式获得称号,每个称号可以任选其中几种:
| 方式 | 说明 |
|---|---|
| 称号商店 | /clt shop 用金币、点券、物品购买 |
| 称号卡 | 右键使用获得称号,可作为活动奖励、礼包、交易物品 |
| 随机称号卡 | 右键从卡池里随机获得一个称号(盲盒) |
| 收集奖励 | 收集够数量后领取的奖励里可以包含称号 |
| 自定义称号 | 玩家付费定制专属的文字称号 |
| 管理员 / 活动发放 | /clt give,或由其他插件执行指令、调用 API |
所有获得、续期、收回与到期都会记入操作日志。
商 店
在称号配置中加入 shop: 即可上架:
titles/my.yml
star:
name: '&e星辰'
shop:
enabled: true
duration: 30d # 购买获得的时 长;permanent = 永久
money: 5000 # Vault 金币
points: 100 # PlayerPoints 点券
items: # 物品(空格后面是显示名称)
- 'DIAMOND*5 钻石'
- 'mmoitems:MATERIAL:RUBY*3 红宝石'
permission: '' # 需要该权限才能购买,留空 = 所有人
money、points、items写了的都要付,可以只写其中一种,也可以组合。都不写 = 免费领取。- 缺一样就什么都不扣:金币、点券、物品任何一项不够,会列出还缺多少,其余也不会被扣除。
- 点击称号后会提示「再次点击确认购买」,在
menus/shop.yml的confirm-seconds(默认 5 秒)内再点一次才会购买,防止误触。 - 已永久拥有的称号不能重复购买;拥有限时版本时再次购买会续期(在原到期时间上累加),购买永久版则升级为永久。
物品写法
| 写法 | 物品 |
|---|---|
DIAMOND*5 | 原版物品 × 5 |
mmoitems:类型:ID*3 | MMOItems 物品,例如 mmoitems:MATERIAL:RUBY*3 |
ia:命名空间:ID*2 | ItemsAdder 物品 |
ce:命名空间:ID | CraftEngine 物品 |
nexo:ID | Nexo 物品 |
- 不写
*数量时为 1。 - 在后面加空格和名称,会作为价格里显示的名字:
'DIAMOND*5 钻石'。 - 原版物品只接受「普通」物品:改过名字、带说明或自定义模型的钻石不会被当成价格扣掉,避免玩家珍藏的特殊物品被误收。
获取方式说明
不在商店出售的称号(活动、会员、比赛奖励……),可以写 obtain: 告诉玩家怎么获得:
vip:
name: '&6VIP'
obtain: '&6开通 VIP 会员 / 活动称号卡'
它会显示在称号仓库里未拥有的称号上(仓库 lore 中的 {obtain})。没写 obtain: 但在商店出售的称号,会自动显示「称号商店购买」。
称号卡
称号卡是一个物品,右键使用即可获得对应称号:
/clt card <玩家> <称号ID> [时长|default] [数量]
/clt card Steve vip 7d 3 # 给 Steve 3 张「7 天 VIP」称号卡
/clt card Steve vip # 使用称号配置里的默认时长
titles/my.yml
vip:
card:
enabled: true # false = 该称号的卡片停用(已发出的卡无法使用)
duration: 7d # 指令没写时长时使用
material: PAPER # 以下三项不写则使用 config.yml 的 card 设置
custom-model-data: 0
item-model: ''
- 已永久拥有该称号时,称号卡不会被消耗。
- 限时称号卡可以叠加:用两张 7 天卡 = 14 天。
- 卡片外观(名称、说明)在
config.yml的card:中设置,支持{preview}称号图、{lore}、{stats}、{time}。 - 卡片会自动更新:修改称号名称或说明后
/clt reload,玩家背包里已有的卡片会同步更新成新样式。
随机称号卡
在 config.yml 的 card.random 里定义卡池:
config.yml
card:
random:
starter:
name: '&d随机称号卡 &8· &f新手盲盒'
material: PAPER
lore:
- '&7右键随机获得以下称号之一:'
- '{pool}' # 自动列出卡池里的称号与概率
- ''
- '&7时长:&e{time}'
titles: # 称号 ID: 权重(越大越容易抽到)
example: 10
vip: 1
# category: event # 或者:抽取某个分类的全部称号(权重相同)
duration: 7d
skip-owned: true # 只抽还没永久拥有的
/clt card Steve random:starter # 使用卡池的时长
/clt card Steve random:starter 30d 5 # 5 张「30 天」随机卡
skip-owned: true时,卡池里的称号都已永久拥有,卡片不会被消耗。- 卡片说明里的
{pool}会显示每个称号与概率(如云称号 (90.9%)),修改卡池后/clt reload,背包里的卡也会同步更新。
获得提示
无论从哪里获得称号(管理员、商店、称号卡、奖励、API),都会按 config.yml 的 notify 提示:
config.yml
notify:
auto-equip: false # false / true(总是换上新称号)/ if-none(只在没佩戴称号时)
title: '&6✦ 获得新称号 ✦'
subtitle: '{title}' # {title} = 称号本身(图片 / 文字),{title_small} 小图,{name} 称号名
actionbar: ''
sound: 'ENTITY_PLAYER_LEVELUP:0.8:1.2'
broadcast: '' # 全服公告,留空不公告
commands: [] # 后台指令,{player} {id} {name} {time};玩家离线也会执行
on-extend: false # 续期时是否也提示
每个称号也可以单独设置,写了的项目覆盖上面的设置,例如稀有称号才全服公告:
titles/my.yml
legend:
notify:
broadcast: '&6✦ &e{player} &6获得了稀有称号 {title_small}'
commands:
- 'lp user {player} permission set server.legend true'
从 PlayerTitle 导入的拥有记录不会触 发提示。
活动与指令发放
/clt give <玩家> <称号ID> [时长]
/clt give Steve star 7d # 7 天
/clt give Steve star # 永久
- 玩家不在线也可以发放(需要曾经进入过服务器)。
- 其他插件(活动、任务、抽奖)可以直接执行这条指令,或使用 API。
限时称号
时长格式:30s、10m、12h、7d、2w,可组合:1d12h。permanent / 永久 表示永久。
- 到期后自动收回,正在佩戴时会自动卸下,并提示玩家「你的称号已到期」。
- 剩余时间显示在仓库中,也可用变量
%clt_expire_<称号ID>%显示。 - 重复获得同一限时称号会在原到期时间上累加;获 得永久版则直接变为永久。