目录

条件



您可以设置需要满足的条件才能将商店物品显示给玩家。设置条件非常简单。

例子

  1. ShopName: 饥饿值条件
  2. DisplayName: '饥饿值条件'
  3. signs:
  4.   text: '[条件]'
  5.   NeedPermissionToCreateSign: true
  6. InventorySize: 45 #商店大小:45格
  7. shop:
  8.   5-1: #商店名:5-1
  9.   Condition: #调用条件
  10. - type:Hunger #调用饱食度
  11. - under:20 #要求低于20
  12.   RewardType: item
  13.   PriceType: free
  14.   Reward:
  15. - type:COOKED_CHICKEN
  16. - amount:1
  17.   MenuItem:
  18. - type:COOKED_CHICKEN
  19. - name:&9你饿吗?
  20. - 'lore:#&a你看起来很饿! #&a点击获得免费的寄肉!'
  21. - amount:1 #给予数量:1
  22.   InventoryLocation: 23 #位于格数:23
  23.   ExtraPermission: '临时权限'
  24.   5: #商店名:5
  25.   RewardType: nothing
  26.   PriceType: free
  27.   MenuItem:
  28. - type:BARRIER
  29. - name:&9你饿吗?
  30. - 'lore:#&c你看起来不饿..#&c你饿了再来吧'
  31. - amount:1
  32.   InventoryLocation: 23

只有当玩家的饥饿值低于 20 时才会显示鸡肉商店物品,这意味着它会在玩家有任何饥饿值时显示(饥饿值 20 = 饥饿值条满)。否则将显示屏障。

结构

条件在列表中设置。首先,您需要定义当前的条件类型,然后设置条件规则。您可以添加任意数量的条件。例子:

  1. Condition:
  2. - type:serverpinging #服务器ping
  3. - online:true #必须在线
  4. - over:200 #超过200
  1. Condition:
  2. - type:permission #权限
  3. - match:permission.node #权限节点
  1. Condition:
  2. - type:money #钱
  3. - over:1000 #超过2000
  4. - type:health #血量
  5. - between:5:15 #介于5-15

规则

AND

需要满足列表中的所有条件才能显示项目。如果所有条件之一为假,则该项目将被隐藏。例子:

  1. Condition:
  2. - type:money #钱
  3. - over:1000 #超过2000
  4. - type:health #血量
  5. - between:5:15 #介于5-15

在这里,玩家需要 5-15 的生命值和超过 1000 的钱才能显示该物品。

OR

在“匹配”条件类型的情况下,可以使用可选条件:您可以列出不同的匹配值,用逗号分隔。如果其中一个值匹配,则条件返回 true,即使所有其他匹配值为 false。

  1. Condition:
  2. - type:group
  3. - match:group1,group2,group3,group4

可用的条件类型

如果您希望添加一些其他类型的条件,请告诉我。

