# 插件文件

## config.yml

```yaml
>gui_menus:
#DeluxeMenus 1.13.1的主配置文件
#
#如果需要查看完整的插件wiki，请访问：
#https://github.com/help-chat/DeluxeMenus/wiki
debug: false
check_updates: true
gui_menus:
  basics_menu:
    file: basics_menu.yml
  advanced_menu:
    file: advanced_menu.yml
  requirements_menu:
    file: requirements_menu.yml
```

## basics\_menu.yml

```yaml
# DeluxeMenus 初学者配置教学
# 分类的相关注释可以帮助你理解DeluxeMenus的基本功能及其如何配置，例如：命令、条件等，然后你就可以开始自行制作，你可以随时删除任何注释
#
# 打开的指令
# 你可以在这里配置打开菜单的命令。支持普通字符串和字符串列表
# 注意： "open_command: []" 则代表不能用任何指令打开菜单
#
# open_command: <命令>
# open_command:
#   - <命令1>
#   - <命令2>
#
open_command: basicsmenu

# 菜单大小
#
# 你可以在这里配置菜单GUI界面的大小，范围：9-54.
# 你若你没有在菜单中添加此项，则默认为 54.
#
size: 9

# 菜单标题
#
# 你可以在这里配置菜单标题，并且可以自定义名称
# 支持颜色代码和变量
#
menu_title: '基础菜单'

# 打开条件
#
# 你可以在这里配置打开菜单需满足的条件
#
# 如果你想要某个菜单需要某个权限才能打开
# 那需要一个基本 "has permission" 条件
#
# 你可以通过看菜单文件夹中的requirements_menu.yml文件来更深入的了解条件
# 如果需要更详细的内容，请访问： https://github.com/help-chat/DeluxeMenus/wiki/Requirements
#
open_requirement:
  requirements:
    permission:
      type: has permission
      permission: deluxemenus.admin
      deny_commands:
        - '[message] &c你没有权限那样做！'

# 物品项部分
# 你可以在这里添加物品项，并将你所需要的功能添加到物品项中
# 如果需要更深入的了解，请看 config.yml
# 如果需要更详细的内容，请访问 https://github.com/help-chat/DeluxeMenus/wiki/Item
#
items:
  # 你需要在这里设置一个物品项的ID，这里的ID不会在GUI界面显示，但每个物品项都有且只有唯一的ID
  # 在这里我们把这个ID配置为： "teststone"
  'teststone':
    # 我们将开始做一个石头物品,
    material: STONE
    # 将这个数据配置为 1, 就可以把物品项由石头改为花岗岩 如果需要了解更多信息，请看Minecraft Wikipedia
    data: 1
    # 物品在菜单中的位置 ， 从 0 开始
    slot: 0
    # 我们可以在这里命名我们的物品项，你可以随时修改，支持变量和颜色代码
    display_name: "&a这是一个特殊的石头"
    # 我们可以在这里修改物品项的lore，当然你也可以随时修改
    # 你可以配置多行lore
    lore:
      - "&aTest1"
      - "&cTest2"
      - "&eTest3"


# ==============================================================
#
# 下面有有许多有用的信息哦
#
# ==============================================================
#
# 每个物品的权限和优先级:
#
# 每个物品的权限和优先级都可选
# 最高优先级 = 1, 最低优先级 = 2147483647.
# 这样就可以根据玩家拥有的权限来在菜单同一个位置展示多个不同的物品项
# 这样你的菜单就会变得十分动态 :)
#
# 你不可以配置一个没有优先级的权限
# 你可以配置有个没有优先级的权限
# 你应该创建一个没有权限限制的低优先级物品项，如果玩家没有物品项所需的权限，那这个物品项就会被当做无权限项；反之，如果玩家没有任何物品项需要的权限，那就不会在菜单中设置的位置显示物品项
#
# ==============================================================
#
# 在你配置打开菜单指令的时候，请确保配置的指令不于服务器现有的指令冲突
# 如果菜单没有配置打开指令，那这个菜单就不会被加载
#
# 菜单配置:
# menu_title: '<这里显示菜单标题>'
# command: <这里是打开菜单的指令>
# inventory_type: '<如果你要创建一个除箱子GUI界面以外类型的菜单，请添加此项配置>'
# open_requirement:
#   requirements:
#     <条件唯一名字>:
#    type: <条件类型>
#    <每一个条件类型的唯一选项都在这>
#    deny_commands:
#    - '[message] 你没有达成打开此菜单需要的条件'
#   size: <菜单大小>
#   update_interval: <若一个物品项设置为更新变量，那菜单GUI界面应以秒为单位更新>
#   items:
#     <物品项ID>:
#       material: <ID>
#       material: head-<玩家的ID>
#       material: hdb-<HeadDatabase id> (需要插件 HeadDatabase)
#       data: <整数, 数据值，例如：羊毛>
#       amount: <显示物品的数量>
#       slot: <菜单GUI界面中的位置，对大小为54的菜单来说，范围为：0~53>
#       priority: <如果一个位置配置了多个物品项，请配置此项>
#       view_requirement: <请查看下方的条件信息，显示全部玩家均满足所有条件的低优先级物品项>
#       update: <true/false 是否让菜单GUI界面在配置的时间更新变量>
#       hide_attributes: <true/false 这个物品项是否显示物品属性>
#       hide_enchantments: <true/false 这个物品项是否显示物品附魔或者等级> (仅对附魔物品有用)
#       hide_effects: <true/false 这个物品项是否显示物品效果属性>
#       hide_unbreakable: <true/false 这个物品项是否显示物品无法破坏属性>
#       banner_meta: (如果你想要显示具有指定图案的旗帜，请配置此项)
#       - <dyecolor>;<PatternType> (如果你想知道在哪查看燃料颜色和图案类型名字，请看下方)
#       - 'RED;BASE'
#       - 'WHITE;CREEPER'
#       display_name: <物品项显示的名称>
#       lore:
#       - '这是物品项的lore'
#       - 'lore和名称中可以使用变量'
#       enchantments: 附魔名称请查询: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html
#       - '<ENCHANTMENT>;<LEVEL>'
#       - 'SILK_TOUCH;1'
#       left_click_commands:
#       right_click_commands:
#       shift_left_click_commands:
#       shift_right_click_commands:
#       middle_click_commands:
#       left_click_requirement: <请在 requirements_menu.yml 学习如何使用此项>
#       right_click_requirement: <请在 requirements_menu.yml 学习如何使用此项>
#       shift_left_click_requirement: <请在 requirements_menu.yml 学习如何使用此项>
#       shift_right_click_requirement: <请在 requirements_menu.yml 学习如何使用此项>
#       middle_click_requirement: <请在 requirements_menu.yml 学习如何使用此项>
#
#
#你可以配置是否要从另外一个文件中加载菜单:
#
# gui_menus:
#   <菜单名称>:
#     file: 'menuName.yml'
#
# 这样会使你的config整洁，而不是有很多菜单挤在这里.
# 要加载的菜单文件必须以.yml结尾
# 如果你要从其他配置文件加载一个菜单，那也是要遵循指定的格式
# 需要从其他文件中加载菜单，只用在这里创建一个菜单把它指定到需要加载的文件即可
# 配置完之后，输入/dm reload ，然后DeluxeMenus就会创建一个指定的菜单文件夹和文件
# 如果是DeluxeMenus创建的文件（因为这个文件不存在），那这个菜单就会是默认的菜单布局
# 你可以在这里根据个人爱好编辑它，并输入/dm reload 重载菜单
#
# 这个重载，只适用于GUI菜单
#
# banner_meta 配置此项必须适用特定格式:
# banner_meta:
# - <DyeColor>;<PatternType>
#
# 更多染料名称请查看: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/DyeColor.html
# 更多旗帜类型请查看: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/block/banner/PatternType.html
# ==============================================================
#
# 条件信息
#
# 条件可以按以下格式配置:
#
# open_requirement: 打开菜单需满足的条件
# view_requirement: 此项决定是否在菜单某位置中显示物品项
# left_click_requirement: 左键某个物品项时会检查该条件
# right_click_requirement: 右键某个物品项时会检查该条件
#
# Requirement types:
#   javascript - Evaluates a javascript expression that must return true or false
#     configuration options:
#       expression
#
#   has item - 检查玩家是否有指定物品
#     configuration options:
#       material
#       amount
#       data
#       name
#       lore
#
#   has money - 检查玩家是否有足够的钱（需要Vault插件）
#     configuration options:
#       amount
#
#   has permission - 检查玩家是否有指定权限
#     configuration options:
#       permission
#
#   string contains - 检查配置的字符串是否包括另个字符串串
#     configuration options:
#       input
#       output
#
#   string equals - 检查配置的字符串是否等于另个字符串
#     configuration options:
#       input
#       output
#
#   stringequalsignorecase - （忽略大小写）检查配置的字符串是否等于另个字符串
#     configuration options:
#       input
#       output
#
#   > - 检查配置的数是否大于另一个数
#     configuration options:
#       input
#       output
#
#   >= - 检查配置的数是否大于/等于令一个数
#     configuration options:
#       input
#       output
#
#   == - 检查配置的数是否等于另一个数
#     configuration options:
#       input
#       output
#
#   <= - 检查配置的数是否小于等于另一个数
#     configuration options:
#       input
#       output
#
#   < - 检查配置的数是否小于另一个数
#     configuration options:
#       input
#       output
#
#   regex matches - 检查变量解析的玩家的字符串是否与配置的相同
#     configuration options:
#       input
#       regex
#
#
#
# 我们为什么要使用条件？
# 一般情况下，任何玩家都可以打开DeluxeMenus的菜单
# 如果你想一个菜单要指定权限/有一定的钱才能打开，就可以使用'open_requirement'实现
# 如果打开菜单的玩家没有指定权限，如何配置，下面是一个范例:
#
# menu_title: '需要指定权限才能打开的菜单'
# open_command: testmenu
# size: 9
# open_requirement:
#   requirements:
#     this_requirement_name:
#       type: has permission
#       permission: 'testmenu.open'
#       deny_commands:
#       - '[message] 你没有权限打开这个测试菜单'
#
# ==============================================================
#
# 所有物品项都必须有唯一的 <item identifier>
#
# 如果配置更新特定物品项的变量，那就必须在菜单中配置更新间隔: <time>
#
# 每个 click_command 的开头有要有一个指定的标识符
# 有效的指令标识符:
#
# [console] - 从控制台执行一个指令
# Usage: - '[console] <command with no slash>'
#
# [player] - 让玩家执行一个指令
# Usage: - '[player] <command with no slash>'
#
# [commandevent] - 不适用bukkit指令激发PlayerCommandPreprocessEvent
# Usage: - '[commandevent] <command with no slash>'
#
# [message] - 给玩家发送一条信息
# Usage: - [message] <message to send to the player
#
# [openguimenu] - 打开一个菜单（仅限于dm菜单插件中的菜单）
# Usage: - '[openguimenu] <guiMenuName>'
#
# [connect] - 连接指定的bc服务器
# Usage: - '[connect] <serverName>'
#
# [close] - 关闭菜单
# Usage: - '[close]
#
# [refresh] - 刷新当前菜单
# Usage: - '[refresh]
#
# [broadcastsound] - 向服务器播放一个声音
# Usage: - '[broadcastsound]
#
# [sound] - 向玩家播放一个声音
# Usage: - '[sound]
#
# [json] - 给玩家发送一条json消息
# Usage: - '[json] {"text":"message"}'
#
#
#
# 你可以使用delay命令来拖延正在执行的命令
# <delay=(time in TICKS)>
# example:
#     - '[close]'
#     - '[message] 还有5秒钟关闭菜单！<delay=100>'
#     - '[message] 还有10秒钟关闭菜单！<delay=200>'
```

