====== 条件 ======
----
{{:插件手册:bossshop:9d3ea52191d19c7bac02ffcfcbd1adcd7462ad62.gif|}}
----
您可以设置需要满足的条件才能将商店物品显示给玩家。设置条件非常简单。
===== 例子 =====
ShopName: 饥饿值条件
DisplayName: '饥饿值条件'
signs:
text: '[条件]'
NeedPermissionToCreateSign: true
InventorySize: 45 #商店大小:45格
shop:
5-1: #商店名:5-1
Condition: #调用条件
- type:Hunger #调用饱食度
- under:20 #要求低于20
RewardType: item
PriceType: free
Reward:
- type:COOKED_CHICKEN
- amount:1
MenuItem:
- type:COOKED_CHICKEN
- name:&9你饿吗?
- 'lore:#&a你看起来很饿! #&a点击获得免费的寄肉!'
- amount:1 #给予数量:1
InventoryLocation: 23 #位于格数:23
ExtraPermission: '临时权限'
5: #商店名:5
RewardType: nothing
PriceType: free
MenuItem:
- type:BARRIER
- name:&9你饿吗?
- 'lore:#&c你看起来不饿..#&c你饿了再来吧'
- amount:1
InventoryLocation: 23
只有当玩家的饥饿值低于 20 时才会显示鸡肉商店物品,这意味着它会在玩家有任何饥饿值时显示(饥饿值 20 = 饥饿值条满)。否则将显示屏障。
{{:插件手册:bossshop:鸡肉商店.gif|}}
===== 结构 =====
条件在列表中设置。首先,您需要定义当前的条件类型,然后设置条件规则。您可以添加任意数量的条件。例子:
Condition:
- type:serverpinging #服务器ping
- online:true #必须在线
- over:200 #超过200
Condition:
- type:permission #权限
- match:permission.node #权限节点
Condition:
- type:money #钱
- over:1000 #超过2000
- type:health #血量
- between:5:15 #介于5-15
===== 规则 =====
==== AND ====
需要满足列表中的所有条件才能显示项目。如果所有条件之一为假,则该项目将被隐藏。例子:
Condition:
- type:money #钱
- over:1000 #超过2000
- type:health #血量
- between:5:15 #介于5-15
在这里,玩家需要 5-15 的生命值和超过 1000 的钱才能显示该物品。
==== OR ====
在“匹配”条件类型的情况下,可以使用可选条件:您可以列出不同的匹配值,用逗号分隔。如果其中一个值匹配,则条件返回 true,即使所有其他匹配值为 false。
Condition:
- type:group
- match:group1,group2,group3,group4
==== 可用的条件类型 ====
如果您希望添加一些其他类型的条件,请告诉我。
BossShopPro按照配置中设置的顺序加载所有商店物品。如果商品的条件不满足,该商品将不会显示。在这种情况下,如果其他商店物品定义了相同的库存位置,则会改为显示。
# 可能的条件类型和示例。
所有条件类型:
- Money/Points
# 金钱
- over:1000 (匹配任何 超过 1000 的余额 - vault 或 points插件)
- under:500 (匹配任何 低于 500 的余额 - vault 或 points插件)
- equals:150 (仅 匹配 150 的余额 - vault 或 points插件)
- between:300:600 (匹配 300 和 600 之间的余额 - vault 或 points插件)
- ServerPinging
# 延迟
- online:true (如果服务器成功 ping 并在线,则匹配)
- over:70 (匹配任何 超过 70 的玩家)
- under:40 (匹配任何 低于 40 的玩家)
- equals:500 (仅 匹配 500 的玩家)
- between:1:100 (匹配 1 到 100 之间 的玩家)
- Permission
# 权限
- match:node.node (如果此 权限节点 匹配 ,则显示)
- dontmatch:node.node (如果此 权限节点 不匹配,将显示)
- Group
# 权限组
- match:admin (如果用户在 admin 组中,则显示项目)
- dontmatch:admin (如果用户不在组 admin 中,则显示项目)
- Item
# 物品
- match:stone (如果用户的物品栏中 有 石头,则显示物品)
- dontmatch:diamond (如果用户的物品栏中 没有 钻石,则显示物品)
- HandItem
# 手中的物品
- match:stone (如果用户的主手 有 石头,则显示项目)
- dontmatch:diamond (如果用户的主手 没有 钻石,则显示项目)
- Health/Hunger/Exp
# 血量/饥饿/经验
- over:10 (匹配任何 健康/饥饿/exp等级 大于 10)
- under:5 (匹配任何 健康/饥饿/exp等级 小于 5)
- equals:15 (匹配任何 健康/饥饿/exp等级 等于 15)
- between:5:15 (匹配任何 健康/饥饿/exp等级 在 5-15 之间)
- Time
# 时间
- over:4000 (如果 Minecraft 时间 超过 4000 个刻度,则匹配,从 0 开始)
- under:2000 (如果 Minecraft 时间 低于 2000 个刻度,则匹配,从 0 开始)
- equals:8000 (精确匹配 8000 个 Minecraft 日滴答声。。不是很有用)
- between:12000:24000 (如果 Minecraft 天数介于 12000 到 24000 个滴答声之间,则匹配)
#RealDay = 一年中的一天;
#RealWeekDay = 星期几, 星期一 = 1
- RealYear/RealMonth/RealWeek/RealDay/RealWeekDay/RealHour/RealSecond/RealMillisecond
# 匹配年/月/周/日/时/分/秒/毫秒 (现实时间)
- over:12 (如果值 高于 12 则匹配)
- under:20 (如果值 低于 20 则匹配)
- equals:11 (如果值 等于 11 则匹配;可用于例如圣诞节日历或每周奖励)
- between:18:24 (如果值在 18 和 24 之间则匹配)
- LightLevel
# 光照亮度
- over:10 (如果值 高于 10 则匹配)
- under:6 (如果值 低于 6 则匹配)
- equals:11 (如果值 等于 11 则匹配)
- between:8:14 (如果值在 8 和 14 之间则匹配)
- LocationX/LocationY/LocationZ (Y 坐标决定玩家的高度)
# 匹配 X,Y,Z
- over:100 (如果玩家的坐标 高于 100 则匹配)
- under:50 (如果玩家的坐标 低于 100 则匹配)
- equals:1 (如果玩家的坐标 等于 1 则匹配)
- between:1:40 (如果坐标在 1 和 40 之间 则匹配)
- World
# 匹配世界
- match:worldname (如果用户 在 世界“worldname”,则显示项目)
- dontmatch:worldname (如果用户 不在 世界“worldname” ,则显示项目)
- Weather
#匹配天气
- match:storm (匹配天气是暴风雨。相反: match:clear)
- dontmatch:storm (匹配如果天气不是暴风雨 (=clear))
==== 占位符条件 ====
条件类型“placeholdernumber”和“placeholdermatch”允许检查任何BossShopPro或PlaceholderAPI支持的占位符并检查任何支持的插件的值。
__占位符编号:__
Condition:
- type:placeholdernumber
- '%balancepoints%:over:100'
__占位符匹配:__
Condition:
- type:placeholdermatch
- '%item_in_hand%:match:WOOD_SWORD,STONE_SWORD,IRON_SWORD,GOLD_SWORD,DIAMOND_SWORD'
占位符中的冒号 (":") 不能直接工作,因为 BossShopPro 使用冒号来将行拆分为占位符、条件和条件类型。如果您的占位符包含冒号,请改用 '' "[colon]" '' 来使它们起作用。
**模支持**
数值条件类型支持模。这是一个高级示例:
Moving_1:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:0
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 1
Condition:
- type:realsecond
- 'between:0:5#%45'
Moving_2:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:1
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 2
Condition:
- type:realsecond
- 'between:6:10#%45'
Moving_3:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:2
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 3
Condition:
- type:realsecond
- 'between:11:15#%45'
Moving_4:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:3
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 4
Condition:
- type:realsecond
- 'between:16:20#%45'
Moving_5:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:4
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 5
Condition:
- type:realsecond
- 'between:21:25#%45'
Moving_6:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:5
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 6
Condition:
- type:realsecond
- 'between:26:30#%45'
Moving_7:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:6
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 7
Condition:
- type:realsecond
- 'between:31:35#%45'
Moving_8:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:7
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 8
Condition:
- type:realsecond
- 'between:36:40#%45'
Moving_9:
MenuItem:
- name:&c[*]
- type:STAINED_GLASS_PANE:8
RewardType: NOTHING
PriceType: NOTHING
Message: ''
ExtraPermission: ''
InventoryLocation: 9
Condition:
- type:realsecond
- 'between:41:45#%45'
这将生成一个动画项目,该项目将从插槽 1 移动到插槽 9,然后再次从插槽 1 开始。
将 "#%" 放在条件末尾会使 BossShopPro 通过模数转换与条件相关的值。
例如,如果您使用条件类型“realsecond”并使用模“10”,则条件检查器收到的所有值都在 0 和 9 之间,因为“<当前时间 % 10>”将导致该范围内的数字。如果您想创建动画商店,Modulo 会很有帮助。