跳到主要内容

生成器面板

生成器面板是将众多对象按照统一模板自动生成,且支持翻页查看的特殊面板

声明

除了常规面板通用的属性外,生成器面板具有一个独立的配置节点
通过此节点可以声明一个生成器面板

节点接受值描述
generatorObject声明生成器面板相关设置

属性

下列属性均为 generator 节点下的

节点接受值描述
sourceString对象源(默认为 CUSTOM)
elementsListObject自定义对象源
filterString过滤脚本(Kether 语句)
sortByString排序依据(对象的一个 key)
outputIcon输出图标模板

对象源

首先理解生成器的对象,其实质是一个 Map<String,String> 键-值
也可以在配置中体现出来

例如我们需要做一个称号的列表,那么 称号 就可以被当作对象来写
我们给 称号 这个对象以 prefixperm 两个属性,通过自定义对象源来实现

配置如下

elements:
- prefix: '[VIP]'
perm: group.vip
- prefix: '[SVIP]'
perm: group.svip
- prefix: '[MVP]'
perm: group.mvp
- prefix: '[MOD]'
perm: group.mod

除了自定义对象源外,插件针对常规需求也预置了一些 动态的对象源 如下

PLAYER

Bukkit 服务器在线玩家

属性
name
displayName
isSneaking
isSprinting
x
y
z
yaw
pitch
address

WORLD

Bukkit 服务器世界列表

属性
name
uid
environment
seed
minHeight
maxHeight
allowAnimals
allowMonsters
difficulty
time

SOUND

Bukkit 音效名称列表

属性描述
name名称
ordinal序号

Invero 已加载到内存中的菜单对象

属性描述
id标识符
type容器类型
rows容器行数
panels面板数量
virtual是否为虚拟容器

属性调用

在过滤器或输出图标的语境中,支持调用元素的属性
Kether 语句为 element <key>

例如,针对 PLAYER 对象源,需要调用玩家的 IP 地址,则使用 element address

过滤器

过滤器是一条 Kether 条件表达式,返回否则过滤掉此元素 在此表达式中可以使用 element 语句来调用元素的属性

如过滤 rank 属性大于 5 的对象,则设置为

generator:
filter: 'check element rank > 5'

排序依据

排序依据是对象源的一个键名称,
例如依据玩家的名称进行排序,则设置为

generator:
sortBy: name

输出图标

输出图标与常规图标写法完全一致,
只是在该图标语境下可使用 element 调用属于对象的属性

例如,针对玩家对象源实现的玩家列表,可以这样设置

generator:
source: player
output:
head: '{{element name}}'
name: '{{element name}}'
action: |-
msg "You clicked {{element name}}"

生成池

生成器面板允许使用 layouticons 节点来设置默认静态图标
未被默认图标占用的槽位即是生成池,对象源会在其上顺序排列