BossShopPro按照配置中设置的顺序加载所有商店物品。如果商品的条件不满足,该商品将不会显示。在这种情况下,如果其他商店物品定义了相同的库存位置,则会改为显示。

  1. # 可能的条件类型和示例。
  2. 所有条件类型:
  3. - Money/Points
  4. # 金钱
  5. - over:1000 (匹配任何 超过 1000 的余额 - vault 或 points插件)
  6. - under:500 (匹配任何 低于 500 的余额 - vault 或 points插件)
  7. - equals:150 (仅 匹配 150 的余额 - vault 或 points插件)
  8. - between:300:600 (匹配 300 和 600 之间的余额 - vault 或 points插件)
  9.  
  10. - ServerPinging
  11. # 延迟
  12. - online:true (如果服务器成功 ping 并在线,则匹配)
  13. - over:70 (匹配任何 超过 70 的玩家)
  14. - under:40 (匹配任何 低于 40 的玩家)
  15. - equals:500 (仅 匹配 500 的玩家)
  16. - between:1:100 (匹配 1 到 100 之间 的玩家)
  17.  
  18. - Permission
  19. # 权限
  20. - match:node.node (如果此 权限节点 匹配 ,则显示)
  21. - dontmatch:node.node (如果此 权限节点 不匹配,将显示)
  22.  
  23. - Group
  24. # 权限组
  25. - match:admin (如果用户在 admin 组中,则显示项目)
  26. - dontmatch:admin (如果用户不在组 admin 中,则显示项目)
  27.  
  28. - Item
  29. # 物品
  30. - match:stone (如果用户的物品栏中 有 石头,则显示物品)
  31. - dontmatch:diamond (如果用户的物品栏中 没有 钻石,则显示物品)
  32.  
  33. - HandItem
  34. # 手中的物品
  35. - match:stone (如果用户的主手 有 石头,则显示项目)
  36. - dontmatch:diamond (如果用户的主手 没有 钻石,则显示项目)
  37.  
  38. - Health/Hunger/Exp
  39. # 血量/饥饿/经验
  40. - over:10 (匹配任何 健康/饥饿/exp等级 大于 10)
  41. - under:5 (匹配任何 健康/饥饿/exp等级 小于 5)
  42. - equals:15 (匹配任何 健康/饥饿/exp等级 等于 15)
  43. - between:5:15 (匹配任何 健康/饥饿/exp等级 在 5-15 之间)
  44.  
  45. - Time
  46. # 时间
  47. - over:4000 (如果 Minecraft 时间 超过 4000 个刻度,则匹配,从 0 开始)
  48. - under:2000 (如果 Minecraft 时间 低于 2000 个刻度,则匹配,从 0 开始)
  49. - equals:8000 (精确匹配 8000 个 Minecraft 日滴答声。。不是很有用)
  50. - between:12000:24000 (如果 Minecraft 天数介于 12000 到 24000 个滴答声之间,则匹配)
  51.  
  52. #RealDay = 一年中的一天;
  53. #RealWeekDay = 星期几, 星期一 = 1
  54. - RealYear/RealMonth/RealWeek/RealDay/RealWeekDay/RealHour/RealSecond/RealMillisecond
  55. # 匹配年/月/周/日/时/分/秒/毫秒 (现实时间)
  56. - over:12 (如果值 高于 12 则匹配)
  57. - under:20 (如果值 低于 20 则匹配)
  58. - equals:11 (如果值 等于 11 则匹配;可用于例如圣诞节日历或每周奖励)
  59. - between:18:24 (如果值在 18 和 24 之间则匹配)
  60.  
  61. - LightLevel
  62. # 光照亮度
  63. - over:10 (如果值 高于 10 则匹配)
  64. - under:6 (如果值 低于 6 则匹配)
  65. - equals:11 (如果值 等于 11 则匹配)
  66. - between:8:14 (如果值在 8 和 14 之间则匹配)
  67.  
  68. - LocationX/LocationY/LocationZ (Y 坐标决定玩家的高度)
  69. # 匹配 X,Y,Z
  70. - over:100 (如果玩家的坐标 高于 100 则匹配)
  71. - under:50 (如果玩家的坐标 低于 100 则匹配)
  72. - equals:1 (如果玩家的坐标 等于 1 则匹配)
  73. - between:1:40 (如果坐标在 1 和 40 之间 则匹配)
  74.  
  75. - World
  76. # 匹配世界
  77. - match:worldname (如果用户 在 世界“worldname”,则显示项目)
  78. - dontmatch:worldname (如果用户 不在 世界“worldname” ,则显示项目)
  79.  
  80. - Weather
  81. #匹配天气
  82.   - match:storm (匹配天气是暴风雨。相反: match:clear)
  83. - dontmatch:storm (匹配如果天气不是暴风雨 (=clear))

占位符条件

条件类型“placeholdernumber”和“placeholdermatch”允许检查任何BossShopPro或PlaceholderAPI支持的占位符并检查任何支持的插件的值。

占位符编号:

  1. Condition:
  2. - type:placeholdernumber
  3. - '%balancepoints%:over:100'

占位符匹配:

  1. Condition:
  2. - type:placeholdermatch
  3. - '%item_in_hand%:match:WOOD_SWORD,STONE_SWORD,IRON_SWORD,GOLD_SWORD,DIAMOND_SWORD'

占位符中的冒号 (“:”) 不能直接工作,因为 BossShopPro 使用冒号来将行拆分为占位符、条件和条件类型。如果您的占位符包含冒号,请改用 “[colon]” 来使它们起作用。

