条件

这里有DeluxeMenus中所有的条件语法

基本结构

# 可以是
# open_requirement:
# left_click_requirement:
# right_click_requirement:
view_requirement:
  requirements:
    # 你可以创建多个条件.
    # 每个条件必须有一个不重复的名字
    requirement_name:
      type: 条件类型
  # 只能在open_requirement
  # 或left/right_click_requirement下使用deny_commands
  deny_commands:
    - "[ACTIONTYPE] ACTION"
    - "[ACTIONTYPE] ACTION"

条件

类型

介绍

定义打开菜单的条件

定义能看到该物品的条件

定义单击或右击的条件

  • 您同样可以在撰写条件中使用PlaceholderAPI所提供的变量(下文称PAPI变量)

  • 如果您同时设置了多个条件,则玩家需全部满足才可被认为是符合条件

    (您也可以使用JavaScipt来添加必须满足可不满足的条件)

条件类型

拥有某一权限 (has perimission)

type: has permission
permission: '在这里填写权限'

检测玩家是否拥有某一权限

如果您想检测玩家是否没有某一权限,您可以在has permission前加上一个感叹号(!). 就像这样 type: !has permission 但请注意,必须是英文输入模式下的感叹号. 下文中所有以has/is开头的条件类型均适用这一技巧

拥有一定数量的金钱

type: has money
amount: #

检测玩家是否拥有一定数量的金钱

  • 请注意,上文所赘述的金钱即与Vault挂钩的经济系统的余额称呼,

    在不同的服务器对该余额可能有不同的称呼和地位定义

同样,您可以在has money前加上感叹号(!),以表示反义(即检测玩家是否没有一定数量的金钱) 就像这样 type: !has money

什么?如果您想将一个PAPI变量用作数量的值,那么请将 amount: # 替换为 placeholder: 变量

type: has money
amount: 变量

拥有一定数量的某一物品

type: has item
material: "TEXT"
#物品的英文ID,例如CLOCK
data: #
#物品的子ID,例如白色羊毛即0,
#若该物品没有子ID,请删去此参数
amount: #
#物品的数量
name: "TEXT"
#该物品的名字,可以使用颜色/样式代码
#也可以使用PAPI变量
#若物品未被重命名,请忽略该参数
lore:
  - "TEXT"
#该物品的Lore,可以填写的字符同上
#若该物品没有Lore请删去此参数

必填的物品参数:

  • material

  • amount

若该物品有多个子ID,但您仍然删去了data参数 则将会默认视为子ID为0

检测玩家是否拥有一定数量的某一物品

若想在name和lore中使用颜色亦或者样式代码,请使用§而非&

拥有某一属性

type: has meta
key: "TEXT"
#关键字
meta_type: <STRING, BOOLEAN, DOUBLE, LONG, INTEGER>
#属性类型
value: EXPECTED VALUE
#值

必填的物品参数:

  • key

  • meta_type

  • value

检查玩家是否有特定关键字的属性

如果 meta_type 是数字类型 (DOUBLE, LONG, INTEGER) 则会检查玩家的 value 值

是否大于或等于该值

同样,您可以在has meta前加上感叹号(!),以表示反义(即检测玩家是否没有一定数量的金钱) 就像这样 type: !has meta

请注意,此条件为DeluxeMenus最新版所更新的新属性

判断是否在附近

type: is near
location: "WORLDNAME,X,Y,Z"
#位置 (世界名,X,Y,Z)
distance: #
#距离多远会判断

必填的物品参数:

  • location

  • distance

判断玩家距离 location 点还有多远

同样,您可以在is near前加上感叹号(!),以表示反义(即检测玩家是否没有一定数量的金钱) 就像这样 type: !is near

JavaScript 脚本语言

type: javascript
# 类型
expression: 'EXPRESSION'
# 表达式

例子:
``YAML
type: javascript
# 类型
expression: '%vault_eco_balance% >= 100'
# 表达式 判定玩家经济是否大于 100
``

使用 JavaScript , 必须返回真或者假

字符串比较

type: string equals
# 类型
input: 'TEXT'
# 输入字符串
output: 'TEXT'
# 输出字符串
# 比较输入字符串是否相等

例子:
``YAML
type: string equals
# 类型
input: '%server_name%'
# 输入字符串
output: 'HelpChat'
# 输出字符串
``

比较 输入值 input: 和 输出值 output:

同样,您可以在string equals前加上感叹号(!),以表示反义(即检测玩家是否没有一定数量的金钱) 就像这样 type: !string equals

忽略大小写的字符串比较

type: string equals ignorecase
# 类型
input: 'TEXT'
# 输入字符串
output: 'TEXT'
# 输出字符串
# 比较输入字符串是否相等(忽略大小写)

例子:
``YAML
type: string equals ignorecase
# 类型
input: '%server_name%'
# 输入字符串
output: 'HelpChat'
# 输出字符串
``

比较 输入值 input: 和 输出值 output:

同样,您可以在string equals ignorecase前加上感叹号(!),以表示反义(即检测玩家是否没有一定数量的金钱) 就像这样 type: !string equals ignorecase

是否包含字符串

type: string contains
# 类型
input: 'TEXT'
# 输入字符串
output: 'TEXT'
# 输出字符串
#比较输入字符串是否包含输出字符串

例子:
``YAML
type: string contains
# 类型
input: '%server_name%'
# 输入字符串
output: 'HelpChat'
# 输出字符串
``

比较 输入值 input: 和 输出值 output:

同样,您可以在string contains前加上感叹号(!),以表示反义(即检测玩家是否没有一定数量的金钱) 就像这样 type: !string contains

正则表达式

type: regex matches
# 类型
input: 'TEXT'
# 输入字符串
regex: 'EXPRESSION'
# 正则表达式

比较 输入值 input: 是否匹配 regex: 中的正则表达式:

访问 这个网站 轻松创建正则表达式

同样,您可以在regex matches前加上感叹号(!),以表示反义(即检测玩家是否没有一定数量的金钱) 就像这样 type: !regex matches

比较器

type: regex matches
# 类型
input: #
# 输入量
regex: #
# 输出量

比较 输入值 input: 和 output: 输出量

可用选项

类型

介绍

==

input: 是否等于 output:

>=

input: 是否大于等于 output:

<=

input: 是否小于等于 output:

!=

input: 是否不等于 output:

>

input: 是否大于 output:

<

input: 是否小于 output:

例子

打开条件

open_requirement:
  requirements:
  # 条件
    example_1:
    # 节点
      type: has permission
      #类型
      permission: open.menu.one
      #权限
  deny_commands:
    - "[message] &cYou don't have the permission."
    #执行动作

查看条件

view_requirement:
  requirements:
  # 条件
    example_2:
    # 节点
      type: string equals
      #类型
      input: "%player_is_op%"
      #输入量
      output: "yes"
      #输出量

左/右键条件

# left_click_requirement: or
right_click_requirement:
  requirements:
    example_3:
    # 节点
      type: has money
      # 类型
      amount: 100
      # 数量
  deny_commands:
    - "[message] &7You don't have enough money."
    # 执行动作

翻译仅供参考,若存在异议或建议请私聊指出或发送至 azurehanchen@complexstudio.net

最后更新于