跳转到正文
iPlugin

搜索列表

将关键词输入、筛选、分页与导航状态组合到一个菜单。

配置文件

plugins/Invero/workspace/search-demo.yml
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,不保留之前的筛选。

相关配置

列表字段见生成器面板,输入回调见玩家输入,变量与刷新见会话变量。

最后更新于