插件手册:bossshop:conditions

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
插件手册:bossshop:conditions [2022/02/06 10:23] duangfafa插件手册:bossshop:conditions [2022/02/07 16:44] (当前版本) – [例子] duangfafa
行 9: 行 9:
 您可以设置需要满足的条件才能将商店物品显示给玩家。设置条件非常简单。 您可以设置需要满足的条件才能将商店物品显示给玩家。设置条件非常简单。
  
-**例子**+===== 例子 =====
 <code yaml [enable_line_numbers="true"]> <code yaml [enable_line_numbers="true"]>
 ShopName: 饥饿值条件 ShopName: 饥饿值条件
行 33: 行 33:
     - amount:             #给予数量:1     - amount:             #给予数量:1
     InventoryLocation: 23   #位于格数:23     InventoryLocation: 23   #位于格数:23
 +    ExtraPermission: '临时权限'
   5:                #商店名:5   5:                #商店名:5
     RewardType: nothing     RewardType: nothing
行 45: 行 46:
 只有当玩家的饥饿值低于 20 时才会显示鸡肉商店物品,这意味着它会在玩家有任何饥饿值时显示(饥饿值 20 = 饥饿值条满)。否则将显示屏障。 只有当玩家的饥饿值低于 20 时才会显示鸡肉商店物品,这意味着它会在玩家有任何饥饿值时显示(饥饿值 20 = 饥饿值条满)。否则将显示屏障。
  
-{{:插件手册:bossshop:鸡肉商店.gif?600|}}+{{:插件手册:bossshop:鸡肉商店.gif|}}
  
 +===== 结构 =====
 +条件在列表中设置。首先,您需要定义当前的条件类型,然后设置条件规则。您可以添加任意数量的条件。例子:
 +<code yaml [enable_line_numbers="true"]>
 +    Condition:
 +    - type:serverpinging    #服务器ping
 +    - online:true           #必须在线
 +    - over:200              #超过200
 +</code>
  
 +<code yaml [enable_line_numbers="true"]>
 +    Condition:
 +    - type:permission       #权限
 +    - match:permission.node #权限节点
 +</code>
  
 +<code yaml [enable_line_numbers="true"]>
 +    Condition:
 +    - type:money          #钱
 +    - over:1000           #超过2000
 +    - type:health         #血量
 +    - between:5:15        #介于5-15
 +</code>
  
 +===== 规则 =====
  
 +==== AND ====
 +需要满足列表中的所有条件才能显示项目。如果所有条件之一为假,则该项目将被隐藏。例子:
 +<code yaml [enable_line_numbers="true"]>
 +    Condition:
 +    - type:money          #钱
 +    - over:1000           #超过2000
 +    - type:health         #血量
 +    - between:5:15        #介于5-15
 +</code>
 +在这里,玩家需要 5-15 的生命值和超过 1000 的钱才能显示该物品。
  
 +==== OR ====
  
 +在“匹配”条件类型的情况下,可以使用可选条件:您可以列出不同的匹配值,用逗号分隔。如果其中一个值匹配,则条件返回 true,即使所有其他匹配值为 false。
 +<code yaml [enable_line_numbers="true"]>
 +    Condition:
 +    - type:group
 +    - match:group1,group2,group3,group4
 +</code>
  
 +==== 可用的条件类型 ====
  
 +如果您希望添加一些其他类型的条件,请告诉我。
 +
 +BossShopPro按照配置中设置的顺序加载所有商店物品。如果商品的条件不满足,该商品将不会显示。在这种情况下,如果其他商店物品定义了相同的库存位置,则会改为显示。
 +
 +<code yaml [enable_line_numbers="true"]>
 +# 可能的条件类型和示例。
 +所有条件类型:
 +    - 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:              (匹配任何 健康/饥饿/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  则匹配)
 +        - equals:11             (如果值 等于 11 则匹配)
 +        - between:8:14         (如果值在 8 和 14 之间则匹配)
 +
 +    - LocationX/LocationY/LocationZ (Y 坐标决定玩家的高度)
 +    # 匹配 X,Y,Z
 +        - over:100              (如果玩家的坐标 高于 100 则匹配)
 +        - under:50              (如果玩家的坐标 低于 100 则匹配)
 +        - equals:             (如果玩家的坐标 等于 1   则匹配)
 +        - between:1:40          (如果坐标在 1 和 40 之间 则匹配)
 +
 +    - World
 +    # 匹配世界
 +        - match:worldname       (如果用户 在   世界“worldname”,则显示项目)
 +        - dontmatch:worldname   (如果用户 不在 世界“worldname” ,则显示项目)
 +
 +    - Weather
 +    #匹配天气
 +        - match:storm           (匹配天气是暴风雨。相反: match:clear)
 +        - dontmatch:storm       (匹配如果天气不是暴风雨 (=clear))
 +</code>
 +==== 占位符条件 ====
 +条件类型“placeholdernumber”和“placeholdermatch”允许检查任何BossShopPro或PlaceholderAPI支持的占位符并检查任何支持的插件的值。
 +
 +__占位符编号:__
 +<code yaml [enable_line_numbers="true"]>
 +    Condition:
 +    - type:placeholdernumber
 +    - '%balancepoints%:over:100'
 +</code>
 +
 +__占位符匹配:__
 +<code yaml [enable_line_numbers="true"]>
 +    Condition:
 +    - type:placeholdermatch
 +    - '%item_in_hand%:match:WOOD_SWORD,STONE_SWORD,IRON_SWORD,GOLD_SWORD,DIAMOND_SWORD'
 +</code>
 +占位符中的冒号 (":") 不能直接工作,因为 BossShopPro 使用冒号来将行拆分为占位符、条件和条件类型。如果您的占位符包含冒号,请改用 '' "[colon]" '' 来使它们起作用。
 +
 +**模支持**
 +
 +数值条件类型支持模。这是一个高级示例:
 +<code yaml [enable_line_numbers="true"]>
 +  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'
 +</code>
 +这将生成一个动画项目,该项目将从插槽 1 移动到插槽 9,然后再次从插槽 1 开始。
  
 +将 "#%<divisor>" 放在条件末尾会使 BossShopPro 通过模数转换与条件相关的值。
  
 +例如,如果您使用条件类型“realsecond”并使用模“10”,则条件检查器收到的所有值都在 0 和 9 之间,因为“<当前时间 % 10>”将导致该范围内的数字。如果您想创建动画商店,Modulo 会很有帮助。
  
  
  • 插件手册/bossshop/conditions.1644114228.txt.gz
  • 最后更改: 2022/02/06 10:23
  • duangfafa