6.0 (1.19.2)
预计阅读时间: 3 分钟
适用于 Minecraft 1.19.2 的重大更新
onEvent()
onEvent('event', event => {}) 语法被 SomeEventGroup.someEventName(event => {}) 替代
BlockEvents.rightClicked(event => {
if(event.block.id === 'minecraft:dirt') {
console.info('Hi!')
}
})
``` | ```javascript
onEvent('block.right_click', event => {
if(event.block.id === 'minecraft:dirt') {
console.info('Hi!')
}
})
不仅如此,新事件还支持 ID 和其他事物的额外参数!您现在可以选择让每个 id 有自己的事件处理器:
BlockEvents.rightClicked('minecraft:dirt', event => {
console.info('Hi!')
})
BlockEvents.rightClicked('minecraft:stone', event => {
console.info('Bye!')
})
``` | ```javascript
onEvent('block.right_click', event => {
if(event.block.id === 'minecraft:dirt') {
console.info('Hi!')
} else if(event.block.id === 'minecraft:stone') {
console.info('Bye!')
}
})
一些事件需要 ID,例如注册表和标签事件:
StartupEvents.registry('item', event => {})
``` | ```javascript
onEvent('item.registry', event => {})
ServerEvents.tags('item', event => {})
``` | ```javascript
onEvent('tags.items', event => {})
使用参数在 CPU 上实际上比检查某些 event.id == 'id' 更快
您可以在这里找到新事件的完整列表。
onForgeEvent()
onForgeEvent('package.ClassName', event => {}) 已被 ForgeEvents.onEvent('package.ClassName', event => {}) 替代
ForgeEvents.onEvent('net.minecraftforge.event.level.BlockEvent$PortalSpawnEvent', event => {})
``` | ```javascript
onForgeEvent('net.minecraftforge.event.level.BlockEvent$PortalSpawnEvent', event => {})
新!它现在支持通用事件:
ForgeEvents.onGenericEvent('net.minecraftforge.event.AttachCapabilitiesEvent', 'net.minecraft.world.entity.Entity', event => {})
服务器设置
settings.log... 属性已从服务器脚本中移除,并取而代之的是移到了 local/kubejsdev.properties 文件。默认情况下,它不会随整合包一起发送,但您可以将 saveDevPropertiesInConfig 更改为 true,以改为将文件保存在 kubejs/config/dev.properties 中。
java()
java('package.ClassName') 已被 Java.loadClass('package.ClassName') 替代
const CactusBlock = Java.loadClass('net.minecraft.world.level.block.CactusBlock')
``` | ```javascript
const CactusBlock = java('net.minecraft.world.level.block.CactusBlock')
在 Java 工具类中可能会有更多的反射辅助方法,例如列出类中的所有字段和方法等。
再见包装类
所有原版类都不再是包装器 - EntityJS、LevelJS、ItemStackJS、IngredientJS 和其他类都已消失。这可能会引入一些错误,但总的来说,应该会让与 Minecraft 和其他模组的交互变得更加容易。几乎所有旧方法仍然通过核心修改原版得到支持。这也应该会显著提高性能,因为它不需要不断地包装和解包类。
6.1 (1.19.2) - 适用于 Minecraft 1.19.2 的重大更新