2 Star 1 Fork 1

GermMC / WikiGermEngine

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
component.md 46.54 KB
一键复制 编辑 原始数据 按行查看 历史

GUI组件介绍

Tips:在使用GUI部分功能时,请先了解以下列出的十二种组件.

每种组件的第一行索引名可以自定义,<type:>决定了你所选用的组件类型.


基本选项

Tips:一个GUI界面最多只能有一个基本选项(options)

  #options标识符表示设置这个GUI的参数(该标识符所有节点可全部删除,索引名称不可更改)
  options:
    #设置起始坐标轴,你可以根据你的习惯来设置这个界面的原点。(如果删除此行,默认为MC界面的最上边)
    startX: "w*0.01"
    #设置起始坐标轴,你可以根据你的习惯来设置这个界面的原点。(如果删除此行,默认为MC界面的最左边)
    startY: "10"
    #此界面的优先级 优先级越大 越不会被遮住 (物品模型的默认优先级都很大,要想把物品模型遮住,Z轴就要很大) 不懂不要管 直接删去就可以 默认为 0
    startZ: "10"
    #当width不为零时 设置 startX 为 right center 分别会将startX的坐标起始点设置为 最左边 最右边 中间
    width: "0"
    #当height不为零时  设置 startX 为 bottom center 分别会将startY的坐标起始点设置为 最左边 最右边 中间
    height: "0"
    #打开一次后就在客户端删除该界面的缓存(就是打开并关闭后,需要重载才能再打开,给写插件时用的,写配置直接删去)可删除 默认false
    consume: false
    #是否开启编辑模式,开启后将会绘制指针的坐标位置(可删除,默认为false)
    #开启后可用鼠标拖动组件位置和大小,按下S键切换至大小设置模式,按下V键切换至位置设置模式,设置时可中途右键鼠标放弃当前任务
    guide: false
    #当点击无组件的地方时 是否要丢出鼠标上的物品 (在颠覆界面无需使用)
    dropCursorItem: false
    #是否取消ESC关闭界面 (可删除默认为 false)
    escCancel: false
    #是否是置顶的HUD 默认为false
    topperHud: false
    #是否需要与hud交互 默认为false 开启后打开界面可以直接与HUD交互,可以做到把GUI的物品拖到HUD上之类的操作
    interactiveHud: false
    #如果该界面在最顶层 开启下面选项后 按下ESC只会关闭这个界面 (关闭escCancel才有效,可删除默认为false)
    escCloseOnly: false
    #当界面被关闭的时候会触发
    closeDos:
      - "message<->thisGui界面被关闭了"
    #当玩家在此界面按下按键时触发
    keyDos:
      keyDown_22:
        - "message<->按下了 U 键"
      keyUp_22:
        - "message<->松开了 U 键"
    #这里设置窗口拖动的参数 删掉代表无法拖动
    drag:
      #可拖动区域的坐标
      locationX: "0"
      locationY: "0"
      #可拖动区域的宽度
      width: "100"
      #可拖动区域的高度
      height: "100"
    #布局器 它可以帮助你填充组件进去
    #如果在options参数中使用需要设置options内的width和height
    layout:
      #布局器类型 FLOW 将根据组件的宽高 自动瀑布流式的填充进容器
      type: FLOW
      # 组件间隙
      gapX: "5"
      gapY: "5"
    #打开界面时的声音,删除此行默认无声
    openSound: "minecraft:block.anvil.use"
    #打开GUI时执行一些关于GUI的特殊操作 以下称为dos(可删除)
    #dos都是以 标记<->参数 的形式书写 不同的标记拥有不同的功能
    openDos:
      - "openChild<->default3" #打开一个子窗口(default3也是一个gui目录下的yml文件)
    #这个界面中支持动画的部件共有的动画,目前动画还不是所有部件兼容,但是后面会一个一个兼容直到全部兼容(可删除)
    #目前兼容动画的部件有 图片 GIF 按钮 字符串 物品模型
    animations:
      - "default_move"

图片组件

  #图片组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  texture:
    type: texture
    # 是否开启这个组件 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #type作为标记这个部件是什么类型,目前拥有七个
    #0为图片 1为颜色块 2为GIF 3为按钮 4为字符串 5为物品槽 6为实体 7为输入槽 8为竖向列表框
    #能想到我就会添加,如果有新的需求请及时通知我
    #图片的本地材质路径地址格式为 local<->地址 或者直接输入 地址
    #图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
    path: 'local<->textures/misc/logo.png'
    #图片的显示起始坐标(图片的左上角为起始点)
    locationX: "w-90"
    locationY: "h-90"
    #优先级 详情看下图 通常情况下删了就可以了
    locationZ: "0"
    #宽度width和高度height也同样支持运算符和 w h 变量 w代表整个MC的宽度
    #使用 tw1 可以代表在path填下的图片的真实宽度
    width: "w*0.53"
    #使用 th1 可以代表在path填下的图片的真实高度
    height: "h*0.58"
    #这四个参数可以截取图片的一部分渲染
    #详情见下图
    startU: '10'
    startV: '10'
    endU: "10"
    endV: "10"
    #图片组件整体动画(可删除)
    animations:
      - "default_scale"

