该行配置文件位于服务端
plugins/GermPlugin/item文件夹内详见此处 >>> 传送门
#在游戏中按 F3+H 然后鼠标放在物品上,可以看真实的物品名和ID
#索引名 无意义随便设置
default_armourersWorkshop_item:
# 代表这是一个时装工坊的模型
type: 'armourersWorkshop'
# 当type设置为 armourersWorkshop 时路径格式
# 在材质包中时省略路径assets/germmod/skin
# 在萌芽缓存中省略路径GermCache/skin
path: 'default_chest.armour'
############################################
# 时装工坊模型的物品图标设置
# 在设置了图标的时候优先显示图标,否则直接预览模型
icon:
# 时装工坊模型的图标在材质包中时省略路径assets/germmod/textures/skin
# 时装工坊模型的图标在萌芽缓存中省略路径GermCache/textures/skin
# 允许gif
path: 'logo.png'
#图标在GUI中的 偏移值 设置了可以让图标移动中心位置
offsetX: 0.0
offsetY: 0.0
offsetZ: 0.0
#在GUI中缩放设置 不能小于 0
scale: 1
#在手中大小设置 不能小于 0
size: 1
############################################
# 匹配该模型的条件
matchCondition:
# 匹配该模型的材质要求
# 格式 物品名:子ID 或者 物品ID:子ID
# 某些物品会因为客户端的英文名字和服务端的不同报错,推荐填数字ID
type: 'DIAMOND_SWORD'
#匹配
# 当描述或者名字含有下方字符串时会替换到设置的模型
match: "测试武器"
# 当装备的名字等于该值的时候匹配模型
name: "测试武器"
# 当装备的名字存在该字符时会匹配
name2: "武器"
# 当装备的某行描述等于设定的值时匹配模型
# 格式为:行号<->值 (行号从0开始为第一行)
lore:
- "2<->&5&o测试武器"
- "7<->测试武器"
# 当装备的某个nbt等于设定的值时匹配
nbt:
- "nbtKey1<->测试武器"
- "parentNbt.childNbt<->测试武器" #当有多层NBT时用.隔开
# nbt1不等于测试武器时匹配成功
not_nbt:
- "nbt1<->测试武器"
# 脚本匹配 入参ItemStack 需要返回bool return true为该条件通过
script: |
var name = Utils.getItemName(ItemStack);
if(name.contains("+1")){
return true;
}
return false;
# 匹配时需要满足的表达式 更多表达式请看wiki https://wiki.germmc.com/gui/arithmetic.html
expressions:
- "%player_level% > -1"
# 匹配手持该物品的玩家是否正在钓鱼
- "str(%matchEntity_fishing%,true)"
# 匹配手持该物品的生物是否拥有权限 germ_item_1 (需要注意的是,如果是掉落在地面上的道具,默认的matchEntity是玩家自己,这个表达式会永久不通过)
- "str(%player_has_permission_germ_item_1:#matchEntity_name#%,true)"
# 匹配手持该物品的生物是否是自己 并且是第一人称 其他人称 FIRST_PERSON THIRD_PERSON THIRD_PERSON_REVERSE
- "str(%player_name%,%matchEntity_name%) && str(%client_person%,REAL_FIRST_PERSON)"
你可以在下载时装工坊的时装文件,或者自己动手制作。然后将您的时装文件存放于萌芽资源包内,资源包内存放路径详见 >>>传送门
在服务端plugins/GermPlugin/item文件夹内按照上方的配置文件进行配置,然后保存配置文件
首先,在你想要读取时装的自定义GUI界面内,按照下面格式添加时装扩展槽位,
#扩展槽位组件
#该索引名(下面第一行的名称)仅为示例,请在正式配置时进行修改,每个组件的索引名均不可重复!!
skin_slot:
type: slot
# 组件开关 (false后关闭任何效果、显示、互动、功能;删除整行后默认为不显示)
# 如果将 enable 后面的 true或false 设置为某个条件 将自动匹配条件开关
# 例如填写 enable: "%player_health% = 100" 当玩家的血量到达100时才会开启该组件
enable: true
#悬浮时候显示的tooltip就跟原版悬浮到道具时显示的lore界面一样(删除整行后默认为不显示)
tooltip:
- '&c我是悬浮的时候被显示出来的那个'
#槽位的宽和高(可以使用 w h) 例如:size: 'w*0.1' 或 size: 'h*0.1' 或 size: ' w / h * 0.1'
size: "36"
#是否是禁止所有状态(不可点击,无声音,无悬浮变化)
invalid: true
#是否允许与该槽位交互(可以点击,有声音,但是无法进行正常交互操作)
interact: true
#为防止槽位的物品混乱 每一个界面内扩展槽位的identity后填写的内容均不可重复!!!
#(如果您是开发者 推荐使用 处理该槽位的插件全名小写_用来逻辑判断的字符)
#建议前缀默认设置为germplugin_skin_
identity: "germplugin_skin_1"
#当槽位内有物品时显示的图片 填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"
设置完identity后,将第三步设置的时装槽位的identity填入服务端内的SlotConfig.yml中对应的配置内,对应的配置行如下 😅
#对于槽位组件的时装配置
#在下面配置过的identity的槽位内放入时装后 才会在玩家身上显示时装
skinSlotSets:
- "germplugin_skin_1"
- "germplugin_skin_2"
此时,进入游戏内,手持任意一个物品,这里我们以 原版物品: 箭 作为例子

接着,我们为这个物品添加lore,这里我们以本节开头的lore 测试 为对应的判定lore,
然后,一个时装就出现在了你的手上!!

这里,我们将右边那个扩展槽位的identity改为germplugin_skin_1,
并将我们刚刚制作好的时装放入槽位内!噔噔噔!!!尽情欣赏你的时装吧!!!

在客户端配置文件内会有这样的选项,请仔细审阅后合理安排,并做出调整
settings {
# 在开启更多动作时
# 展示时装小臂
# 因为时装并未有小臂骨骼,目前并不能完美兼容
# 开启此选项将隐藏胳膊显示时装
# 否则会隐藏胳膊时装显示胳膊
B:armorSkinArm=true
# 是否关闭时装功能
B:disableSkin=false
# 是否开启类似时装工坊中的时装武器覆盖在原版钻石剑中的逻辑
B:enableArmorSkinOverride=false
# 在槽位中预览时装
B:previewSkinInSlot=true
# 在槽位中预览时旋转时装
# 前提是开启了 previewSkinInSlot
B:previewSkinRotateInSlot=true
}