## advanced\_menu.yml

```yaml
#  A DeluxeMenus 高级配置教程
#=========================================================
menu_title: '&8> &6&lD&eM &b高级配置范例'
open_command:
  - advancedmenu
  - advancedexamplemenu
  - themostadvancedmenuintheworld
open_commands:
  - '[sound] BLOCK_BEACON_ACTIVATE'
  - '[message] &7打开高级范例菜单&7!'
size: 27
# 通常只有长得帅的人才能打开这个菜单 :)
open_requirement:
  requirements:
    permission:
      type: has permission
      permission: deluxemenus.admin
      deny_commands:
        - "[message] &8[&bDeluxe&eMenus&8] &c你没有权限"
items:
  'example':
    material: LIME_DYE
    slot: 11
    priority: 1
    update: true
    hide_attributes:  true
    display_name: '&b范例工具包'
    lore:
      - ''
      - '&7冷却时间 : &f3 天'
      - '&7左键点击领取'
    view_requirement:
      requirements:
        kit_requirement:
          type: string equals
          input: '%essentials_kit_is_available_example%'
          output: 'yes'
        kit_perm:
          type: has permission
          permission: essentials.kits.example
    left_click_commands:
      - '[player] kit example'
      - '[close]'
  'examplecd':
    material: GRAY_DYE
    slot: 11
    priority: 2
    update: true
    hide_attributes:  true
    display_name: '&c范例不可用工具包'
    lore:
      - '&7这个工具包还在冷却中'
      - '&7你还必须等待 : &f%essentials_kit_time_until_available_example%'
      - '&7才能打开这个工具包'
    view_requirement:
      requirements:
        kit_perm:
          type: has permission
          permission: essentials.kits.example
  'examplenoperm':
    material: GRAY_DYE
    slot: 11
    priority: 3
    update: true
    hide_attributes:  true
    display_name: '&7范例工具包'
    lore:
      - '&7你没有权限领取这个工具包'
  'shopexample':
    material: head-extended_clip
    slot: 12
    display_name: '&r'
    lore:
      - '&7使用条件的范例商店'
      - '&f左键单击购买'
    priority: 1
    view_requirement:
      requirements:
        shop_perm:
          type: has permission
          permission: deluxemenus.shopexample
    left_click_commands:
      - '[sound] ENTITY_FIREWORK_ROCKET_BLAST'
      - '[console] give %player_name% skull 1 player:extended_clip name:&bExtended_Clip lore:&8<lore>|&7Example_Shop_Item|&8<lore>'
      - '[message] &8[&6&lDeluxeShop&8] &f你成功购买了 &7extended_clips &f头'
      - '[console] eco take %player_name% 666'
      - '[close]'
    left_click_requirement:
      requirements:
        balance_check:
          type: has money
          amount: 666
  'shopnoperm':
    material: head-extended_clip
    slot: 12
    display_name: '&7没有权限'
    lore:
      - '&8你没有查看物品项所需的 &bdeluxemenus.shopexample &8权限'
      - '&f左键单击关闭菜单'
    left_click_commands:
      - '[sound] ENTITY_SNOW_GOLEM_DEATH'
      - '[close]'
      - '[message] &8[&6&lDeluxeShop&8] &f你关闭了菜单！ &7(1 秒消息延迟) <delay=20>'
  'filler_item':
    material: GRAY_STAINED_GLASS_PANE
    slots:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
    display_name: ' '
```