UV为截取图片中的一部分显示出来,其中黑框为图片 {c}

locationZ可以理解为组件离下图红色框体的距离,要注意的是在设置实体与物品的locationZ时,要注意实体和物品是立体的所以其本身也占了一定的Z轴大小 {c}


颜色块组件

  #颜色块组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  color:
    type: color
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #性状  有太多了  暂时默认0即可 后面再列出
    shape: 0
    #厚度
    thickness: "1"
    #半径
    radius: "1"
    locationX: "w*0.1"
    locationY: "h*0.1"
    #优先级 通常情况下删了就可以了
    locationZ: "0"
    width: "w*0.1"
    height: "h*0.8"
    #颜色块的颜色为RGBA,请在前面加上0x,如果不了解什么是RGBA可以搜索 什么是RGBA
    color: 0x88888800
    #颜色块的末尾颜色,可以形成渐变色(可删除)删除后为纯色
    endColor: 0x88888800

序列帧组件

  #序列帧组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  frame:
    type: frame
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
    #图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
    frames:
      - "local<->textures/misc/logo.png"
      - "local<->textures/misc/buffer.png"
    #切换到下一帧的时间 单位毫秒
    hz: 50
    #这个序列帧播放几遍后停止,-1是无限循环
    cycle: -1
    #最后一遍渲染暂停在第几帧(1为第一帧) 写-1为播放完成后消失 (默认为-1)
    pause: -1
    #组件位置
    locationX: "w*0.26"
    locationY: "h*0.11"
    locationZ: "0"
    #使用 tw1 可以代表在frames填下的图片的真实宽度
    width: "w*0.53"
    #使用 th1 可以代表在frames填下的图片的真实高度
    height: "h*0.58"
    #这四个参数几乎不用 不要填 直接删了就好
    startU: '10'
    startV: '10'
    endU: "10"
    endV: "10"
    #gif图片组件的整体动画(删除整行后默认为无动画)
    animations:
      - "default_move"

gif图片组件

  #gif图片组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  gif:
    type: gif
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
    #图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
    path: 'local<->textures/gif/ghast.gif'
    #该gif播放次数,-1是无限循环
    cycle: -1
    #最后一遍渲染暂停在第几帧(1为第一帧) 写-1为播放完成后消失 (默认为-1)
    pause: -1
    locationX: "w*0.26"
    locationY: "h*0.11"
    locationZ: "0"
    #使用 tw1 可以代表在path填下的图片的真实宽度
    width: "w*0.53"
    #使用 th1 可以代表在path填下的图片的真实高度
    height: "h*0.58"
    #这四个参数几乎不用 不要填 直接删了就好
    startU: '10'
    startV: '10'
    endU: "10"
    endV: "10"
    #gif图片组件的整体动画(删除整行后默认为无动画)
    animations:
      - "default_move"

