本帖最后由 爱国民主 于 2019-7-18 15:31 编辑


首页前言

项目翻译参与者

  • z1224748848
  • 爱国民主



欢迎来到 AnimatedMenu 维基百科!

此维基百科旨在帮助您理解插件并学习新玩法
无论您使用的是
Animated Menu 还是 Animated Menu Plus
此维基百科都尽可能帮到各位使用者

该维基百科并没有完全完工
但是,
旧教程页面 已经记录了绝大多数配置选项
如果您在这里或旧文档中依然没有找到您想要的帮助信息, 请私信告知作者. (推荐通过
SpigotMC 论坛向作者发送一个私信)




菜单

在插件初次启动时, 将会根据您使用的插件为免费或付费版自动在 "plugins" 文件夹中创建一个名为 "AnimatedMenu" 或者 "AnimatedMenuPlus" 的插件配置文件夹.

在此文件夹中, 您能找到另一个叫做 "menus" 的文件夹
里面包含一些 .yml 示例菜单等文件 (此处示例菜单文件名为 "example.yml" 或 "plus-example.yml").

您可以复制/粘贴已有菜单文件或创建一个新文件来新建一个菜单 (请确保文件以 .yml 结尾, 否则插件不会加载此文件).

一个最基础的菜单应当看起来是这样子的:
  1. Title: '&6菜单标题'
  2. # 可选项
  3. Menu-Type: chest
  4. Rows: 5
  5. Items:
  6. - ...
复制代码

但是, 还有更多选项可以添加到菜单文件中. 在此篇目中详细介绍了这些配置选项.

标题与标题刷新延迟

这是会显示在菜单Gui顶部的标题. 不仅支持动态,也支持占位符变量

  1. Title: '&6%player_name%'
  2. # 或
  3. Title:
  4.   1: '&aTitle #1'
  5.   2: '&bTitle #2'

  6. # 可选项, 默认为 20. 在每次标题更新之间的延迟.
  7. Title-Update-Delay: 40
  8. # 或
  9. Title-Update-Delay: 2s
复制代码

我个人推荐不要手动配置 Title-Update-Delay 为超级低的值
因为更新菜单标题部分的代码并不是很完美. 这项功能是稳定的
但是每次更新菜单标题时都会附带重新设置一遍菜单物品, 所以如果更新较频繁的话可能会造成一些卡顿.

菜单类型与行数

Menu-Type 决定了菜单的种类. 如果设置为 chest, 您就可以使用 Rows 配置选项来指定箱子菜单的行数. 可选值: hopper, dispenser, dropper, workbench.

若使用 AnimatedMenu Plus 插件, 当一个菜单类型当前不可用时, 您也可以这样写: "custom:
点击查找所需菜单类型"

  1. # 可选项, 默认为 chest.
  2. Menu-Type: chest
  3. # 可选项, 默认为 6. 仅当 Menu-Type 被设置为 chest 时有效.
  4. Rows: 3
  5. # 或, 如果您拥有 AnimatedMenu Plus.
  6. Menu-Type: 'custom:brewing:minecraft:brewing_stand'
复制代码

权限与无权限消息

在打开菜单时要求拥有的一项由 Permission 配置选项决定的权限节点

如果玩家在没有此权限节点的情况下尝试打开该菜单
会向他们发送一条由 Permission-Message 配置选项决定的提示信息(支持变量).

  1. Permission: 'some.random.permission'
  2. # Optional
  3. Permission-Message: '&c你没有权限打开菜单'
复制代码
菜单打开器 (包含 Item, Name, Lore 和/或 Slot 配置选项)

一个用于打开菜单的物品.

  1. Menu-Opener:
  2.   Item: 'compass'
  3.   Name: '&6选择服务器'
  4.   Lore:
  5.   - '&a点我!'
  6.   # 在玩家加入服务器时自动放入 5 号栏位. 请注意! 这将会覆盖当前存在该栏位中的物品!
  7.   Slot: 5
  8. # 或 (又旧又丑, 我更推荐上面的配置方法)
  9. Menu-Opener: 'compass'
  10. Menu-Opener-Name: '&6选择服务器'
  11. Menu-Opener-Lore:
  12. - '&a点我!'
  13. Menu-Opener-Slot: 5
复制代码
在加入时打开

若设置为 true, 此菜单将在玩家进入服务器时自动打开.

  1. Open-On-Join: true
复制代码
打开音效

当菜单打开时播放的一个音效 (格式为 '<音效名> <音量> <音调>' , 其中 <音量> 和 <音调> 为可选项)
<音效名> 可以为 Spigot 音效Minecraft 原生音效 中的任何一个.

  1. Open-Sound: 'ENTITY_BAT_TAKEOFF 1 2'
  2. # 或
  3. Open-Sound: 'ENTITY_BAT_TAKEOFF'
