| - #物品ID 用英文单引号括起来 内容随意 不要重复 不要包含 . 和空格
- '001':
- #匹配物品显示名 可选 支持变量 没有此项则不限物品显示名
- name: '§6示例物品'
- #匹配物品Lore 可选 支持变量 没有此项则不限物品Lore
- lore:
- - '§3示例Lore'
- #是否精确匹配物品Lore 可选 没有此项默认为true 表示需要Lore完全一致 false表示不管实际物品有多少行Lore, 只要含有配置里存在的行即可
- #例如在配置中设置:
- #lore:
- # - 'AA'
- # - 'CC'
- #实际物品:
- # - 'AA'
- # - 'BB'
- # - 'CC'
- #如果使用精确匹配(true) 会认为这个物品不符合条件 因为不完全一致
- #如果使用包含匹配(false) 会认为这个物品符合条件 因为包含AA和CC
- lore-exact: true
- #匹配物品类型 可选 没有此项则不限物品类型 (虽然name,lore,type都是可选的,但至少要提供一个)
- #如果你不知道某个物品的类型是什么 可以使用 /ic type 命令查看手持物品的类型
- type: 'PAPER'
- #使用物品需要满足的条件 一行一个条件 可选 支持变量 格式为 类型:表达式,不满足条件时显示的消息(不想显示消息的话 只写,即可)
- #类型有三种: s = 字符串比较 、 d = 数值比较 、 直接逻辑值(不指定类型就会被认为是直接逻辑值)
- #字符串比较可使用的运算符 =(等于) !=(不等于) ==(忽略大小写等于) !==(忽略大小写不等于) >(大于) >=(大于等于) <(小于) <=(小于等于)
- #数值比较可使用的运算符 =(等于) !=(不等于) >(大于) >=(大于等于) <(小于) <=(小于等于)
- #直接逻辑值可使用的运算符 !(逻辑取反 单目运算符) 什么是直接逻辑值? 可用的逻辑值有true false yes(等于true) no(等于false) 其他字符串=false
- #什么是满足条件? 表达式执行后产生的结果如果为true 则满足条件 如果为false 则不满足条件
- condition:
- #运算符两边必须有空格, !(单目运算符)除外
- #字符串比较示例
- - 's:{player} != notch, §c你的名字是notch 不能使用此物品!'
- - 's:{player} != NOTCH, §c你的名字是NOTCH 不能使用此物品!'
- - 's:{player} !== notch, §c别以为换了大小写我就不认识你了 你还是不能使用此物品!'
- #数值比较示例(因为用到了PAPI变量, 所以需要安装PAPI并启用Player扩展才能正常执行)
- - 'd:%player_level% >= 30, §6等级达到30级才能使用此物品!'
- #直接逻辑值示例(因为用到了PAPI变量, 所以需要安装PAPI并启用Player扩展才能正常执行)
- # %player_is_flying% 会返回yes(飞行)或no(未飞行) 由于使用了!运算符进行取反 所以飞行时不能使用 去掉!就是飞行时才能使用了
- - '!%player_is_flying%, §e由于你正在飞行 不能使用此物品。'
- #触发方式 可同时选择多种触发方式 一行一种 可选 默认为right
- #支持的触发方式有: left(左键点击), right(右键点击), held(手持时), inv_left(物品栏内左键点击), inv_right(物品栏内右键点击)
- trigger:
- - 'left'
- - 'right'
- #物品使用后执行的动作 一行一个动作 支持变量 可选 没有此项则不执行任何动作
- #可选的动作有: cmd, op, console, tell, chat, sound, sound-all, broadcast, give-money, give-points,
- # title, title-all, action-bar, action-bar-all, server 不指定默认为cmd
- #格式为 动作: 值 (动作后面需要紧跟一个英文冒号 否则无法识别出正确动作会默认为整行都是cmd动作的值)
- action:
- #cmd = 让使用物品的玩家执行命令 命令不需要加 /
- - 'cmd: help'
- #op = 让使用物品的玩家以op身份执行命令 同样不需要加 /
- - 'op: list'
- #console = 让控制台执行命令
- - 'console: say hi {player}'
- #tell = 给使用物品的玩家发送消息
- - 'tell: hi {player}'
- #chat = 让使用物品的玩家发送聊天消息
- - 'chat: 我使用了§6示例物品'
- #sound = 给使用物品的玩家播放指定音效
- - 'sound: ENTITY_EXPERIENCE_ORB_PICKUP'
- #sound-all = 给全服玩家播放指定音效
- - 'sound-all: ENTITY_EXPERIENCE_ORB_PICKUP'
- #broadcast = 给全服玩家发送消息(公告)
- - 'broadcast: {player}使用了§6示例物品'
- #give-money = 给予使用物品的玩家指定数量的钱 只能为正整数 使用此功能需要安装Vault以及支持Vault的经济插件
- - 'give-money: 10'
- #give-points = 给予使用物品的玩家指定数量的点券 只能为正整数 使用此功能需要安装PlayerPoints插件
- - 'give-points: 10'
- #title = 给使用物品的玩家发送Title消息 格式 标题,副标题,显示时间(秒) 注意 逗号为英文逗号 1.10及以下版本会无视显示时间 1.8以下版本不支持此动作
- - 'title: HiHiHi,没人看得到我 因为会被覆盖,10'
- #title-all = 给全服玩家发送Title消息 格式同上 注意 新的Title会覆盖没显示完的Title 所以这条Title会覆盖掉上面那一条
- - 'title-all: Hi,{player}使用了§6示例物品,10'
- #action-bar = 给使用物品的玩家发送ActionBar消息 1.8及以下版本不支持此动作 并且使用此动作需要使用Spigot或其衍生服务端 如Paper
- - 'action-bar: hi 没人看得到我'
- #action-bar-all = 给全服玩家发送ActionBar消息 注意 新的ActionBar会覆盖没显示完的ActionBar 所以这条ActionBar会覆盖掉上面那一条
- - 'action-bar-all: {player}使用了§6示例物品'
- #server = 让使用物品的玩家切换到指定的BC子服 如果你不知道这是什么 那么你不需要此功能
- - 'server: login'
- #使用物品需要花费的钱 可选 支持变量 不能为负数
- price: 10
- #使用物品需要花费的点券 可选 支持变量 不能为负数
- points: 10
- #使用物品需要花费的经验等级 可选 支持变量 不能为负数
- levels: 10
- #使用物品需要的权限 可选 支持变量
- permission: '示例权限'
- #使用物品会消耗的数量 可选 支持变量 不能为负数 物品数量不足不能使用 提供0或没有此项则不消耗物品
- required-amount: 1
- #冷却时间 单位秒 可选 支持变量 不能为负数 如果设置了冷却时间 表示使用此物品后必须等待指定的时间后才能再次使用此物品(冷却时间每个物品ID单独计算)
- cooldown: 10
- #一个简单的匹配物品显示名的例子:
- '002':
- #注意 所有用到颜色符号的地方请使用 § 而不是 &
- name: '§6银票'
- action:
- - 'give-money: 100'
- - 'tell: §b你使用了一张§6银票§b, 获得了100银币.'
- - 'sound: ENTITY_EXPERIENCE_ORB_PICKUP'
- required-amount: 1
- #一个匹配物品显示名和物品类型的例子:
- '003':
- #注意 这里就不要再用 '§6银票' 这个名称了, 因为上面那个例子只要求物品名称一致并且触发方式都是默认的right 这里再这样写就完全符合上面那个例子的匹配条件了
- #name: '§6银票'
- name: '§6真·银票'
- #类型为纸
- type: 'PAPER'
- action:
- - 'give-money: 1000'
- - 'tell: §b你使用了一张§6真·银票§b, 获得了1000银币.'
- - 'sound: ENTITY_EXPERIENCE_ORB_PICKUP'
- required-amount: 1
- #一个匹配物品显示名和Lore以及物品类型的例子:
- '004':
- name: '§6传送卷轴'
- lore:
- - '§a类型: §d消耗品'
- - '§b使用后可以在当前世界内随机传送。'
- type: 'PAPER'
- action:
- - 'op: tpr'
- - 'sound: ITEM_BOOK_PAGE_TURN'
- required-amount: 1
- #同一种物品不同触发方式执行不同动作的例子(005、006):
- '005':
- name: '§6§l新手保护券'
- lore:
- - '§d持有此保护券可在死亡时保留物品栏以及经验。'
- - '§a使用方法: §b放在物品栏中自动生效'
- - '§3仅限{player}本人使用'
- - '§5类型: §c消耗品'
- - ''
- - '§7注: 本券为消耗品,每张仅能使用一次。'
- type: 'PAPER'
- trigger:
- #手持时触发
- - 'held'
- action:
- - 'tell: §a用不到新手保护券?右键使用每张可兑换10级经验。'
- #虽然006和005的name、lore、type相同,但是触发方式并不重叠,所以不会冲突。
- '006':
- name: '§6§l新手保护券'
- lore:
- - '§d持有此保护券可在死亡时保留物品栏以及经验。'
- - '§a使用方法: §b放在物品栏中自动生效'
- - '§3仅限{player}本人使用'
- - '§5类型: §c消耗品'
- - ''
- - '§7注: 本券为消耗品,每张仅能使用一次。'
- type: 'PAPER'
- trigger:
- #右键点击触发
- - 'right'
- action:
- - 'console: xp add {player} 10 levels'
- - 'tell: §a你使用一张新手保护券兑换了10级经验。'
- - 'sound: ENTITY_EXPERIENCE_ORB_PICKUP'
- required-amount: 1
复制代码 |
|
|
|