跳到主要内容

生成器面板

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

声明​

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

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

属性​

下列属性均为 generator 节点下的

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

对象源​

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

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

配置如下

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}}"

生成池​

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

示例​

声音列表​

以下是由 YAML 单文件编写的一个自动生成多页,可过滤 & 排序的音效预览示例

tpa选人菜单​

一个可以列出服务器所有在线玩家,可以请求传送的 tpa 案例

签到菜单​

仿 LiteSignin 插件的签到,有最基本的签到和补签功能