DeluxeMenus —— 老牌菜单插件|PAPI作者编写 [1.12-1.19.x]-服务端插件论坛-资源发布-像素交际

DeluxeMenus —— 老牌菜单插件|PAPI作者编写 [1.12-1.19.x]

英文名称: DeluxeMenus
中文名称: 杜蕾斯菜单
插件来源: 转载
适用服务端: Spigot Paper |其它|
插件类型: 娱乐 综合 信息
语言支持: English 非官方汉化
适用版本: 1.19.X 1.18.X 1.17.X 1.16.X 1.15.X 1.14.X 1.13.X 1.12
前置Mod|插件: PlaceholderAPI(必) HeadDatabase、EpicHeads等(可选)
下载地址: https://www.spigotmc.org/resources/deluxemenus.11734/

https://pan.wer.plus/s/7dHJ

原帖地址: https://www.spigotmc.org/resources/deluxemenus.11734/
插件Logo: 图片[1]-DeluxeMenus —— 老牌菜单插件|PAPI作者编写 [1.12-1.19.x]-服务端插件论坛-资源发布-像素交际
插件简介: 老牌菜单插件 | PAPI作者倾力打造 | 功能强大
图片[2]-DeluxeMenus —— 老牌菜单插件|PAPI作者编写 [1.12-1.19.x]-服务端插件论坛-资源发布-像素交际

     介绍
  
  什么是DM  DM是一款老牌菜单插件,自2015年在SpigotMC发布后
无论是在国内还是国外都具有很高的市占率
  为什么选择DM  与PlaceholderAPI为同一个作者
编写相对其他菜单插件简洁有次序,无复杂的YAML/JS语法
在功能能够满足绝大部分服务器的情况下,更适合萌新腐竹
插件相当成熟,已经广泛应用多年,可以较快找到相关模板/帮助

命令与权限

  • /dm list
  • 列出加载的所有菜单
  • deluxemenus.list
  • /dm reload
  • 重载插件配置/所有菜单
  • deluxemenus.reload
  • /dm open <菜单名>
  • 为自己打开某个菜单
  • deluxemenus.open
  • /dm open <菜单名> <玩家ID>
  • 为某个玩家打开某个菜单
  • deluxemenus.open.others
  • /<快捷指令>
  • 为自己快捷打开某个菜单
  • 无需权限
 
配置与汉化

 

 

 

 

 

 

教程

1.如何把所有菜单分开来写

  • 首先,找到plugins/DeluxeMenus/config.yml
  • 把某个菜单定向到某个文件
gui_menus:
      zcd:
        file: zcd.yml
  • (上面是个例子,把zcd定向到gui_menus中的zcd.yml)
2.[close]之类的操作
即您在下表看到的[close]之类的操作
请务必结合格式与实例食用