复制代码

关于命令隐藏

若设置为 true, 此菜单将不会在 /animatedmenu open/item 命令中显示.

  1. Hide-From-Command: true
复制代码
关于菜单命令 (包含 Name, Usage, Description 和/或 Fallback 配置选项)

一个用于打开此菜单的命令.

  1. Command: 'selector; compass'
  2. # 或
  3. Command:
  4.   Name: 'selector; compass'
  5.   # 可选项, 命令用法
  6.   Usage: '/\<command\>'
  7.   # 可选项, 命令描述
  8.   Description: 'Open the navigation menu'
  9.   # 可选回退命令, 当命令带有过多参数或者命令执行者非玩家时代理执行.
  10.   # 与 Name 配置项一一对应, 所以 'say' 是 'selector' (的回退命令)而 'me' 是 'compass' 的回退命令.
  11.   # 举个例子, '/compass I like trains' 实际上将会执行 '/me I like trains'
  12.   Fallback: 'say; me'
复制代码

点击冷却

再次点击此菜单上任何物品之前需要等待的冷却时间.

  1. Click-Delay: 100
  2. # 或
  3. Click-Delay: 5s
复制代码
物品

一个
菜单物品 的列表. 支持两种声明方法:

  1. # 新方法, 物品键列表. 这个方法可以让文件变得更小一点.
  2. Items:
  3. - Material: 'diamond-sword'
  4.   Name: '&bItem 1'
  5.   Slot: 1

  6. - Material: 'gold-sword'
  7.   Name: '&eItem 2'
  8.   Slot: 2

  9. # 旧方法, 子键列表. 使用此方法使得修复某个出错的菜单物品更容易, 因为控制台将会输出出错的子键名, 而不是其在列表中的位置. 这可以让你能更方便的找到指定的菜单物品 (使用 CTRL+F).
  10. Items:
  11.   diamondSword:
  12.     Material: 'diamond-sword'
  13.     Name: '&bItem 1'
  14.     Slot: 1

  15.   goldSword:
  16.     Material: 'gold-sword'
  17.     Name: '&eItem 2'
  18.     Slot: 2
复制代码
世界限制(付费版功能)

以逗号分隔的一个允许打开此菜单的世界列表. 若以 ! 开头则代表黑名单而不是白名单.

  1. # 使菜单能在 world, world_nether 和 world_the_end 世界中打开.
  2. Worlds: 'world, world_nether, world_the_end'
  3. # 使菜单能在除了 lobby 世界之外的任何世界打开.
  4. Worlds: '!lobby'
复制代码
可视脚本(付费版功能)

一种条件判断 JavaScript 代码, 并且仅在玩家在此判断中返回 true(即满足条件), 才允许打开此菜单, 支持变量
请注意当你想要使用任何文本值(变量也一样), 你应该使用英文(半角)双引号包起来(即 " " ). 这仅适用于 文本, 数字则不需要.


  1. # Only open when the player has at least $100
  2. View-Script: '%vault_eco_money% >= 100'
  3. # Only open when the player has name 'megamichiel'
  4. View-Script: '"%player_name%" == "megamichiel"'
复制代码
打开和关闭菜单时的触发(付费版功能)

在此菜单打开/关闭时执行的命令. 你能在 点击操作处理器 一节中查询到更多信息.

  1. Open-Commands:
  2. - 'sound: ENTITY_BAT_TAKEOFF 1 2'
复制代码

自动关闭菜单

自动关闭菜单的等待时长.

  1. Auto-Close: 200
  2. # 或
  3. Auto-Close: 10s
复制代码
SQL查询等待与其对应提示消息(付费版功能)

在打开菜单前列出 AnimationLib 的 SQL 查询结果来刷新内容.
教程敬请期待.

保存导航(付费版功能)

当设置为 true 时, 关闭此菜单将会自动打开上一个菜单. 在多页或多类别下的商店菜单中很有用.

  1. Save-Navigation: true
复制代码
开启动画(付费版功能)

当物品被加载入菜单时, 展现的动画形式 (格式为 '<动画类型>:<播放速度>' , 其中<播放速度> 为可选项).
<动画类型> 可选值有: down, up, right, left, down-right, up-left, down-left, up-right, out, in, snake-down, snake-up, snake-right, snake-left.


  1. Open-Animation: out
  2. # 或
  3. Open-Animation: snake-down:0.5
复制代码
空白占位物品(付费版功能)