## requirements\_menu.yml

```yaml
#
# 条件教程菜单 v1.0
# 作者：clip
#
# 编写者：Andre_601
#
# 在本教程菜单中，你可以学会如何限制特定玩家对某个物品项的操作甚至整个菜单
#
# 你可以在查阅更多关于条件的信息
#   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements
#
menu_title: '条件菜单'
open_command: requirementsmenu
size: 9
#
# 通常只有长得帅的人才能打开这个菜单 :)
#
open_requirement:
  requirements:
    permission:
      #
      # "has permission" 检查玩家是否拥有指定权限
      #
      # 了解更多请看:
      #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-permission
      #
      type: has permission
      permission: deluxemenus.shop
      deny_commands:
        - '[message] &c你没有权限那样做'
items:
  #
  # 示例 1: Shop 物品项
  #
  # 这是一个尽快，允许你买卖金块赚钱
  #
  'gold_block':
    material: GOLD_BLOCK
    slot: 0
    lore:
    - '&7Buy/Sell GOLD_BLOCK'
    - ''
    - '&7- 左键单击: &b购买 1 个 &7花费 &a$100'
    - '&7- 右键单击: &b出售 1 个 &7获得 &a$50'
    - '&7- Shift+左键单击: &b购买 64 个 &7花费 &a$6400'
    - '&7- Shift+右键单击: &b出售 64 个 &7获得 &a$3200'
    #
    # 左键单击物品项的条件
    #
    left_click_requirement:
      requirements:
        #
        # "has money" 检查玩家是否有足够的钱，需要 Vault.
        # "amount" 配置玩家至少要有多少钱
        #
        # 了解更多请看:
        #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-money
        #
        has_money:
          type: has money
          amount: 100
      deny_commands:
      - '[message] &c你没有足够的钱那样做'
    #
    # 左键单击物品项要执行的指令
    # 如果不满足上面的条件则不会执行这些指令
    #
    # 了解更多请看:
    #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
    #
    left_click_commands:
    - '[console] give %player_name% GOLD_BLOCK 1'
    - '[takemoney] 100'
    - '[message] &a你购买了 1 个 金块 &a花费 $100'
    #
    # 右键单击物品项的条件
    #
    right_click_requirement:
      requirements:
        #
        # "has item" 检查玩家是否拥有指定物品且满足数量
        # 除了 "material" 和 "amount" 其他都是可选的，如果不配置则为默认值
        # 检查玩家是否拥有1个金块
        #
        # 了解更多请看:
        #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-item
        #
        has_item:
          type: has item
          material: 'GOLD_BLOCK'
          amount: 1
        deny_commands:
        - '[message] &c你没有足够的金块那样做。 需要: 1 个'
    #
    # 右键单击物品项要执行的指令
    # 如果不满足上面的条件则不会执行这些指令
    #
    # 了解更多请看:
    #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
    # 
    right_click_commands:
    - '[console] clear %player_name% GOLD_BLOCK 1'
    - '[console] eco give %player_name% 50'
    - '[message] &a你出售了一个金块，获得 $50'
    #
    # 键盘上的Shift+左键单击物品项的条件
    #
    shift_left_click_requirement:
      requirements:
        #
        # "has money" 检查玩家是否有足够的钱，需要 Vault.
        # "amount" 配置玩家至少要有多少钱
        #
        # 了解更多请看:
        #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-money
        #
        has_money:
          type: has money
          amount: 6400
        deny_commands:
        - '[message] &c你没有足够的钱那样做'
    #
    # 键盘上的Shift+左键单击物品项要执行的指令
    # 如果不满足上面的条件则不会执行这些指令
    #
    # 了解更多请看:
    #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
    # 
    shift_left_click_commands:
    - '[console] give %player_name% GOLD_BLOCK 64'
    - '[takemoney] 6400'
    - '[message] &a你购买了 64 个金块 ，花费 $6400'
    #
    # 键盘上的Shift+右键单击物品项的条件
    #
    shift_right_click_requirement:
      requirements:
        #
        # "has item" 检查玩家背包中是否由指定的物品
        # 除了 "material" 其他都是可选的，如果不配置则为默认值
        # nothing（name）/ 1 (amount).
        # 检查玩家是否拥有64个金块
        #
        # 了解更多请看:
        #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/requirements#has-item
        #
        has_item:
          type: has item
          material: GOLD_BLOCK
          amount: 64
        deny_commands:
        - '[message] &c你没有足够的金块那样做。 需要: 64 个'
    #
    # 键盘上的Shift右键单击物品项要执行的指令
    # 如果不满足上面的条件则不会执行这些指令
    #
    # 了解更多请看:
    #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#shift-left-middle-right-click-commands
    # 
    shift_right_click_commands:
    - '[console] clear %player_name% GOLD_BLOCK 64'
    - '[console] eco give %player_name% 3200'
    - '[message] &a你出售了 64 个金块，获得 $3200'
  #
  # 示例 2: 免费的钻石！
  #
  # 免费的钻石
  #
  'free_diamonds':
    material: DIAMOND
    slot: 1
    lore:
    - '&a免费的钻石！ [1/day]'
    - ''
    - '&7点击获得一个免费的钻石&7！'
    #
    # "priority" 用于菜单中同一位置的多个物品项
    # 数字越小，优先级越高
    #
    priority: 0
    #
    # view_requirement 表示在满足某个条件后才会显示该物品项
    # 如果在菜单同一位置，玩家不满足条件且优先级较低，它还会显示吗？
    #
    # 了解更多请看:
    #   https://wiki.helpch.at/clips-plugins/deluxemenus/options-and-configurations/item#view-requirement
    #
    view_requirement:
      requirements:
        has_not_perm:
          #
          # "!has permission" 检查玩家是否拥有指定权限
          #
          type: "!has permission"
          permission: deluxemenus.free_diamonds.cooldown
    #
    # 我们给这个物品项配置一个有效期一天的权限，用于更新物品项
    #
    left_click_commands:
    - '[console] give %player_name% DIAMOND 1'
    - '[console] lp user %player_name% permission settemp deluxemenus.free_diamonds.cooldown true 1d'
    - '[refresh]'
    #
    # 我们给这个物品项配置一个有效期一天的权限，用于更新物品项
    #
    right_click_commands:
    - '[console] give %player_name% DIAMOND 1'
    - '[console] lp user %player_name% permission settemp deluxemenus.free_diamonds.cooldown true 1d'
    - '[refresh]'
  #
  # 示例 3: 变量物品项
  #
  # 这是一块石头，只要玩家有权限deluxemenus.free_diamonds.cooldown就可以显示出来
  #
  'free_diamonds_cooldown':
    material: STONE
    slot: 1
    lore:
    - '&a免费的钻石！ [1/day]'
    - ''
    - '&c你当前处于冷却阶段，点击刷新'
    #
    # 数字高表示低优先级，不满足高优先级条件时才会显示该物品项
    #
    priority: 1
    #
    # 如果不满足显示条件，则刷新菜单更新物品项
    #
    left_click_commands:
    - '[refresh]'
    #
    # 如果不满足显示条件，则刷新菜单更新物品项
    #
    right_click_commands:
    - '[refresh]'
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://deluxemenu.wiki.complexstudio.net/untitled-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