[player]
    #以玩家角度,执行一个命令 (不带/)
    [console]
    #以控制台角度,执行一个命令 (不带/)
    [commandevent]
    #执行一个快捷指令(未在plugin.yml注册的) (不带/)
    [message]
    #为这个玩家发送一个消息 (支持PAPI/颜色代码)
    [connect]
    #连接到另外一个服务器 (须填写在BC中注册的有效服务器名称)
    [json]
    #为玩家发送一个JSON消息 (支持PAPI/颜色代码)
    [sound]
    #为玩家播放一个声音
    [broadcastsound]
    #为此服务器内的所有玩家播放一个声音
    [refresh]
    #刷新菜单 (你可以理解为关闭再打开此菜单)
    [takemoney]
    #扣除玩家经济系统 (与Vault挂钩的) 中的余额
    [openguimenu]
    #打开其他菜单 (必须是DeluxeMenus中的)
    [close]
    #关闭此菜单
    [givemoney]
    #增加玩家经济系统(与Vault挂钩的)中的余额
    <delay=#>
    #延迟#Ticks(1s=20Ticks)后执行
    <chance=#>
    #执行此操作的几率为#/100


    [!] 请勿少空格,否则报错


    怎么样,还是不理解?下方是例子

    [player] msg AzureHanChen 性感若南,在线催更
    #以此玩家的角度为AzureHanChen发送私聊消息


    [console] points take %player_name% 233
    #以控制台角度扣除此玩家233个点券


    [commandevent] sd
    #假若有一个菜单的快捷指令为sd,那么打开对应菜单


    [connect] BedWars#1
    #假若有一个服务器在BC的config.yml中注册的名字为BedWars#1
    #那么为玩家连接至此服务器


    [message] &7[&e系统&7] CPS急缺人才,gkd %player_name%
    #为玩家发送上面的消息


    [sound] ENTITY_VILLAGER_YES
    #为玩家发送ENTITY_VILLAGER_YES音效


    [broadcastsound] ENTITY_VILLAGER_NO
    #为此服务器内所有玩家发送ENTITY_VILLAGER_NO音效


    [json] {"text":"&f点击此处 &a获取服务器帮助","color":"white","clickEvent":{"action":"suggest_command","value":"/help"}}
    #为玩家发送一个JSON消息,点击后自动为玩家补全/help命令


    [refresh]
    #点击后刷新优先级&变量
    #update_interval 只能刷新变量而不能刷新优先级(下方举例子细讲)


    [close]
    #点击后关闭此菜单


    [takemoney] 666
    #扣除玩家666个余额,(与Vault挂钩的经济系统)


    [message] &7已经过去了5秒 <chance=100>
    #5秒(100Ticks)后给玩家发送上面的信息


    [message] &750%几率看到这个消息 <chance=50>
    #50%几率给玩家发送上面的信息



    [givemoney] 100
    #给玩家100个余额(仅限与Vault挂钩的经济插件)

 

3.条件
即你在下表中看到的view_requirement/open_requirement等
open_requirement:
  requirements:
    <name>:
      type: <type>
  deny_commands:
  - '[close]'
  • <name>:随意,因为可以存在多个,不能重复
  • <type>:判断类型


下方即类型 (必须一字不差 空格也不能少)

 

  • has permission
  • 是否拥有某个权限
    123456:
          type: has permission
          permission: 'join.cps'

     

    • 即判断玩家是否拥有join.cps权限
      • has money
      • 是否拥有一定数量金钱 (Vault)
        233:
              type: has money
              amount: 100

         

4.开始写菜单吧
在完成上面讲的的第一步后,输入/dm reload
然后打开plugins/DeluxeMenus/gui_menus中自动生成的zcd.yml
接下来由我来解释一下构成菜单的GUI设置

menu_title: 'String'
    在这里更改菜单的标题 (文字)
    允许使用PAPI变量 & 颜色代码


    open_command: 'String'
    在这里更改打开菜单的快捷指令 (不需要加/)
    只能是英文字母或汉字
    Tips:使用快捷指令打开菜单 不需要权限


    拓展:
    open_command:
    - STRING
    - STRING
    你可以添加多个快捷指令


    size: #
    菜单的格数
    只能是9的倍数,且必须在9到54之间
    Tips:
    下方的inventory_type只有设置为CHEST时,才有效


    update_interval: #
    可选,更新频率,以秒为单位
    可用于刷新菜单中的变量
    Tips:
    某个物品只有添加update: true
    参数后,才能刷新该物品


    open_commands:
    - '[close]'
    可选,打开菜单后执行的操作


    inventory_type: CHEST
    可选,GUI界面的"形状"
    你可以填写
    CHEST (箱子) (默认)
    ANVIL (铁砧)
    DISPENSER (发射器)
    FURNACE (熔炉)
    HOPPER (漏斗)
    WORKBENCH (工作台)
    上方的size选项只有当你填CHEST时才有效
    如果忽略此选项则默认为CHEST


    items:
    表示下方进入物品部分
5.开始写物品吧
items:
      '<name1>':
        material: <英文全大写ID>
        slot: #
      '<name2>':
        material: <英文全大写ID>
        slot: #