按钮组件

  #按钮组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  button:
    type: button
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #按钮默认的图片、GIF(如果填的是gif文件就会渲染成gif)
    #图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
    #图片的网络材质链接地址格式为 url<->网络链接
    defaultPath: 'local<->textures/misc/warn.png'
    #鼠标悬浮到按钮时的图片、GIF(如果填的是gif文件就会渲染成gif)
    #图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
    #图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
    hoverPath: 'local<->textures/misc/logo.png'
    #悬浮时改变defaultPath的颜色 此选项可以作为没有悬浮效果贴图的备选方案
    hoverColor: 0xFFAAAAAA
    #悬浮到按钮播放声音(可删除)
    hoverSound: 'minecraft:ui.button.click'
    #点击按钮播放声音(可删除)
    clickSound: 'minecraft:ui.button.click'
    #设置按钮位置
    locationX: "w*0.3"
    locationY: "h*0.1"
    #设置按钮优先级
    locationZ: "0"
    #设置按钮大小
    #使用 tw1 可以代表在defaultPath填下的图片的真实宽度
    #使用 tw2 可以代表在hoverPath填下的图片的真实宽度
    width: "w*0.1"
    #使用 th1 可以代表在defaultPath填下的图片的真实高度
    #使用 th2 可以代表在hoverPath填下的图片的真实高度
    height: "h*0.2"
    #是否开启真实的边缘计算悬浮检测
    #默认为false
    #开启后会根据defaultPath的透明区域生成检测区域 只有悬浮在非透明区域才算悬浮
    realHover: false
    #是否是禁止点击悬浮状态下的按钮
    invalid: false
    #交互冷却 单位毫秒 默认冷却为100ms
    interactCooldown: 100
    #默认的按钮动画(可删除)
    animations:
      - "default_rotate"
    #悬浮到按钮时的动画(可删除)
    hoverAnimations:
      - "default_rotate"
    #文本对齐模式 可删除
    align: "center"
    #是否渲染文字阴影 默认为 true
    textShadow: true
    #是否悬浮时渲染文字阴影 默认为 true
    hoverTextShadow: true
    #自动换行的像素长度 每行超过长度的字符串将会自动被换行到下一行 (默认为不自动换行)
    textSplitWidth: "100"
    #自动换行的像素长度 每行超过长度的字符串将会自动被换行到下一行 (默认为不自动换行)
    hoverTextSplitWidth: "100"
    #渲染该button上的字体使用的ttf字体名 ttf 字体要放入 assets/germmod/font/ 下,字体名就是文件名去掉.ttf后缀
    #放入字体后可以在germmodui.cfg 填写读取字体的精度 不写默认是50
    #强烈不建议放入过多的字体,耗玩家客户端内存
    #可删除 默认为 minecraft 的原版字体
    font: "default"
    #加载的特殊字体的文字大小,仅对特殊字体ttf有效 默认为27
    fontSize: 27
    #字体描边 范围 [0-1] 默认为0
    stroke: 0
    #字体描边颜色 默认为 0xFF000001
    strokeColor: 0xFF000001
    #在单行中超过该长度的文本将会被渲染为省略号
    omitWidth: "w*0.1"
    #默认字符串将显示在按钮中间,支持PAPI变量(可删除)
    texts:
      - "&e亲爱的: %player_name%"
      - "&e这是按钮"
    #默认字符串大小 默认1
    textScale: "1"
    #对齐模式 可删除
    hoverAlign: "center"
    #渲染该button上的字体使用的ttf字体名 ttf 字体要放入 assets/germmod/font/ 下,字体名就是文件名去掉.ttf后缀
    #放入字体后可以在germmod.cfg 填写读取字体的精度 不写默认是27
    #强烈不建议放入过多的字体,耗玩家客户端内存
    #可删除 默认为 minecraft 的原版字体
    hoverFont: "default"
    #加载的特殊字体的文字大小,仅对特殊字体ttf有效 默认为27
    hoverFontSize: 27
    #字体描边 范围 [0-1] 默认为0
    hoverStroke: 0
    #字体描边颜色 默认为 0xFF000001
    hoverStrkeColor: 0xFF000001
    #在悬浮的情况单行中超过该长度的文本将会被渲染为省略号
    hoverOmitWidth: "w*0.1"
    #悬浮字符串大小 默认1
    hoverTextScale: "1"
    #悬浮字符串,介绍同上(可删除)
    hoverTexts:
      - "&c亲爱的: %player_name%"
      - "&c这是按钮"
    #基于对齐方式对齐后的坐标偏移量
    textOffsetX: "1"
    textOffsetY: "1"
    textOffsetZ: "1"
    clickDos: #鼠标左键时候执行dos(可删除)
      - "open<->default2" #打开另一个界面
    rightDos: #鼠标右键时候执行dos(可删除)
      - "openChild<->rightMenu"
    #鼠标悬浮时候执行dos(可删除)
    hoverDos:
      - "open<->null" #关闭界面
    #鼠标悬浮离开后执行dos(可删除)
    leaveDos:
      - "open<->null" #关闭界面