模支持

数值条件类型支持模。这是一个高级示例:

  1. Moving_1:
  2.   MenuItem:
  3. - name:&c[*]
  4. - type:STAINED_GLASS_PANE:0
  5.   RewardType: NOTHING
  6.   PriceType: NOTHING
  7.   Message: ''
  8.   ExtraPermission: ''
  9.   InventoryLocation: 1
  10.   Condition:
  11. - type:realsecond
  12. - 'between:0:5#%45'
  13.   Moving_2:
  14.   MenuItem:
  15. - name:&c[*]
  16. - type:STAINED_GLASS_PANE:1
  17.   RewardType: NOTHING
  18.   PriceType: NOTHING
  19.   Message: ''
  20.   ExtraPermission: ''
  21.   InventoryLocation: 2
  22.   Condition:
  23. - type:realsecond
  24. - 'between:6:10#%45'
  25.   Moving_3:
  26.   MenuItem:
  27. - name:&c[*]
  28. - type:STAINED_GLASS_PANE:2
  29.   RewardType: NOTHING
  30.   PriceType: NOTHING
  31.   Message: ''
  32.   ExtraPermission: ''
  33.   InventoryLocation: 3
  34.   Condition:
  35. - type:realsecond
  36. - 'between:11:15#%45'
  37.   Moving_4:
  38.   MenuItem:
  39. - name:&c[*]
  40. - type:STAINED_GLASS_PANE:3
  41.   RewardType: NOTHING
  42.   PriceType: NOTHING
  43.   Message: ''
  44.   ExtraPermission: ''
  45.   InventoryLocation: 4
  46.   Condition:
  47. - type:realsecond
  48. - 'between:16:20#%45'
  49.   Moving_5:
  50.   MenuItem:
  51. - name:&c[*]
  52. - type:STAINED_GLASS_PANE:4
  53.   RewardType: NOTHING
  54.   PriceType: NOTHING
  55.   Message: ''
  56.   ExtraPermission: ''
  57.   InventoryLocation: 5
  58.   Condition:
  59. - type:realsecond
  60. - 'between:21:25#%45'
  61.   Moving_6:
  62.   MenuItem:
  63. - name:&c[*]
  64. - type:STAINED_GLASS_PANE:5
  65.   RewardType: NOTHING
  66.   PriceType: NOTHING
  67.   Message: ''
  68.   ExtraPermission: ''
  69.   InventoryLocation: 6
  70.   Condition:
  71. - type:realsecond
  72. - 'between:26:30#%45'
  73.   Moving_7:
  74.   MenuItem:
  75. - name:&c[*]
  76. - type:STAINED_GLASS_PANE:6
  77.   RewardType: NOTHING
  78.   PriceType: NOTHING
  79.   Message: ''
  80.   ExtraPermission: ''
  81.   InventoryLocation: 7
  82.   Condition:
  83. - type:realsecond
  84. - 'between:31:35#%45'
  85.   Moving_8:
  86.   MenuItem:
  87. - name:&c[*]
  88. - type:STAINED_GLASS_PANE:7
  89.   RewardType: NOTHING
  90.   PriceType: NOTHING
  91.   Message: ''
  92.   ExtraPermission: ''
  93.   InventoryLocation: 8
  94.   Condition:
  95. - type:realsecond
  96. - 'between:36:40#%45'
  97.   Moving_9:
  98.   MenuItem:
  99. - name:&c[*]
  100. - type:STAINED_GLASS_PANE:8
  101.   RewardType: NOTHING
  102.   PriceType: NOTHING
  103.   Message: ''
  104.   ExtraPermission: ''
  105.   InventoryLocation: 9
  106.   Condition:
  107. - type:realsecond
  108. - 'between:41:45#%45'

这将生成一个动画项目,该项目将从插槽 1 移动到插槽 9,然后再次从插槽 1 开始。

将 “#%<divisor>” 放在条件末尾会使 BossShopPro 通过模数转换与条件相关的值。

例如,如果您使用条件类型“realsecond”并使用模“10”,则条件检查器收到的所有值都在 0 和 9 之间,因为“<当前时间 % 10>”将导致该范围内的数字。如果您想创建动画商店,Modulo 会很有帮助。