这里是对Config.yml中一些配置的详细解释
#配置版本号 不要改
Version: "1.0"
#验证CDK
VerifyCDK: ""
#材质包密码设置
#格式是 材质包名字<->设置的密码 (不加后缀,例如default.zip就写default)
ResourcePacks:
- "default1<->123456"
- "default2<->456789"
#默认为sqlite(单端常用)的储存方式,使用MySQL时将下方的配置替换进 DatabaseOptions
#新增hikari_sqlite,对比sqlite拥有更强的性能
#Driver: hikari_mysql #注意mysql版本不能低于5.7,请开发者注意不要在PlayerJoinEvent获取玩家槽位数据,在SafePlayerLoadEvent事件之后
#PoolSize: auto #连接池大小,填auto将会自动计算
#Link: 'jdbc:mysql://localhost:3306/数据库名?user=root&password=密码&autoReconnect=true&useSSL=false&characterEncoding=UTF-8'
#
#Driver: mysql #已被弃用,请使用hikari_mysql 可以使用 gp misc 查看升级帮助
#Link: 'jdbc:mysql://localhost:3306/数据库名?user=root&password=密码&autoReconnect=true&useSSL=false&characterEncoding=UTF-8'
#
#当Driver被指定为hikari_mysql时, 如果添加一行 EnableV2: true, 即可使用V2存储器
#对于普通用户而言, V2存储器不存在任何优势
#对于插件开发者而言, V2存储器修改了读写锁逻辑
#正常情况下sqlite和hikari_mysql模式下, 通过GermSlotAPI进行的物品读写行为是 synchronized(GermSlotAPI.class) 的
#而V2存储器的读写行为不是全局锁, 是针对玩家的锁, 这个锁可以通过 GermSlotAPI.SlotDAOHandler.getLock 方法获取
DatabaseOptions:
Driver: 'sqlite'
Link: 'jdbc:sqlite:plugins/GermPlugin/sqlite.db'
Settings:
#是否开启指令运行调试
#开启后会在后台打印运行的指令
#打印自动注册安全指令
debugCmd: false
#萌芽变量解析线程数量,使用到的变量越多,线程数量就设置的越多
placeholderThread: 2
#是否启动代理模式 启动代理模式后需要装GermBC插件
#在GermBC被标记为相同分组的服务器之间跳转不会清除萌芽数据重新加载 大大提高了跨服速度,减少了流量使用
proxyMode: false
#当前服务端是否处于生产环境 如果是生产环境下将不读取客户端GermCache中的非缓存资源 默认false
serverProdEnv: false
#是否要取消原版的横扫暴击声音和特效(会导致他们在何时都无法出现)
cancelSweepCritEffect: false
#抛射物丢出时保留物品名字(主要用于抛射物模型替换,可以将雪球,经验瓶,等替换个模型,可能和其他插件冲突)
projectileLaunchKeepName: false
#拾取模型方块物品时是否根据模型配置重设物品名和lore
modelBlockKeepItemMeta: false
#玩家处于观察者模式是否取消按键事件
spectatorCancelKeyEvent: false
#是否强制使用萌芽引擎才可以进入游戏
forceGermEngine: false
#因为强制使用萌芽引擎而被踢出服务器时的消息
forceGermEngineKickMessage: "§c服务器强制使用 §7GermEngine"
#热更新资源文件夹 如果该文件夹存在 会将该文件夹的内容同步到客户端的GermCache中
#如果是群组服 建议只放在大厅服
hotCachePath: "/home/germmc/HotCache"
#发送配置功能的 debug模式 如果为true的话 黑白名单将失效 会把所有文件发送
sendSrcDebug: true
#发送到客户端的配置或文件夹的黑名单 只要前面匹配上 就不会发送
sendSrcBlackList:
- "entity/xxx/"
- "gui/debug/x"
- "item/xxxdir/xx"
#发送到客户端配置的白名单 只有在白名单内的 才会发送
#如果同时存在黑名单和白名单,黑名单优先级更高
#sendSrcWhiteList:
# - "entity/xxx/"
# - "gui/x"
# - "item/xdir/xx"
#进入强制缓存模式的文件夹(所有在配置中配置的云连接将会在玩家进入客户端时直接加入缓存队列)
#有什么影响?例如这会让玩家打开图床界面时不会有未加载出来的图片,但是玩家的客户端占地面积会很大
forceCacheFile:
- "bend"
- "entity"
- "item"
#如果在dos里运行opcmd或者servercmd指令时发现无效,请按下面介绍设置安全指令
#
#出于对安全的考虑,存在于该列表中的指令,才允许被DOS中的servercmd、opcmd运行
#禁止运行很敏感的指令 例如 op、gamemode、等
#填写方式为 指令前缀 + 指令参数... (指令参数可用*代表指令中的一个参数,也可以固定)
#指令长度必须相等,例如要执行指令 money give GermMC 1 填写 money * 是不行的,要填写money * * *
SafetyCmd: #全部可删除
- "warp spawn"
- "home jia1"
- "mv tp fb1"
#不处理的变量前缀列表
BlackPlaceholder:
- "trmenu_js_"
- "trchat_js_"
- "chemdah_"
# # 允许处理的变量前缀列表
# # 当 WhitePlaceholder 配置项存在时, 只有配置内的变量允许被解析, 也就是说 BlackPlaceholder 配置项将失效
# WhitePlaceholder:
# - "vault_"
#加入服务器时赋予玩家这些HUD
PermanentHud: #全部可删除
- "logo"
#按键绑定 玩家触发会输入里面的指令
SimpleKeyBinding: #全部可删除
#KeyDown代表按下按键
#22为按键ID ID列表:https://wiki.germmc.com/turtorial/keycode.html
#组合键可以这样写
#KeyDown_22_23_24
#这样代表依次按下对应的按键
#
#也可以直接写@加大写按键全称来指定按键 例如 KeyDown@HOME
#组合键这样写 KeyDown@U@K@I
#
#除此之外 KeyDown@MLEFT 代表鼠标左键(按键ID为1000) KeyDown@MRIGHT 代表鼠标右键(按键ID为1001) KeyDown@MMIDDLE 代表鼠标中键(按键ID为1002)
KeyDown@U:
- "opcmd<->say %player_name% Key U Down!"
KeyUp@U:
- "opcmd<->say %player_name% Key U Up!"
#高级按键绑定 玩家可以自己在设置内设置按键
AdvancedKeyBinding: #全部可删除
# 格式 KeyDown或者KeyUp 按键分类 按键名字 默认按键
# 在客户端可以使用 %client_keybinding_测试按键_按键1% 例如使用该指令获得玩家设置的键位值 /gp hud dos GermMC message<->%client_keybinding_测试按键_按键1%
# 如果是自己使用api注册的keybinding可以使用 %client_keybinding_index% 获取对应的键位值
# 支持复合按键 前置仅支持ALT SHIFT CONTROL+任意按键
KeyDown@测试按键@按键1@U:
- "opcmd<->say %player_name% Advanced Key U Down!"
# 如果keydown/up后面跟上了 &GUI 则在打开GUI的时候也会触发按键 注意大小写 &GUI
KeyDown&GUI@测试按键@按键2@K:
- "opcmd<->say %player_name% Advanced Key K Up!"
# 复合按键写法示例
KeyDown@测试按键@按键2@ALT+H:
- "opcmd<->say %player_name% Advanced Key K Up!"
#完整版功能
#玩家名字上方的Tag设置
PlayerTag:
#是否开启该功能
enable: false
#名字下方的字 只支持一行
below: '&b等级 %player_level% 婚姻状态 ❤'
#名字
#修改名字需要打开客户端GermMod.cfg中的renderPlayerCustomName选项
name: '阿巴巴 %player_name% 阿巴巴'
#名字上方的字 支持多行
above:
- "职业:[萌芽骑兵]"
- "生命 %player_health%"
#关于客户端的一些参数设置
#萌芽给碰撞箱显示添加了权限控制 germplugin.f3.b 玩家需要有这个权限f3+b才可以看到碰撞箱
#高级展示框权限 germplugin.f3.h
ClientOptions:
#开启客户端debug模式,开启后会打印报错堆栈
Debug: false
#是否让客户端显示生物名字时支持分隔符\n 默认false
SplitShowName: false
#自定义客户端变量 参数 identity variable 该脚本需要返回字符串
#输入指令 /gp hud dos 你的ID message<->%tfun_129_4% 即可测试
PlaceholderReplacer:
#脚本的identity
tfun: |
Log.chat("identity:"+identity);
Log.chat("variable:"+variable);
return "666";
#客户端标题 可以调用客户端脚本修改标题,实现公告等功能 Utils.setClientTitle("1111");
# 你可以可以输入 "gp hud dos ID updateClient<->title@Minecraft [1.12.2] Powered by GermEngine" 来更新客户端标题
ClientTitle: "Minecraft[1.12.2] (Powered by GermMC)"
#设置鼠标上物品的大小 默认16px 支持 w h和计算
CursorItemSize: "16"
#设置客户端的quickbar的可用长度,如果设置为8,那么玩家没有办法主动选中第九格快捷栏,但是可以通过萌芽的gp misc lock指令方式锁定到第九格快捷栏
QuickbarLength: 9
#挂机中的玩家是否可以被其他玩家推走(挂机的判断机制是站立不动) 默认不能推
AfkPush: false
#指向实体的时候显示名字(默认为ture是原版的逻辑)
PointShowName: true
#点击原版槽位冷却 仅预防快速点击类刷物品BUG -1关闭
InventoryClickCooldown: -1
# 第三人称瞄准修复 第三人称时 修复准星和玩家头部不在一条线上时射不准的问题 例如射箭时命中准星所指的位置 [DLC功能]
# 如果有不想影响准星的实体可以填写在下方的 UnableLock
AimFixYaw: false
AimFixPitch: false
#设置萌芽控制后的第三人称视角
PlayerPerspective:
#开启萌芽对第三人称的控制 (该选项原客户端控制) 默认为true
#1.开启后关闭反向的第三人称
#2.开启后按下ALT可进入自由观看视角
enable: true
#第三人称是否要渲染准星 (该选项原客户端控制)
#如果没有开启可以按下(~)键来显示准星
crosshair: true
#视口X轴位置(左右位置)
viewportX: 0
#视口Y轴位置(上下位置)
viewportY: 0
#视口Z轴位置(远近位置)
viewportZ: 0
#是否自定义调整视口位置
#按下(V)键滑轮可以拉镜头的远近,鼠标左键按住可以调整左右距离,鼠标右键按住可以调整上下距离。
#玩家调整后的镜头会保存在玩家客户端 下次启动会自动读取
#可以在给后台给玩家执行/gp hud dos <玩家> updateClient<->viewport@reset 指令为玩家重置自定义的视角
customize: true
#可调整的X范围 默认[-5,5]
customizeX: [ -5, 5 ]
#可调整的Y范围
customizeY: [ -5, 5 ]
#可调整的Z范围
customizeZ: [ -5, 5 ]
#客户端哪些世界地图
ClientWorlds: [ ]
# #客户端配置格式2
# ClientWorlds:
# #索引名不能重复
# indexName:
# #全程匹配
# name: fuben1
# #存在匹配
# match: _fuben1_
# #客户端地图名字
# world: world
#掉落物配置
Drop:
# 是否进行上下晃动
shake: true
# 是否进行旋转
rotate: true
#禁止玩家使用~键锁定的生物列表
#可以填生物的类型 如 zombie
#也可以填生物自定义名称的开头,例如§c§l超级僵尸,填写§c§l超、§c§l超级僵或者§c§l都会使其无法被锁定
#给予玩家germplugin.lock.entity权限才可以使用锁定功能
UnableLock:
- "§神§秘§代§码"
- "unhas_zombie"
#该功能 boat 不可用
#关于游戏内修改光标的设置
Cursor:
#是否禁用修改光标
disable: true
#显示的鼠标宽高
width: 32
height: 32
#鼠标纹理中哪个点是响应点
#从贴图的左下角为原点
xHotspot: 0
yHotspot: 32
#默认状态的光标地址 图片仅可以是16的倍数 支持GIF 暂时不支持网链
defaultPath: "textures/misc/cursor.png"
#点击状态下的光标地址 图片仅可以是16的倍数 支持GIF 暂时不支持网链
clickPath: "textures/misc/cursor_click.png"
#关于游戏内HUD的参数设置
HUD:
# 设置true关闭原版的血量条
disableHealth: false
# 设置true关闭原版的经验条
disableExperience: false
# 设置true关闭原版的饥饿条
disableFood: false
# 设置true关闭原版的快捷栏
disableQuick: false
# 设置true关闭原版的盔甲栏
disableArmor: false
# 设置true关闭原版的骑马跳跃条
disableJump: false
# 设置true关闭原版的TAB列表
disableTab: false
# 设置true关闭原版的聊天框
disableChat: false
# 设置true关闭原版的药水显示
disablePotion: false
# 设置true关闭原版的水下氧气显示
disableAir: false
# 设置true关闭原版的骑马时马的血量
disableHealthMount: false
# 客户端版血量压缩
healthScale: -1 #压缩到20点血
# 客户端血量除数 设置200 那么代表玩家200点血才是半颗心
healthDivisor: -1
# 金苹果护盾压缩
absorbScale: -1
# 坐骑血量压缩
mountHealthScale: -1
# BossBar的位置 -1为不修改 支持 w h 变量
bossBarOffsetY: "-1"
#3D伤害显示
3DDamageDisplay:
#是否关闭 这个只会关闭默认的伤害显示
disable: true
#开启伤害显示(与上面的disable不同的是,false时只会关闭扣血的显示,回血还会继续显示)
enableDamage: true
#是否开启不被遮挡 可以透过墙体看见 默认为false 该选项也会影响 CustomDamageDisplayChannel
topRendering: false
#渲染距离 默认32 该选项也会影响 CustomDamageDisplayChannel
renderRange: 32
#指定某些生物不显示伤害
#可以填生物的类型 如 zombie
#也可以填生物自定义名称的开头,例如§c§l超级僵尸,填写§c§l超、§c§l超级僵或者§c§l都会使其不会显示伤害
unshow:
- "§神§秘§代§码"
- "unhas_zombie"
#伤害显示的时间
live: 2000
#整个伤害显示的整体动画
animations:
fade:
type: 2
delay: 1500
cycle: 1
permanent: true
duration: 500
from: 1
to: 0.1
#伤害显示用到的动画
move:
type: 0
delay: 0
cycle: 1
permanent: true
duration: 800
moveX: "if(rnd(1)>0.5,-rnd(1),rnd(1))"
moveY: "0.5+abs(rnd(1.8))"
moveZ: "if(rnd(1)>0.5,-rnd(1),rnd(1))"
bigger:
type: 3
delay: 0
cycle: 1
permanent: true
duration: 1000
from: 1
to: 3
# 自定义伤害显示 与上面不同的是 这里需要调用才会显示 使用GermPacketAPI或者指令调用dos显示 具体dos在gui/default.yml搜索showDamage查询
# 可以使用 /gp hud dos <玩家id> showDamage<->damage1@-1231@%player_posX%@%player_posY%+1@%player_posZ%
CustomDamageDisplayChannel:
#索引名,在dos中引用的时候用
damage1:
# 伤害显示的图片
# 这里的图片有要求 可以解压mod找到assets/germmod/textures/misc/attack.png图片改一改
path: "textures/misc/attack.png"
# 伤害显示的时间
live: 2000
# 文字与图片UV的匹配
mapping:
#负数匹配
negative:
#只支持单字符
"1":
#startU
su: 0
#startV
sv: 0
eu: 50
ev: 50
#m可以作为匹配miss
"m":
su: 50
sv: 0
eu: 100
ev: 50
#正数匹配
positive:
"1":
su: 0
sv: 50
eu: 50
ev: 100
#还支持这种格式 也推荐这种格式 su;sv;eu;ev
"2": "10+10;20;30;40"
# 整体伤害动画
animations:
fade:
type: 2
delay: 1500
cycle: 1
permanent: true
duration: 500
from: 1
to: 0.1
#伤害显示用到的动画
move:
type: 0
delay: 0
cycle: 1
permanent: true
duration: 800
moveX: "if(rnd(1)>0.5,-rnd(1),rnd(1))"
moveY: "0.5+abs(rnd(1.8))"
moveZ: "if(rnd(1)>0.5,-rnd(1),rnd(1))"
bigger:
type: 3
delay: 0
cycle: 1
permanent: true
duration: 1000
from: 1
to: 3
#自定义HUD消息通道
CustomMsgChannel:
#索引名,在dos中引用的时候用
anchor1:
#enable可以用条件控制开关(客户端变量) 建议用 cache_开头的客户端变量 给玩家选项去控制开关
enable: str(%cache_system_anchor1%,true)
#type 目前只有anchor锚点通道一种
type: anchor
#设置应用的字体
font: minecraft
#向哪个方向排列 支持 DOWN UP
direction: DOWN
#对齐方式 left center right
align: center
#显示位置
x: w*0.5
y: h*0.2
#同时显示的最大数量
max: 20
#每条的间隙
gapY: 4
#整体的缩放
scale: 1
#显示时间
stay: 4000
#快速队列 如果开启后 有新的消息会立刻顶掉最早的消息
quick: false
#客户端chat消息转发,可以阻止或者将消息转发到hudMsg 可使用的变量 message chatType=SYSTEM,CHAT,GAME_INFO
#下面的示例 会将聊天中包含'左边'的消息转发到左边 '中间'的消息转发到中间 '自定义'的消息转发到anchor1
# 如果要加更多转发 就复制一行改一下即可
# return true 时会取消该条chat消息
# 要使用就删掉 -example
ChatForward-example: |
var map = new('java.util.HashMap');
map.put('左边','left');
map.put('中间','center');
map.put('自定义','anchor<->anchor1');
if(chatType.equals('SYSTEM')){
var colorlessMsg = Utils.stripColor(message);
for (let entry : map.entrySet()){
var key = str(entry.getKey());
var value = str(entry.getValue());
if(colorlessMsg.contains(key)){
if('left'.equals(value)){
Utils.sendLeftMsg(message);
return true;
}
if('center'.equals(value)){
Utils.sendCenterMsg(message);
return true;
}
if(value.startsWith('anchor')){
var anchorName = value.split('<->',2)[1];
Utils.sendAnchorMsg(anchorName,message);
return true;
}
}
}
}
return false;