放在空白格位的物品. 与
菜单物品 有相同的配置格式(只是没有 Slot 配置选项).
它拥有一个专属的配置选项: Single. 若设置为 true, 将为菜单中的每个空格位加载单个物品, 以略微提升性能.
请注意, 菜单的刷新都会重加载一遍物品.

  1. Empty-Item:
  2.   Material: 'stained-glass-pane:1:gray'
  3.   Name: '&7'
  4.   # Optional
  5.   Single: true
复制代码
关于变量

AnimatedMenu 主要使用
AnimationLib 来提供变量.  所以不靠它的插件本身的变量. AnimationLib 还需要 PlaceholderAPIMVdWPlaceholderAPI 来作为前置.
你可以使用 %placeholder% 来为文本添加一个变量.
AnimatedMenu 本身提供了以下变量:

服务器状态变量

以下列出变量都可以含有一个 <id> . 若要使用此特性, 在插件的 config.yml 中你需要再按照以下格式配置:
  1. Connections:
  2.   <id>:
  3.     IP: '<ip>:<port>'
  4.     # ... 更多信息可在特定变量中看到
复制代码
<id> 可以为任何内容, 只需确保在变量中填入相同的值即可.

%animatedmenu_motd_<id>% 或 %animatedmenu_motd_<ip>:<port>%
获取目标服务器的 Motd.

%animatedmenu_motd1_<id>% 或 %animatedmenu_motd1_<ip>:<port>%
获取目标服务器的 Motd 的第一行.

%animatedmenu_motd2_<id>% 或 %animatedmenu_motd2_<ip>:<port>%
获取目标服务器的 Motd 的第二行. 若 Motd 只有一行, 将会返回一个空的字符串.

%animatedmenu_onlineplayers_<id>% 或 %animatedmenu_onlineplayers_<ip>:<port>%
获取目标服务器的在线人数.

%animatedmenu_maxplayers_<id>% 或 %animatedmenu_maxplayers_<ip>:<port>%
获取目标服务器的最大在线人数.

%animatedmenu_status_<id>%
获取目标服务器的状态.
在配置文件中, 你需要多配置两个配置选项, "Online" 和 "Offline":
  1. Connections:
  2.   example:
  3.     IP: <ip>:<port>
  4.     Online: '&aOnline'
  5.     Offline: '&cOffline'
  6. # 这样写你就能使用 %animatedmenu_status_example% 这个变量了.
复制代码
%animatedmenu_motdcheck_<id>%
若目标 Motd 包含特定的内容则返回对应值.
在配置文件中, 你需要将需要映射值的文本与对应值配置好.
  1. Connections:
  2.   example:
  3.     IP: <ip>:<port>
  4.     # In game(游戏进行中)? 返回红色羊毛.
  5.     '&cIn Game': 'wool:1:14'
  6.     # Waiting(等待加入)? 返回绿色羊毛!
  7.     '&aWaiting': 'wool:1:5'
  8.     # 目标 Motd 不属于以上任何情况(即默认返回值).
  9.     Default: 'wool:1:14'
  10.     # 服务器离线
  11.     Offline: 'wool:1:14'

  12. # 然后你就可以在 Material 中使用这个变量了:
  13. Material: '%animatedmenu_motdcheck_example%'
复制代码


其它

%animatedmenu_worldplayers_<world>%
获取目标世界的玩家数量.

%animatedmenu_shownplayers_<world>%
获取目标世界的玩家数量.
不包含使用 Essentials 的 /vanish 指令隐身的玩家.


菜单物品

入门

菜单物品的添加
老实说相当简单.
菜单-物品 一节中你可以找到向菜单添加物品的方法.

为了简单起见, 我会在此页面多放一些示例以帮助理解
  1. Slot: 1
  2. Material: 'diamond-sword:1:0'
  3. Name: '&bDiamond Sword'
复制代码

在菜单的 .yml 文件中为:
  1. Items:
  2. - Slot: 1
  3.   Material: 'diamond-sword:1:0'
  4.   Name: '&bDiamond Sword'
  5. ...
复制代码
或:
  1. Items:
  2.   diamondSword:
  3.     Slot: 1
  4.     Material: 'diamond-sword:1:0'
  5.     Name: '&bDiamond Sword'
  6. ...
复制代码

格位与X/Y坐标

格位(Slot) 就是物品在菜单上的位置.
你也可以通过使用 X 配置键和 Y 配置键, 来分别指定物品的横轴坐标和纵轴坐标.
作为 X 和 Y 的替换方案, 你也可以在 Slot 配置键中按照这样的格式配置: '<X>, <Y>'.
  1. Slot: 23
  2. # 或
  3. X: 5
  4. Y: 3
  5. # 或
  6. Slot: '5, 3'
复制代码

使用 AnimatedMenu Plus, 格位可以为一个列表, 一个范围 (\<from>-\<to>) 并且支持变量. 它也可以动态化.
你也可以使用一些特殊的变量:

  • {first_empty_<from>}: 第一个空格为, 从 <from> 中设定的值开始 (from 为可选项)
  • {last_empty_<from>}: 最后一个空格位, 从 <from> 中设定的值开始 (from 为可选项)
  • {random_<from>_<to>}: 从 <from> 到 <to> 中的随机一个格位 (from 和 to 都是可选项)
  • {random_empty}: 随机一个空格位.
  • {highest_amount} 和 {lowest_amount}: 第一个空格位 或者 具有比该物品数量更小(highest_amount)或更大(lowest_amount)的一个物品前(每个物品向右移动1格).
  • {highest_weight} 和 {lowest_weight}: 与上一个相同, 不过比较的是 权重(Weights) 而不是数量.
    1. Slot:
    2. #如下配置将会把物品填充在菜单的 1-9, 14 以及第一个空格位, 并且每秒还会在 10, 11 或 12 格位三者之一中填充物品.
    3. - '1-9'
    4. - 14
    5. - '{first_empty}'
    6. - 1: 10
    7.   2: 11
    8.   3: 12
    9.   Delay: 1s
    复制代码


权重与其刷新延迟 (付费版功能)


物品的 权重(Weight), 用于 格位(Slot) 的变量.
只是一个支持变量的数字而已.
Weight-Delay 指定了权重的刷新延迟.
  1. Weight: '%player_health%'
  2. Weight-Delay: '5s'
复制代码

状态与其刷新延迟(付费版功能)

一个非常有用的特性, 这允许物品根据变量而变化.
状态(State) 配置键用于指定当前物品的状态并且支持变量, State-Delay 则指定了状态刷新的延迟.
States 的所有子配置键同样也支持变量, 并且你需要在这里定义一个基础物品(用于在切换到当前状态时显示).
或其他值. 除了 State, StatesState-Delay 的配置键中定义的值都会被加载为 States 的子配置键中的默认值.
State 也支持包含特殊前缀的值, 每个返回值是 '是' 或 '否' 的特殊前缀:

  • 'permission: <权限>' - 玩家是否拥有指定权限
  • 'money|points|gems|tokens|coins: <值>' - 玩家是否至少拥有指定数量的货币. '|' 的意思是 .
  • 'level: <等级>' - 玩家是否至少达到指定的等级
    请注意, 基本上 除了 格位(Slot)权重(Weight) 配置键之外的其他菜单物品配置键都能作为一个状态的子配置键. 这些配置键都必须先在该物品中被定义后才可再由状态来改变.
    1. Slot: 5
    2. # 两种状态下都会加载
    3. Name: '&6Bed Wars 1'
    4. Frame-Delay: 5s
    5. # 获取服务器的 Motd
    6. State: '%animatedmenu_motd_localhost:25565%'
    7. # 每5秒更新一次状态
    8. State-Delay: 5s
    9. States:
    10. '&cIn Game':
    11.   Material: 'wool:%animatedmenu_onlineplayers_localhost:25565%:red'
    12.   Lore:
    13.   - '&cIn Game'
    14. '&aWaiting':
    15.   Material: 'wool:%animatedmenu_onlineplayers_localhost:25565%:green'
    16.   Lore:
    17.   - '&aWaiting'
    18.   - '&7Click to join'
    19.   Commands:
    20.   - 'server: bedwars1'
    21. offline:
    22.   Material: 'wool:1:red'
    23.   Lore:
    24.   - '&cOffline'
    复制代码


帧刷新延迟

跳转到物品动画值的下一帧的延迟. 在付费版中, 此值可以通过在任意动态值下添加 "Delay" 子配置键的方式覆写.
你可以在对应配置键的示例中看到.
  1. Frame-Delay: 100
  2. # 或, 使用 AnimatedMenu plus
  3. Frame-Delay: 5s
复制代码

刷新延迟

刷新此物品的延迟. 帧刷新延迟 同样也会导致物品的刷新, 但是可以使用此配置键来让此物品的刷新更快速.
举个例子, 用于刷新变量.
  1. Refresh-Delay: 100
  2. # 或, 使用 AnimatedMenu plus
  3. Refresh-Delay: 5s
复制代码

材质

物品的材质, 格式为 <种类>:<数量>:<附加值> (<数量> 和 <附加值> 都为可选项).
可动态化并且支持变量.
AnimatedMenu Plus 允许使用一些预先配置好的命名数据来作为值. 若要这么做, 请查看 'AnimatedMenu Plus' 插件文件夹中的 'data-values.yml' 文件.

  1. # 1 个附加值为 50 的钻石剑
  2. Material: 'diamond-sword:1:50'
  3. # 或
  4. Material:
  5.   1: 'wool:1:5'
  6.   2: 'wool:1:14'
  7.   # 使用 AnimatedMenu Plus
  8.   Delay: 5s
  9. # 或, 使用 AnimatedMenu plus
  10. Material: stained-glass-pane:1:gray
