搜索列表
将关键词输入、筛选、分页与导航状态组合到一个菜单。
配置文件
menu:
title: '&8指南搜索'
rows: 2
min-interact-interval: 600
panels:
- layout:
- ' '
- '<###S###>'
generator:
source: custom
filter: 'any [ ctx without keyword check &element_title has &keyword ]'
elements:
- title: '服务器规则'
- title: '常用命令'
- title: '玩法说明'
- title: '世界介绍'
- title: '物品说明'
- title: '活动日历'
- title: '商店指南'
- title: '领地说明'
- title: '组队说明'
- title: '联系管理'
output:
material: BOOK
name: '&f{{&element_title}}'
action: "mmsg '&a已选择:{{&element_title}}'"
icons:
'#':
material: GRAY_STAINED_GLASS_PANE
name: ' '
'<':
material: GRAY_STAINED_GLASS_PANE
name: '&7上一页'
sub:
- if: 'not page isFirst'
material: ARROW
name: '&f上一页'
action: |-
page previous
icon by '<' refresh
icon by '>' refresh
'>':
material: GRAY_STAINED_GLASS_PANE
name: '&7下一页'
sub:
- if: 'not page isLast'
material: ARROW
name: '&f下一页'
action: |-
page next
icon by '<' refresh
icon by '>' refresh
S:
material: NAME_TAG
name: '&e搜索'
lore:
- '&7左键输入关键词'
- '&7右键清除筛选'
sub:
- if: 'ctx has keyword'
name: '&e搜索:{{&keyword}}'
action:
left:
catch: keyword
cancel:
- cancel
- exit
reopen: true
beforeInput: "mmsg '&e输入关键词;输入 cancel 返回全部列表'"
afterInput: "mmsg '&a搜索词:{{&keyword}}'"
onCancel: 'menu open search-demo'
right: |-
ctx del keyword
regenerate
icon by '<' refresh
icon by '>' refresh
icon by 'S' refresh下载 search-demo.yml,重载后使用 /invero menu open search-demo 打开。
操作与结果
| 操作 | 结果 |
|---|---|
| 打开菜单 | 十条数据分两页显示 |
| 下一页,再上一页 | 列表切页,两端导航同步为可用或灰色状态 |
| 左键搜索,输入“说明” | 显示玩法、物品、领地、组队四项 |
| 右键搜索 | 清除关键词,恢复十项并回到第一页 |
| 输入 cancel 或 exit | 取消输入,返回全部列表 |
| 输入没有匹配的词 | 列表为空,搜索与清除按钮仍可使用 |
示例的交互间隔为 600 毫秒。输入成功后重开菜单并带回 keyword;取消使用 menu open,不保留之前的筛选。
相关配置
最后更新于