复选框组件

  #复选框组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  checkbox:
    type: checkbox
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #复选框默认的图片、GIF(如果填的是gif文件就会渲染成gif)
    defaultPath: 'local<->textures/misc/warn.png'
    #鼠标悬浮到复选框时的图片、GIF(如果填的是gif文件就会渲染成gif)
    hoverPath: 'local<->textures/misc/logo.png'
    #复选框被选中的时候渲染图片、GIF(如果填的是gif文件就会渲染成gif)
    checkedPath: "local<->textures/misc/checked.png"
    #悬浮时改变defaultPath的颜色 此选项可以作为没有悬浮效果贴图的备选方案
    hoverColor: 0xFFAAAAAA
    #悬浮到按钮播放声音(可删除)
    hoverSound: 'minecraft:ui.button.click'
    #点击按钮播放声音(可删除)
    clickSound: 'minecraft:ui.button.click'
    #交互冷却 单位毫秒 默认 100ms
    interactCooldown: 100
    #复选框的选择状态 跟enable一样 可以写成条件的形式
    #状态会以变量  %界面名_复选框索引名_selected% 该界面为 %default_checkbox_selected% 的形式存入变量库 值为true或false
    selected: true
    #复选框的X轴位置
    locationX: "w*0.3"
    #复选框的Y轴位置
    locationY: "h*0.1"
    #复选框的Z轴位置
    locationZ: "0"
    #复选框的宽度
    width: "w*0.1"
    #复选框的高度
    height: "h*0.2"
    #是否开启真实的边缘计算悬浮检测
    #默认为false
    #开启后会根据defaultPath的透明区域生成检测区域 只有悬浮在非透明区域才算悬浮
    realHover: false
    #复选框被选择后渲染的图片或gif的大小 不写就和width,height一样大
    checkedWidth: "w*0.1"
    checkedHeight: "h*0.2"
    #是否是禁止点击悬浮的
    invalid: false
    #默认的按钮动画(可删除)
    animations:
      - "default_rotate"
    #悬浮到按钮时的动画(可删除)
    hoverAnimations:
      - "default_rotate"
    #默认文字对齐模式 可删除
    align: "center"
    #默认字符串大小 默认1
    textScale: "1"
    #渲染该button上的字体使用的ttf字体名 ttf 字体要放入 assets/germmod/font/ 下,字体名就是文件名去掉.ttf后缀
    #放入字体后可以在germmodui.cfg 填写读取字体的精度 不写默认是50
    #强烈不建议放入过多的字体,耗玩家客户端内存
    #可删除 默认为 minecraft 的原版字体
    font: "default"
    #加载的特殊字体的文字大小,仅对特殊字体ttf有效 默认为27
    fontSize: 27
    #字体描边 范围 [0-1] 默认为0
    stroke: 0
    #字体描边颜色 默认为 0xFF000001
    strokeColor: 0xFF000001
    #在单行中超过该长度的文本将会被渲染为省略号
    omitWidth: "w*0.1"
    #默认字符串将显示在按钮中间,支持PAPI变量(可删除)
    texts:
      - "&e亲爱的: %player_name%"
      - "&e这是按钮"
    #对齐模式 可删除
    hoverAlign: "center"
    #渲染该button上的字体使用的ttf字体名 ttf 字体要放入 assets/germmod/font/ 下,字体名就是文件名去掉.ttf后缀
    #放入字体后可以在germmod.cfg 填写读取字体的精度 不写默认是27
    #强烈不建议放入过多的字体,耗玩家客户端内存
    #可删除 默认为 minecraft 的原版字体
    hoverFont: "default"
    #字体描边 范围 [0-1] 默认为0
    hoverStroke: 0
    #字体描边颜色 默认为 0xFF000001
    hoverStrkeColor: 0xFF000001
    #加载的特殊字体的文字大小,仅对特殊字体ttf有效 默认为27
    hoverFontSize: 27
    #在悬浮的情况单行中超过该长度的文本将会被渲染为省略号
    hoverOmitWidth: "w*0.1"
    #悬浮字符串大小 默认1
    hoverTextScale: "1"
    #悬浮字符串,介绍同上(可删除)
    hoverTexts:
      - "&c亲爱的: %player_name%"
      - "&c这是按钮"
    #在根据对齐方式对齐后坐标再偏移多少 默认0
    textOffsetX: "1"
    textOffsetY: "1"
    textOffsetZ: "1"
    #checked的图片偏移原位置的左上角多少 默认0
    checkedOffsetX: "0"
    checkedOffsetY: "0"
    checkedOffsetZ: "0"
    #这些Dos更多的是用来写配置界面时使用,如果您是开发者这些几乎用不到
    #复选框被选中时触发的Dos(可删除)
    selectedDos:
      - 'message<->你选择上了'
    #复选框被取消选中时触发的Dos(可删除)
    cancelledDos:
      - 'message<->你取消了选择'
    #复选框被鼠标左键点击时触发的Dos(可删除)
    clickDos:
      - "open<->null" #关闭界面
    #复选框被鼠标右键点击时触发的Dos(可删除)
    rightDos:
      - "openChild<->rightMenu"
    #鼠标悬浮在复选框时触发的Dos(可删除)
    hoverDos:
      - "message<->你在thisGui界面悬浮上了复选框组件thisPart"
    #鼠标悬浮离开复选框时触发的Dos(可删除)
    leaveDos:
      - "message<->你在thisGui界面悬离开悬浮复选框组件thisPart" 

文本组件

