条件
例子
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 = 饥饿值条满)。否则将显示屏障。
结构
条件在列表中设置。首先,您需要定义当前的条件类型,然后设置条件规则。您可以添加任意数量的条件。例子:
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 开始。
将 “#%<divisor>” 放在条件末尾会使 BossShopPro 通过模数转换与条件相关的值。
例如,如果您使用条件类型“realsecond”并使用模“10”,则条件检查器收到的所有值都在 0 和 9 之间,因为“<当前时间 % 10>”将导致该范围内的数字。如果您想创建动画商店,Modulo 会很有帮助。