一个菜单肯定由不止一个物品组成
所以你可以填写多个物品
(Tips:多个物品可以占用一个位置,但需要优先级与看到的条件帮助)

 

  • ‘<name1>’:
  • 这是表示一个物品,名称不能与其他物品相同

 

  • material: <英文全大写ID>
  • 在菜单中显示的MC物品,例如
  • material: DIAMOND #钻石
  • 也可以显示某个玩家的头颅,例如
  • material: head;%player_name% #显示玩家的头颅
  • 也可以显示自定义头颅(Minecraft Heads),例如
  • material: basehead-eyxxxx #显示某个自定义纹理的头颅

 

  • slot: #
  • 物品在GUI中所占的位置
  • 必须在0到(size-1)中
  • 图片[3]-DeluxeMenus —— 老牌菜单插件|PAPI作者编写 [1.12-1.19.x]-服务端插件论坛-资源发布-像素交际
  • 转载自插件原Wiki
  • 这个图也许可以帮到你

 

  • 拓展:
  • 如果你想让一个物品占用多个位置
  • 您可以把slot: #换成
  • slots:
  • – #
  • – #
  • 即可以让物品占用多个位置,更加方便

 

  • display_name: ‘String’
  • 可选,玩家看到的此物品的名称
  • 如果不填就是Material物品的名称
  • (支持 颜色代码/PAPI变量)

 

  • lore:
  • – ‘String’
  • – ‘String’
  • 可选,此物品的lore
  • (支持PAPI/颜色代码)

 

  • view_requirement:
  • 可选,看到的条件
  • 请使用上文中提到的格式
  • 并且所有要求必须全部符合
  • 如果达不到,那么此物品就看不到

 

  • priority: #
  • 可选,物品在这个位置的优先级
  • 下面是一个生硬的例子
    menu_title: '&eMCBBS@AzureHanChen'
        open_command: e
        size: 9
        items:
          '3':
            material: 'GRASS'
            slot: 0
            display_name: '哇,你有金币'
            lore:
            - '&e拥有&a500&e金币'
            - '&e优先级3'
            view_requirement:
              requirements:
                n:
                  type: has money
                  amount: 500
            priority: 3
          '2':
            material: 'STONE'
            slot: 0
            display_name: '哇,你有点券'
            lore:
            - '&e拥有&a200&e点券'
            - '&e优先级2'
            view_requirement:
              requirements:
                2:
                  type: '>='
                  input: '%playerpoints_points%'
                  output: '200'
            priority: 2
          '1':
            material: 'DIAMOND'
            slot: 0
            display_name: '哇,你有权限'
            lore:
            - '&e拥有&agroup.cps&e权限'
            - '&e优先级1'
            view_requirement:
              requirements:
                1:
                  type: has permission
                  permission: 'group.cps'
            priority: 1
          'cz':
            material: ICE
            slot: 1
            display_name: '参照物'
  • update: BOOLEAN
  • 可选,是否自动更新变量
  • 使用GUI设置中设定的间隔
  • [!]如果自动更新变量后
  • 玩家满足了上一优先级的条件,但图标依然不变,
  • 在操作中使用[refresh]才可以
  • 下面是个例子
    # 点击后的操作
        # left_click_commands: 或
        # right_click_commands: 或
        # middle_click_commands: 或
        # shift_left_click_commands: 或
        shift_right_click_commands:
        - '[message] &e欢迎你,%player_name%'

     

    图片[4]-DeluxeMenus —— 老牌菜单插件|PAPI作者编写 [1.12-1.19.x]-服务端插件论坛-资源发布-像素交际

6.实战——(不依赖礼包插件)做出礼包菜单
使用LuckPerms作为权限插件,你需要先

/papi ecloud download LuckPerms/papi ecloud download Player