RGBA颜色详见此处 >>> 传送门

  #文本组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  label:
    type: label
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #文本的对齐方式 左对齐 left  右对齐 right  居中 center (可删除,默认为left)
    align: "center"
    #缩放 注意引号 可用 w h 计算 1为基础大小
    scale: '1'
    #渲染该label使用的ttf字体名 ttf 字体要放入材质包的assets/germmod/font/ 文件夹内,字体名就是文件名去掉.ttf后缀
    #强烈不建议放入过多的字体,会过度消耗玩家客户端内存
    font: "default"
    #加载的特殊字体的文字大小,仅对特殊字体ttf有效 默认为27
    fontSize: 27
    #字体描边 范围 [0-1] 默认为0
    stroke: 0
    #字体描边颜色 默认为 0xFF000001
    strokeColor: 0xFF000001
    #是否渲染阴影 默认为 true
    shadow: true
    #行间距 默认为0
    lineSpace: '0'
    #自动换行的像素长度(在scale之前计算) 每行超过长度的字符串将会自动被换行到下一行 (默认为不自动换行)
    splitWidth: "w*0.4+40"
    #在单行中超过该长度的文本将会被渲染为省略号
    omitWidth: "w*0.1"
    #文本内容
    texts:
      - "使用#C80800FF萌芽引擎#ACDA70D6可以在任何地方使用RGBA&c来控制字体颜色!"
      - "它的格#FA008080式是这样#FFFFAACD的#号后面跟上RGBA值"
      - "像#FFB22222这样#a8F9C4A3其中,#号#C9FDF5E6后面一定要跟8位16#FFB0E0E6进制数"
      - "#FFFF69B4并且这16#FF7B68EE进制数的字母都要大写。"
      - "亲爱的: %player_name%" #支持变量
      - "您的世界: %world_name%"
      - "<click>" #<click>独占一行,代表点一下才会继续显示下面的内容  甚至支持/tellraw 的 json格式 !!!
      - "[{\"text\":\"我骑上了心爱的小摩托~\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/say 嘟嘟嘟嘟嘟~\"},\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"他永远也不退堵车\"}}},{\"text\":\"你好呀你好呀\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":{\"text\":\"溜溜溜啊\"}}}]"
    locationX: "w*0.5"
    locationY: "h*0.5"
    locationZ: "0"
    #每个字弹出的时间 单位ms 不设置是默认直接显示
    popTime: "100"
    #弹出的时候赋予动画
    popAnimations:
      - "default_scale"
    #这个图片的动画(可删除)
    animations:
      - "default_move"

扩展槽位组件

  #扩展槽位组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  slot:
    type: slot
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #槽位的宽和高(可以使用 w h) 例如:size: 'w*0.1' 或 size: 'h*0.1' 或 size: ' w / h * 0.1'
    size: "36"
    #槽位内物品大小 默认和size一样大
    itemSize: "36"
    #是否是禁止所有状态(不可点击,无声音,无悬浮变化)
    invalid: true
    #是否允许与该槽位交互(可以点击,有声音,但是无法进行正常交互操作)
    interact: true
    #交互冷却 单位毫秒 默认冷却为100ms
    interactCooldown: 100
    #为防止槽位的物品混乱 每一个界面内扩展槽位的identity后填写的内容均不能重复!!!
    #如果identity后填写的内容不与原版槽位挂钩,即视为创建一个新的槽位
    #(如果您是开发者 推荐使用 处理该槽位的插件全名小写_用来逻辑判断的字符)
    #GermPlugin提供了一些基本的保存、属性、时装槽为功能,前缀要设置为germplugin_
    identity: "germplugin_default"
    #当槽位内有物品时显示的图片 填gif就可以显示为gif
    #建议此处图片为一张全透明图片
    #图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
    #图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
    fillPath: 'local<->textures/gui/slot.png'
    #当槽位为空的时候显示的图片 填gif就可以显示为gif
    #图片可以是透明图片或者槽位背景图 例如原版头盔槽位的头盔标志
    #图片的本地材质路径地址格式为 local<->本地路径 或者直接输入 本地路径
    #图片的网络材质链接地址格式为 url<->网络链接 例如:url<->https://s1.ax1x.com/2020/06/19/NnqzVK.png
    emptyPath: 'local<->textures/gui/slot.png'
    hoverSound: 'minecraft:ui.button.click'
    clickSound: 'minecraft:ui.button.click'
    locationX: "w*0.7"
    locationY: "h*0.5"
    locationZ: "0"
    #可以直接把下面设置的物品填入槽位
    #配合interact(关闭槽位的互动)的使用 可以做出一个物品的展示界面
    #展示界面的identity 前缀不要加 germplugin_
    itemStack:
      ==: org.bukkit.inventory.ItemStack
      type: DIAMOND_SWORD
      meta:
        ==: ItemMeta
        meta-type: UNSPECIFIC
        display-name: '§2我是名字'
        lore:
          - '§f我是描述第一行'
          - '§7颜色符请用§'

注意:扩展槽位组件可以与原版槽位挂钩,即在identity:填入下表内对应id即可挂钩

Tips:当任意界面内存在对应原版槽位id的扩展槽位,基于萌芽引擎的附属插件才能够通过对应id获取到物品哦

germplugin_main_hand          #对应原版背包槽位里当前主手所在槽位
germplugin_off_hand           #对应原版背包槽位里副手槽位
germplugin_armor_helmet       #对应原版背包槽位里头盔槽位
germplugin_armor_chestplate   #对应原版背包槽位里胸甲槽位
germplugin_armor_leggings     #对应原版背包槽位里裤子槽位
germplugin_armor_boots        #对应原版背包槽位里鞋子槽位
germplugin_backpack_0         #对应原版背包槽位里0号槽位
germplugin_backpack_1         #对应原版背包槽位里1号槽位
...
germplugin_backpack_35        #对应原版背包槽位里35号槽位

{c}扩展槽位内可以与之挂钩的原版槽位id图


物品组件

  #物品组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  item:
    type: item
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #这个物品渲染的大小
    size: '30'
    #width height这两个是因为每个模型的大小都不同 没办法自适应大小判断悬浮 所以可以重新指定判断悬浮的大小区域 不会对实际渲染造成影响
    width: '10'
    height: '10'
    locationX: '100'
    locationY: '100'
    locationZ: "0"
    #配置物品
    itemStack:
      ==: org.bukkit.inventory.ItemStack
      #材料ID或材料名:子ID
      type: DIAMOND_SWORD
      meta:
        ==: ItemMeta
        meta-type: UNSPECIFIC
        display-name: '§2我是名字'
        lore:
          - '§f我是描述第一行'
          - '§7颜色符请用§'
    animations:
      - 'default_rotate'

实体模型组件

  #实体模型组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  entity:
    type: entity
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #该模型头顶的名字 当用 cursor或self模型类型时不用设置该项
    #填写 $cancel 将不显示头顶的名字
    name: "萌芽引擎"
    #模型类型
    #填写 cursor 为玩家面前的生物模型
    #填写 self 为玩家自身模型
    #填写某个原版模型的名字会渲染对应生物出来 名字大全请在wiki上看
    #填写某带有皮肤的UUID会渲染出带有这个皮肤的玩家模型
    model: 'self'
    #模型是否看向鼠标 默认为 true
    followCursor: true
    #如果不是看向鼠标的 可以设置模型看向的位置
    lookAtX: "w*0.5"
    lookAtY: "h*0.5"
    #人物的Y轴旋转角度
    #配合横向滑动条的变量%guiName_partName_scrolledH%可以制作360人物模型预览
    rotateY: "180"
    #模型的大小
    size: "30"
    #width height这两个是因为每个模型的大小都不同 没办法自适应大小判断悬浮 所以可以重新指定判断悬浮的大小区域 不会对实际渲染造成影响
    width: '10'
    height: '10'
    locationX: "w*0.1"
    locationY: "h*0.73"
    locationZ: "0"
    #模型组件整体动画
    animations:
      - "default_rotate"

以下是所有可选用的模型类型

model 对应生物
armorstand 盔甲架
bat 蝙蝠
cavespider 洞穴蜘蛛
chicken
cow
creeper 苦力怕
donkey
dragon 末影龙
elderguardian 远古守卫者
enderman 末影人
evoker 唤魔者
ghast 恶魂
giantzombie 巨人僵尸
guradian 守卫者
husk 尸壳
horse
illusionillager 幻术师
irongolem 铁傀儡
llama 羊驼
magmacube 岩浆怪
mooshroom 哞菇
mule
ocelot 豹猫
parrot 鹦鹉
pig
pigzombie 僵尸猪人
babypigzombie 幼年僵尸猪人
polarbear 北极熊
rabbit 兔子
sheep 绵羊
shulker 潜影贝
silverfish 蠹虫
skeleton 骷髅
skeletonhorse 骷髅马
slime 史莱姆
snowman 雪傀儡
spider 蜘蛛
squid 鱿鱼
stray 流浪者
vex 恼鬼
villager 村民
vindicator 卫道士
witch 女巫
wither 凋灵
witherskeleton 凋灵骷髅
wolf
zombie 僵尸
babyzombie 幼年僵尸
zombiehorse 僵尸马
zombievillager 僵尸村民
babyzombievillager 幼年僵尸村民

输入框组件

  #输入框组件
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  input:
    type: input
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #是否在按下enter后自动清空 默认为 true
    autoClear: true
    #是否将&变为§ 也就是说是否允许玩家输入颜色 默认为 false
    replaceColor: true
    #是否开启默认的背景 默认为true
    background: true
    #在输入框内没有字的时候预览
    preview: '请在这里输入...'
    #限制输入的字符长度 默认为 32
    limit: 7
    #是否作为焦点 默认为 false
    focus: true
    #是否永久聚焦 默认为 false 如果设置为true 不管玩家的鼠标点击了哪里 都可以输入内容进去
    permanentFocus: false
    #正则验证 符合正则表达式的才允许输入进去 默认为空
    # [^(0-9)] 填入后只能输入数字
    # [^(A-Za-z)] 填入后只能输入字母
    # [^(\u4e00-\u9fa5)] 填入后只能输入中文
    # 更多表达式自行百度
    regular: "[^(0-9)]"
    #是否实时同步内容到服务端 默认为 false(开发者使用的选项,写配置文件直接删去)
    sync: false
    #填入clear 或者 留空 为清空输入框 默认为 空
    #变量库中会有一个变量实时等于该输入槽中的内容 可以在其他dos中引用 变量为 %界面名_输入槽索引名_input% 该界面为 %default_input_input%
    input: '默认内容'
    #是否使失效 默认为 false
    invalid: false
    width: "w*0.4"
    height: "h*0.1"
    #文本自动换行模式(超过输入框的文本换行) 默认为不换行
    autoWrap: false
    locationX: "w*0.2"
    locationY: "h*0.7"
    locationZ: "0"
    #为了方便 专门为input添加了变量%input% 只有在input中 %input% 会被替换为输入槽的内容
    enterDos:
      - "opcmd<->say &a亲爱的 &e%player_name% &a想说 %input%"

滚动框组件

  #滚动框组件 从滚动框组件开始 下面填写的任何组件都只会在滚动框区域内显示
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  scroll:
    type: scroll
    # 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
    tooltip:
      - '&c我是悬浮的时候被显示出来的那个'
    #是否要取消滚动框的所有交互 默认为false
    invalid: false
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #滚动列表显示的宽度
    width: '300'
    #滚动列表显示的高度
    height: '200'
    #滚动列表显示的初始坐标
    locationX: '100'
    locationY: '100'
    # 是否开启相对坐标模式
    # 开启后滚动框的背景,滑块栏和内部组件将会自动从滚动框设置的坐标为起点计算坐标 默认为false
    # 强烈建议把此选项开启 后期版本可能会强制开启此选项
    relative: false
    #是否允许拖拽式的滑动滚动框 默认为 false
    #开启后可以点击滚动框内部区域进行移动
    scrollDraggable: false
    #直接给滚动框添加背景图片
    background:
      #组件类型
      type: 0
      #背景图片
      path: 'local<->textures/misc/translucent.png.png'
      #显示起始坐标(可以删去,默认为上面滚动列表的坐标参数)
      #注意该组件的坐标默认是从上面滚动框坐标的位置开始的
      locationX: "-2"
      locationY: "-2"
      #宽度width和高度height也同样支持运算符和 w h 变量 w代表整个MC的宽度 (可以删去,默认为上面滚动列表的大小参数)
      #注意该组件的大小是在上面滚动框的大小上改变的
      width: "4"
      height: "4"
    #竖向滑块的设置 (可以为任意材质的部件,该部件的坐标无需设置,将由竖向滑块栏决定)
    sliderV:
      type: 3
      #滑块默认的图片、GIF(如果填的是gif文件就会渲染成gif)
      defaultPath: 'local<->textures/misc/warn.png'
      #鼠标悬浮到滑块时的图片、GIF(如果填的是gif文件就会渲染成gif)
      hoverPath: 'local<->textures/misc/logo.png'
      width: "50"
      height: "50"
      #对齐模式 可删除
      align: "center"
      #默认字符串将显示在按钮中间,支持PAPI变量(可删除)
      texts:
        - "&e我是竖向滑块"
    #滑块栏的坐标
    locationVX: '100'
    locationVY: '100'
    #竖向滑块栏的宽度、高度
    widthV: '20'
    heightV: '200'
    #是否关闭竖向滑块 默认为为true
    invalidV: true
    #竖向可滚动的像素
    #当填写 auto 时,会自动计算并替换为内部组件应该可滚动的最大竖向距离
    #当然你想让他可以多滚一点可以写 auto + 5 之类的公式
    scrollableV: '1000'
    #已经滚动的像素 要小于等于可滚动的像素
    scrolledV: '500'
    #横向滑块的设置 (可以为任意材质的部件,该部件的坐标无需设置,将由横向滑块栏决定)
    #横向滑块栏位和竖向滑块栏可以同时存在,这个时候你就要问了,那么鼠标滚轮控制哪个滑块呢
    #目前的判断机制是 鼠标更靠近哪个滑块 就是控制哪个滑块
    sliderH:
      type: 3
      #滑块默认的图片、GIF(如果填的是gif文件就会渲染成gif)
      defaultPath: 'local<->textures/misc/warn.png'
      #鼠标悬浮到滑块时的图片、GIF(如果填的是gif文件就会渲染成gif)
      hoverPath: 'local<->textures/misc/logo.png'
      width: "50"
      height: "50"
      #对齐模式 可删除
      align: "center"
      #默认字符串将显示在按钮中间,支持PAPI变量(可删除)
      texts:
        - "&e我是横向滑块"
    #横向滑块栏的坐标
    locationHX: '100'
    locationHY: '100'
    #横向滑块栏的宽度、高度
    widthH: '200'
    heightH: '20'
    #是否关闭横向滑块 默认为为true
    invalidH: true
    #横向可滚动的像素
    #当填写 auto 时,会自动计算并替换为内部组件应该可滚动的最大竖向距离
    #当然你想让他可以多滚一点可以写 auto + 5 之类的公式
    scrollableH: '1000'
    #已经滚动的像素 要小于等于可滚动的像素
    scrolledH: '500'
    #在滚动框内的部件的部件设置(额 没错 任意部件都可以往里面填)
    scrollableParts:
      label:
        type: label
        #文字的对齐方式 左对齐 left  右对齐 right 居中 center  可删除 默认为left
        align: "center"
        #缩放 注意引号 可用 w h 计算 1为原大小
        scale: '1'
        #字符串
        texts:
          - "亲爱的: %player_name%"
          - "您的世界: %world_name%"
          - "<click>" #<click>独占一行,代表点一下才会继续显示下面的内容
        locationX: "w*0.5"
        locationY: "h*0.5"
        locationZ: "0"
        #这个图片的动画(可删除)
        animations:
          - "default_move"

画布组件

  #画布组件(相对坐标,组件集)
  #可以把多个组件集合成一个
  #可以更方便的设置符合组件的坐标
  #该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
  canvas:
    type: canvas
    # 是否开启这个组件 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
    # 如果将 enable 后面的 true或false 设置某个条件 将自动匹配条件开关
    # 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
    enable: true
    #当界面打开的时候 该组件第一次加载时触发该Dos
    initDos:
      - "message<->我是界面 thisGui 的组件 thisPart"
    #画布的起点坐标
    locationX: "w*0.26"
    locationY: "h*0.11"
    #当使用layout时必须设置该参数
    width: "100"
    #当使用layout时必须设置该参数
    height: "100"
    #直接给画布添加背景
    background:
      #组件类型
      type: texture
      #背景图片
      path: 'local<->textures/misc/translucent.png.png'
      #显示起始坐标(可以删去,默认为上面滚动列表的坐标参数)
      #注意该组件的坐标默认是从上面滚动框坐标的位置开始的
      locationX: "-2"
      locationY: "-2"
      #宽度width和高度height也同样支持运算符和 w h 变量 w代表整个MC的宽度 (可以删去,默认为上面滚动列表的大小参数)
      #注意该组件的大小是在上面滚动框的大小上改变的
      width: "4"
      height: "4"
    #画布组件也可以设置拖动 删掉代表无法拖动
    drag:
      #可拖动区域的坐标
      locationX: "0"
      locationY: "0"
      #可拖动区域的宽度
      width: "100"
      #可拖动区域的高度
      height: "100"
    #可以让整个画布一起运行动画
    animations:
      - "default_rotate"
    #画布内布局器
    layout:
      #布局器类型 FLOW 将根据组件的宽高 自动瀑布流式的填充进容器
      type: FLOW
      # 组件间隙
      gapX: "5"
      gapY: "5"
    #相对于画布的组件
    relativeParts:
      part1:
        type: gif
        #同样支持url<->
        path: 'local<->gif/ghast.gif'
        #这个gif播放几遍后停止,-1是无限循环
        cycle: -1
        #该坐标会加上画布的起点坐标,即相对坐标
        locationX: "w*0.26"
        locationY: "h*0.11"
      #画布组件(可以无限套娃)
      canvas2:
        locationX: "w*0.26"
        locationY: "h*0.11"
        #相对于canvas2画布的组件
        relativeParts:
          part1:
            type: gif
            #同样支持url<->
            path: 'local<->gif/ghast.gif'
            #这个gif播放几遍后停止,-1是无限循环
            cycle: -1
            #该坐标会加上画布的起点坐标,即相对坐标
            locationX: "w*0.26"
            locationY: "h*0.11"
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/germmc/wiki-germ-engine.git
git@gitee.com:germmc/wiki-germ-engine.git
germmc
wiki-germ-engine
WikiGermEngine
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891