复制代码

显示名

物品显示的名字. 可动态化并且支持变量.
  1. Name: '&a%player_name%'
  2. # 或
  3. Name:
  4.   1: '&aI am green'
  5.   2: '&cI am red'
  6.   # 使用 AnimatedMenu Plus
  7.   Delay: 1s
复制代码

Lore

物品的 Lore. 可动态化并且支持变量.
AnimatedMenu Plus 可以 "模块化" 物品的 Lore.
这样就可以做到只动态化 Lore 的一部分.
只要在某行写上 'file: <文件名>', 就可以从 "plugins/AnimatedMenu(Plus)/images" 文件夹中读取指定的图片文件并且写入 Lore 中.
AnimatedMenu Plus 甚至支持自定义化程度更高得图片加载功能. 详情请参阅第二个 YML 文件片段 (三号示例).

  1. Lore:
  2. - '&aLore line 1'
  3. - '&bLore line 2'
  4. - 'file: file.png'
  5. # 或者
  6. Lore:
  7.   1:
  8.   - '&aLore line 1'
  9.   - '&bLore line 2'
  10.   2:
  11.   - '&bLore line 1'
  12.   - '&aLore line 2'
  13.   Delay: 2s
复制代码
或者, 使用 AnimatedMenu Plus:
  1. Lore:
  2. - '&aLore line 1'
  3. - 1:
  4.   - '&bLore line 2'
  5.   2:
  6.   - '&cLore line 2'
  7.   Delay: 5s
  8. - 1: '&dLore line 3'
  9.   2: '&eLore line 3'
  10.   # 2.5 秒
  11.   Delay: 2s10t
  12. - Image: somefile.gif
  13.   # 同样也支持文件夹. 这将会加载文件夹中的所有图片文件 (包括 gif 动图)
  14. - Image: somefolder
  15.   # 像素
  16.   Pixel: '[]'
  17.   # 透明像素
  18.   Transparent: '&0[]'
  19.   # 当文件夹中的多个图片具有不同的高度时, 填充在较小图片末尾的空白行.
  20.   Blank: '&0-----------'
  21.   # 跳转到下一张图片之间的延迟
  22.   Delay: 20
  23.   # 当设置为 true 时, 将从列表中随机选取图片而不是顺序循环显示图片.
  24.   Random: true
复制代码

附魔

附魔列表, 格式为 <附魔名>:<等级> (<等级> 为可选项).
/enchant 和 Spigot页面 中列出的附魔名皆支持.
在付费版中, 此项配置可动画化并且等级支持变量.

  1. Enchantments:
  2. - unbreaking:3
  3. - efficiency:5
  4. # 或, 使用 Animated Menu Plus
  5. Enchantments:
  6.   1:
  7.   - unbreaking:3
  8.   2:
  9.   # 玩家自身每提升 10 等级, 额外提升 1 级效率附魔.
  10.   - 'efficiency:\(:#:%player_level% / 10)'
  11.   Delay: 5s
复制代码

颜色

皮革护甲的颜色. 在 AnimatedMenu Plus 中可动态化.
格式为 'R, G, B' (R, G 和 B 三者的值都在 0 到 255 之间) 或 'RRGGBB' (HEX 颜色值, 在颜色采集工具中常以 # 开头表示)

  1. # 红色
  2. Color: '255, 0, 0'
  3. # 或, 使用 AnimatedMenu Plus
  4. Color:
  5.   # 红色
  6.   1: '255, 0, 0'
  7.   # 绿色
  8.   2: '00FF00'
  9.   # 蓝色
  10.   3: '0000FF'
  11.   Delay: 5s
复制代码

头颅

头颅的主人(将会显示其主任的皮肤头颅). 支持变量并且在 AnimatedMenu Plus 中可动态化.
配置方式可为以下任意一种:
  • 'hdb:<id>' - HeadDatabase 中的头颅.
  • 玩家的 UUID - 可以带或不带连字符.
  • 玩家ID.
  • Base64 编码的皮肤材质数据.  一个 give 命令的例子: /give @p skull 1 3 {SkullOwner:{Id:"0461c835-179c-473a-9c1a-90133873ef86",Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTgxYTM5OWU0ZDJlOGYxYTgyOGUxYzRiYzRjYTk5ZWZlZDE1MDhmM2Y0MjFkOTg4NzQ3Mj**TY0ZDgzIn19fQ=="}]}}} 以下就是目标数据eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTgxYTM5OWU0ZDJlOGYxYTgyOGUxYzRiYzRjYTk5ZWZlZDE1MDhmM2Y0MjFkOTg4NzQ3Mj**TY0ZDgzIn19fQ==
  • 皮肤链接(Skin URL).
    1. Skull-Owner: 'Notch'
    2. # 或
    3. Skull-Owner: '%player_uuid%'
    4. # 或, 使用 AnimatedMenu Plus
    5. Skull-Owner:
    6. 1: 'hdb:1234'
    7. 2: 'hdb:5678'
    8. Delay: 5s
    复制代码


生物蛋类型

生物蛋的 实体种类.
在 AnimatedMenu Plus 中可动态化.

旗帜样式

旗帜或盾牌的图案样式. 在 AnimatedMenu Plus 中可动态化.
要设计一个旗帜样式, 前往
Miners Need Cool Shoes 网站
然后设计出你想要的图案.
接着, 复制出下图中框出的部分填入配置文件中:

  1. Banner-Pattern: 'paaxawaCai'
  2. # 或, 使用 AnimatedMenu Plus
  3. Banner-Pattern:
  4.   1: 'paaxawaCai'
  5.   2: 'paaimoet'
  6.   Delay: 10s
复制代码

烟火之星颜色

烟火之星的颜色. 与 (皮革护甲)颜色有相同的配置格式
在 AnimatedMenu Plus 中支持动态化.

隐藏选项

隐藏物品一些属性的标识. 在 AnimatedMenu Plus 可动态化.
可以为(下者二选一):
  • 一个数字, 与 Items HideFlags 相同. 在这篇文章中写道: {HideFlags:1-63} (1 = Enchantments(附魔), 2 = Attributes modifiers(属性改动), 4 = Unbreakable(无法破坏), 8 = CanDestroy(可以破坏的物品), 16 = CanPlaceOn(可以放置的物品), 32 = Others(其他), 比如药水效果 & 盾牌样式信息)
  • 一个隐藏标识名的逗号分隔列表, 基于 Bukkit 中的名字: enchants, attributes, unbreakable, destroys, _placed_on_ 和 _potion_effects_.
    1. Hide-Flags: 63
    2. # 或
    3. Hide-Flags: 'enchants, unbreakable'
    4. # 或, 使用 AnimatedMenu Plus
    5. Hide-Flags:
    6. 1: 63
    7. 2: 'enchants, unbreakable'
    8. Delay: 5s
    复制代码


可视权限

看见此物品所需的权限节点. 支持变量.
以 '-' 来反向使用 (即没有此权限才能看到此物品).
  1. View-Permission: 'some.item.permission'
  2. # 或
  3. View-Permission: '-some.item.permission'
复制代码

可视脚本(付费版功能)

一种条件判断 JavaScript 代码, 并且仅在玩家在此判断中返回 true(即满足条件), 才能看见此物品.
支持变量.
请注意当你想要使用任何文本值(变量也一样), 你应该使用英文(半角)双引号包起来.
这仅适用于 文本, 数字则不需要, 谨记!
  1. # 数字, 所以不需要 ""
  2. View-Script: '%vault_eco_balance% > 20'
  3. # 世界名, 所以需要 ""
  4. View-Script: '"%player_world%" == "world"'
复制代码

不可破坏

当设置为 true 时, 此物品将不会显示耐久条.
隐藏选项 设置为 unbreakable 搭配食用更佳, 这对于在菜单中显示自定义材质的物品非常有用.
如果你正在使用 AnimatedMenu Plus 并且设置了
NBT标签, 此配置选项值将会被忽略.
  1. Unbreakable: true
  2. # 可选项, 隐藏此配置选项给物品带来的蓝色 "Unbreakable".
  3. Hide-Flags: unbreakable
复制代码

NBT标签(付费版功能)

一个可动态化的自定义NBT标签配置选项.
这可用于添加(当前)不具有专用配置选项的内容.
这与 Minecraft 原生 NBT 标签工作方式相同, 除了它现在有 YAML 配置格式了.
通常来讲, 你有一个这样的 NBT 标签:

  1. {AttributeModifiers:[0:{AttributeName:"...",Name:"...",Amount:0,Operation:0}, 1:{AttributeName:"...",Name:"...",Amount:1,Operation:1,UUIDLeast:5271890,UUIDMost:1287355}]}
复制代码
在 YAML 中, 会变成这样:
  1. NBT:
  2.   AttributeModifiers:
  3.   - AttributeName: '...'
  4.     Name: '...'
  5.     Amount: 0
  6.     Operation: 0
  7.   - AttributeName: '...'
  8.     Name: '...'
  9.     Amount: 1
  10.     Operation: 1
  11.     UUIDLeast: 5271890
  12.     UUIDMost: 1287355
复制代码

点击操作处理器

一个用于处理物品点击操作的后续动作的配置方案.
在配置此项内容中会使用到的关键内容会在 点击操作处理器 页面中详细介绍.
此配置选项有两种添加方法:
作为一组子配置选项:

  1. Click-Handlers:
  2.   first:
  3.     Click-Type: left
  4.     Commands:
  5.     - ...
  6.   second:
  7.     Click-Type: right
  8.     Commands:
  9.     - ...
复制代码
作为一个列表:
  1. Click-Handlers:
  2. - Click-Type: left
  3.   Commands:
  4.   - ...
  5. - Click-Type: right
  6.   Commands:
  7.   - ...
复制代码
或者, 与物品本身的基础定义放在一起, 在这种情况下你只能添加一种点击操作了:
  1. Slot: ...
  2. Material: ...
  3. Name: ...
  4. Click-Type: left
  5. Commands:
  6. - ...
复制代码
点击操作处理器
点击操作处理器是优化你的菜单互动体验的关键
关于如何在一个菜单物品上添加点击操作处理器已经在 菜单物品-点击操作处理器 一节中介绍过了
而此页面则详细介绍了所有可用的(点击操作处理器)关键词


点击类型

可以为单一值或使用逗号分隔开的多个值
可选值有 left, rightmiddle, all 表示允许全部的三种点击
或者使用 both 来仅允许 leftright 类型的点击. 默认值为 both

  1. Click-Type: left
  2. Click-Type: right, middle
  3. Click-Type: all
  4. Click-Type: both
复制代码

潜行键点击

可以为 true, false 或者 both (默认值).
  1. Shift-Click: true
  2. Shift-Click: false
  3. Shift-Click: both
复制代码

执行命令

待执行命令的列表. 可动态化并且支持变量.

你可以使用不同的前缀来以多种方式执行命令:
  • 不使用任何前缀代表以玩家身份执行命令.
  • chat: - 使玩家发送一条聊天消息.
  • console: - 以控制台身份执行命令.
  • message: - 向玩家发送一条消息.
  • op: - 以 op 身份执行命令.
  • broadcast: - 向整个服务器发送一条公告.
  • menu: - 使玩家打开另一个菜单.
  • give: - 给予玩家物品. 与 Item(配置键) 格式相同
  • server: - 将玩家传送到另一个 BungeeCord 子服务器.
  • tellraw: - 向玩家发送一条 json 消息. 与 /tellraw 命令 相同.
  • sound: - 向玩家播放一个音效, 与 打开音效 格式相同.
  • action: - 使玩家执行一项 ActionAPI 命令.

一些前缀为仅 AnimatedMenu Plus 拥有:
  • bungeeplayer: - 使玩家通过 BungeeCord 代理执行命令. 此功能需要 AnimatedMenu Plus 同时也被安装到 BungeeCord 端中. (无需进一步配置)
  • bungee: - 以 BungeeCord 代理控制台的身份执行命令. 此功能也需要将 AnimatedMenu Plus 放入 BungeeCord 的插件文件夹.
  • script: - 执行一些 JavaScript 代码.
  • sql: - 执行 SQL 查询 (教程即将到来)
  1. Commands:
  2. - 'say Hi everybody!'
  3. - 'console: tellraw %player_name% {"color":"blue","text":"Hi there!"}'
  4. - 'tellraw: {"color":"blue","text":"Hi there!"}'
  5. # OR
  6. Commands:
  7.   1:
  8.   - '&aThis is the first message!'
  9.   2:
  10.   - '&bThis is the second message!'
  11.   Random: true
复制代码

权限与无权限消息

Permission 指定执行此点击操作所需的权限.
支持变量. Permission-Message 指定一条在玩家没有执行此点击操作所需的 权限 时发送的消息. 支持变量.
默认值为 '&cYou are not permitted to do that!'

  1. Permission: 'some.random.permission'
  2. Permission-Message: '&cYou are not allowed to do this, %player_name%!'
复制代码

忽略权限

如果玩家拥有在此指定的权限节点, 他们在执行此点击操作时不需要支付(金钱或者点数). 支持变量.
  1. Bypass-Permission: 'some.bypass.permission'
复制代码

关闭

可以为 always, on-success (当玩家允许执行此点击操作时), on-failure (当玩家不满足条件时) 或 never (默认值).
  1. Close: on-success
复制代码

点击冷却与冷却消息

Click-Delay 指定在两次执行此点击操作之间必须等待的冷却时间.
Delay-Message 指定一条在冷却时间尚未结束时点击发送的消息.

它支持一些特定的变量:
  • {delay_ticks_total} - 剩余的总 Tick 数(即将剩余的时间完全用 Tick 表示, 以下不再注明)
  • {delay_ticks} - 不足一秒的 Tick 数(即用于表示: xx 秒 xx Ticks, 以下不再注明)
  • {delay_seconds_total} - 剩余的总秒数
  • {delay_seconds} - 不足一分钟剩余的秒数
  • {delay_minutes_total} - 剩余的总分钟数
  • {delay_minutes} - 不足一小时剩余的分钟数
  • {delay_hours_total} - 剩余的总小时数
  • {delay_hours} - 不足一天剩余的小时数
  • {delay_days_total} - 剩余的总天数
  • {delay_days} - 不足一周剩余的天数
  • {delay_weeks} - 剩余的总周数
  1. Click-Delay: 5s
  2. Click-Delay: 5h30m

  3. Delay-Message: '&cYou cannot do this for another {delay_hours}hours, {delay_minutes} minutes and {delay_seconds\} seconds'
复制代码


条件脚本与脚本否消息

Requirement-Script 是一种条件判断 JavaScript 代码, 并且仅在玩家在此判断中返回 true 时(即满足条件)允许执行此点击操作. 支持变量.
请注意当你想要使用任何文本值(变量也一样), 你应该使用英文(半角)双引号包起来.
这仅适用于文本, 数字则不需要.
Script-Message 当条件判断代码返回值为 false 时发送的消息.
默认值为 '&cYou are not permitted to do that!'

  1. # 仅当玩家有至少 $100 时才可执行
  2. Requirement-Script: '%vault_eco_money% >= 100'
  3. # 仅当玩家名为 'megamichiel' 时才可执行
  4. Requirement-Script: '"%player_name%" == "megamichiel"'
复制代码

金钱要求与其对应提示消息

Price 指定执行此点击操作所需要的 Vault 钱数.
Price-Message 指定了当玩家没有足够的钱时发送的提示消息.
默认值为 '&cYou don't have enough money for that!'

  1. Price: 50
  2. Price-Message: '&cYou need at least $50 for that!'
复制代码

点数要求与其对应提示消息

Points 指定执行此点击操作所需要的 PlayerPoints 点数.
Points-Message 指定了当玩家没有足够的点数时发送的提示消息.
默认值为 '&cYou don't have points money for that!'

  1. Points: 100
  2. Points-Message: '&cYou need at least 100 points for that!'
复制代码

宝石要求与其对应提示消息

Gems 指定执行此点击操作所需要的 Gems 宝石数.
Gems-Message 指定了当玩家没有足够的宝石时发送的提示消息.
默认值为 '&cYou don't have enough gems for that!'

  1. Gems: 30
  2. Gems-Message: '&cYou need at least 30 gems for that!'
复制代码

代币要求与其对应提示消息

Tokens 指定执行此点击操作所需要的 Vault 代币数.
Tokens-Message 指定了当玩家没有足够的代币时发送的提示消息.
默认值为 '&cYou don't have enough tokens for that!'

  1. Tokens: 43
  2. Tokens-Message: '&cYou need at least 43 tokens for that!'
复制代码

硬币要求与其对应提示消息

Coins 指定执行此点击操作所需要的 Vault 硬币数.
Coins-Message 指定了当玩家没有足够的硬币时发送的提示消息.
默认值为 '&cYou don't have enough coins for that!'

  1. Coins: 420
  2. Coins-Message: '&cYou need at least 420 coins for that!'
复制代码

经验值要求与其对应提示消息

Exp 指定执行此点击操作所需要的经验值.
若以 'L' 为开头则指定经验等级而不是经验点数.
Exp-Message 指定了当玩家没有足够的经验值时发送的提示消息.
默认值为 '&cYou don't have enough exp for that!'

  1. Exp: 500
  2. Exp-Message: '&cYou need at least 500 experience for that!'
  3. # 或
  4. Exp: L30
  5. Exp-Message: '&cYou need at least 30 experience levels for that!'
复制代码

物品要求与其对应提示消息(付费版功能)

Item 指定执行此点击操作所需要的物品, 格式为 "<种类>:<数量>:<附加值> <NBT标签>" (数量, 附加值 和 NBT标签 都为可选项).
Item-Message 指定了当玩家没有足够的物品时发送的提示消息.
默认值为 '&cYou don't have enough of that item!'

  1. Item: 'diamond:64'
  2. Item-Message: '&cYou need at least 64 diamonds for that!'
  3. # 或
  4. Item: 'diamond-sword:1:0 {display:{Name:"&5Special Diamond Sword"},ench:[{id:34,lvl:3}]}'
  5. Item-Message: '&cYou don't have the &5Special Diamond Sword&c!'
复制代码


[groupid=1511]Server CT[/groupid]