本篇教程由作者设定未经允许禁止转载。
前言:教程适用版本为MC1.19.2,理论兼容更高版本
有些mod提供了超模、导致崩溃、或者是别的原因不想要的附魔,
可以通过以下事件进行简单地移除:
实体装备更换事件 LivingEquipmentChangeEvent
能操作物品附魔的事件不少,
但考虑到性能开销等因素,
本教程只提供一种个人常用的事件进行分享。
脚本路径(以开启版本隔离为例):
游戏文件夹\.minecraft\versions\版本名称\kubejs\startup_scripts\ForgeEvents.js
ForgeEvents.js可按规范任意命名,不要用中文;
ForgeEvents.onEvent('net.minecraftforge.event.entity.living.LivingEquipmentChangeEvent',e=>{
let { entity,from,to,slot }=e;
global.EquipmentChange(e);
})
/** 任意实体 任意槽位附魔修正
* ForgeEvents无法被热重载,但是可以跟global对接
* 用指令/kubejs reload startup_scripts 可对global内代码进行热重载
* @param {Internal.LivingEquipmentChangeEvent} e
*/
global.EquipmentChange = e =>{
let {to}=e;
// 此处添加附魔
let enchantments=[
'minecraft:sweeping',
'minecraft:efficiency'
];
enchantments.forEach(enc=>{
to.getEnchantmentTags().removeIf(
a=> a.asString.includes(enc));
})
}
脚本完成后,需要重启一次游戏加载ForgeEvents
效果图:当穿在身上时,附魔就会被移除
无论主副手还是防具槽都能触发。
备注:某些不需要装备/手持的物品不会受此事件影响,如有需求应该要考虑去监听背包变动事件。
24.8.7更新:
*百科代码块显示有点怪,改用图片+语法高亮
效果图: