🏁要求

条件功能允许你基于权限检查执行操作

条件

语法

# open_requirement
# click_requirement
view_requirement:

  # 设置需要满足的最低条件数量才能被视为成功。
  # 默认值与条件数量相同。
  minimumRequirement: <number>
  
  # 条件列表,下面是每种类型的所有信息
  requirements:
    - type: permission
      permission: "example.permission"
      deny:
        - type: message
          messages:
            - "&c你没有权限!"
    - type: placeholder
      placeholder: "%player_gamemode%" # 需要PAPI ecloud Player
      value: "CREATIVE"    
      action: equals_string
      # 特定拒绝操作
      deny:
        - type: message
          messages:
            - "&c你必须在创造模式下"      
    - type: regex
      input: "%player_item_in_hand%" # 需要PAPI ecloud Player
      regex: "(NETHERITE_|DIAMOND_|IRON_|GOLDEN_|STONE_|WOODEN_|LEATHER_|BOW|CROSSBOW|FISHING_ROD|SHEARS|SHIELD|TRIDENT|TURTLE_HELMET|ELYTRA|FLINT_AND_STEEL)"      
      deny:
        - type: message
          messages:
            - "&c你手中没有物品!"
  
  # 全局成功操作
  success:
    - type: sound
      sound: ENTITY_PLAYER_LEVELUP
      
  # 全局拒绝操作
  deny:    
    - type: message
      messages:
        - "&c你手中没有物品。"

除了全局拒绝和成功操作外,你还可以为每个条件定义特定的拒绝和成功操作。

查看条件

定义玩家必须满足的要求才能在菜单中看到一个按钮。

示例:

view_requirement:
  deny:
    - type: chat
      messages:
        - "嘿,我的名字是 %player%"
  success:
    - type: sound
      sound: ENTITY_PLAYER_LEVELUP
  requirements:
    - type: permission
      permission: "admin.use"
    - type: placeholder
      placeholder: "%player_is_flying%"
      value: "yes"
      action: equals_string

打开条件

定义玩家必须满足的要求才能打开菜单。

示例

open_requirement:
  requirements:
    - type: regex
      input: "%player_item_in_hand%"
      regex: "(NETHERITE_|DIAMOND_|IRON_|GOLDEN_|STONE_|WOODEN_|LEATHER_|BOW|CROSSBOW|FISHING_ROD|SHEARS|SHIELD|TRIDENT|TURTLE_HELMET|ELYTRA|FLINT_AND_STEEL)"
  deny:
    - type: message
      messages:
        - "&c你手中没有物品。"

在下面的示例中,检查玩家手中的物品。如果物品匹配正则表达式模式,玩家可以打开菜单。否则,他们会收到一条消息,菜单不会打开。

点击条件

定义多个条件以点击按钮。你需要指定几个条件和相应的点击操作。

你可以使用以下格式直接应用所有点击:

clicks:
  - ALL # 或者 ANY

你可以将点击类型设置为 ALLANY 来将操作应用于所有点击。点击列表可以在 config.json 文件中管理。

示例:

click_requirement:
  left_click: # 你必须为你的条件指定一个名称,这个名称不会被使用。
    clicks:
      - LEFT
      - SHIFT_LEFT
    requirements:
      - type: placeholder
        placeholder: "%player_gamemode%"
        value: "CREATIVE"
        action: equals_string
    deny:
      - type: sound
        sound: VILLAGER_NO
        pitch: 0.5f
        volume: 1.5f
    success:
      - type: message
        messages:
          - "&a左键点击!"
  right_click: # 你必须为你的条件指定一个名称,这个名称不会被使用。
    clicks:
      - RIGHT
      - SHIFT_RIGHT
    requirements:
      - type: placeholder
        placeholder: "%player_gamemode%"
        value: "CREATIVE"
        action: equals_string
    deny:
      - type: sound
        sound: VILLAGER_NO
        pitch: 1.5f
        volume: 0.5f
    success:
      - type: message
        messages:
          - "&a右键点击!"

条件类型

类型描述
- type: permission
  permission: <permission>

检查玩家是否具有指定的权限。要反转条件,请在权限前面添加感叹号 !,例如:!<permission>

- type: placeholder
  placeholder: <placeholder>
  value: <placeholder value>
  action: <placeholder action>
  target: <player / placeholder with player name>

允许使用占位符定义权限。你必须指定占位符、与值进行的操作以及要检查的值。有关更多信息,请点击此处。

你可以指定玩家;否则,将使用打开菜单的玩家作为默认值。

- type: regex
  regex: <regex>
  input: <placeholder>

检查输入是否匹配指定的正则表达式模式。输入可以是一个占位符。

访问 regexr.com 来创建你的正则表达式模式。

- type: item
  material: <material>
  amount: <amount of item>
  modelId: <model id> # 默认值为0

检查玩家的菜单中是否有特定物品。

- type: job
  job: <job name>

检查玩家是否拥有该职业。与 JobReborn 插件配合使用。

- type: luckperm
  group: <group name>

检查玩家是否在某个组中。与 LuckPerms 插件配合使用。

- type: playername
  playerName: <placeholder>

检查占位符返回的文本是否可以是玩家昵称。

- type: money
  amount: <amount>

检查玩家账户中是否有足够的钱。这仅与 Vault 插件配合使用。

Last updated