##重要的事情说三遍!!!
    #使用此菜单前先/lp group default permission set user.gift.normal false
    #使用此菜单前先/lp group default permission set user.gift.normal false
    #使用此菜单前先/lp group default permission set user.gift.normal false
    #此处我使用CrazyCrates的某个抽奖箱钥匙作为奖励,
    menu_title: '&f礼包菜单 &a&o(/gift)'
    open_command:
    - g
    - libao
    - gift
    - present
    - 礼包
    - 礼包菜单
    - 领取礼包
    - 领礼包
    size: 45
    update_interval: 1
    items:

      1-delay:
      #这是第一个物品
        slot: 12
        #在GUI界面的第13个位置
        priority: 1
        #优先级为1
        view_requirement:
        #看到此物品的条件
          requirements:
            delay:
              type: has permission
              #判断玩家是否有某个权限
              permission: user.gift.normal
              #判断玩家是否拥有user.gift.normal
              #如果有,则显示该物品,没有则显示下一优先级的物品
        material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDVjNmRjMmJiZjUxYzM2Y2ZjNzcxNDU4NWE2YTU2ODNlZjJiMTRkNDdkOGZmNzE0NjU0YTg5M2Y1ZGE2MjIifX19
        #显示的物品ID,我这里用的是自定义头颅
        display_name: '&e普通礼包 &c&o(冷却中)'
        #显示的名称
        update: true
        #是否更新此物品名称,Lore中的变量
        lore:
        - ''
        - '&f礼包等级 &7> &a普通'
        - '&f礼包内容 &7> &e普通抽奖箱钥匙*1'
        - '&f领取间隔 &7> &e3小时'
        - ''
        - '&f剩余时间 &7> &c%luckperms_expiry_time_user.gift.normal%'
        #如果你是个细心观察/逻辑清晰的人,你肯定能想到可以用权限
        #的剩余时间来作为礼包的剩余冷却时间
        - ''
        - '&c等待 &7| &c冷却中'
        left_click_commands:
        - '[message] &8[&b礼包&8] &c普通礼包 冷却中'
        #为玩家发送消息
        - '[sound] ENTITY_ENDERMEN_TELEPORT'
        #为玩家播放音效
        right_click_commands:
        - '[message] &8[&b礼包&8] &c普通礼包 冷却中'
        - '[sound] ENTITY_ENDERMEN_TELEPORT'
      normal:
        slot: 12
        #在GUI界面的第13个位置
        priority: 2
        #优先级为1
        material: basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDVjNmRjMmJiZjUxYzM2Y2ZjNzcxNDU4NWE2YTU2ODNlZjJiMTRkNDdkOGZmNzE0NjU0YTg5M2Y1ZGE2MjIifX19
        display_name: '&e普通礼包 &a&o(点击领取)'
        update: true
        lore:
        - ''
        - '&f礼包等级 &7> &a普通'
        - '&f礼包内容 &7> &e普通抽奖箱钥匙*1'
        - '&f领取间隔 &7> &e3小时'
        - ''
        - '&a单击 &7| &e领取'
        left_click_commands:
        - '[close]'
        - '[console] cc give v Basic 1 %player_name%'
        - '[console] title %player_name% title ["",{"text":"领取成功","bold":true,"color":"green"}]'
        - '[console] title %player_name% subtitle ["",{"text":"获得","bold":true,"color":"gray"},{"text":"普通抽奖箱钥匙*1","color":"yellow"}]'
        - '[console] lp user %player_name% permission settemp user.gift.normal true 3h'
        - '[sound] ENTITY_ARROW_SHOOT'
        right_click_commands:
        - '[close]'
        - '[console] cc give v Basic 1 %player_name%'
        - '[console] title %player_name% title ["",{"text":"领取成功","bold":true,"color":"green"}]'
        - '[console] title %player_name% subtitle ["",{"text":"获得","bold":true,"color":"gray"},{"text":"普通抽奖箱钥匙*1","color":"yellow"}]'
        - '[console] lp user %player_name% permission settemp user.gift.normal true 3h'
        - '[sound] ENTITY_ARROW_SHOOT'
请登录后发表评论

    没有回复内容