6.0 (1.19.2)
2025年3月29日大约 2 分鐘
onEvent()
onEvent('event', event => {})
語法已被 SomeEventGroup.someEventName(event => {})
取代
新
BlockEvents.rightClicked(event => {
if(event.block.id === 'minecraft:dirt') {
console.info('嗨!')
}
})
舊
onEvent('block.right_click', event => {
if(event.block.id === 'minecraft:dirt') {
console.info('嗨!')
}
})
不僅如此,新的事件還支持 ID 和其他參數!您現在可以選擇為每個 ID 設置自己的事件處理器:
新
BlockEvents.rightClicked('minecraft:dirt', event => {
console.info('嗨!')
})
BlockEvents.rightClicked('minecraft:stone', event => {
console.info('再見!')
})
舊
onEvent('block.right_click', event => {
if(event.block.id === 'minecraft:dirt') {
console.info('嗨!')
} else if(event.block.id === 'minecraft:stone') {
console.info('再見!')
}
})
某些事件需要 ID,例如登錄和標籤事件:
新
StartupEvents.registry('item', event => {})
舊
onEvent('item.registry', event => {})
新
ServerEvents.tags('item', event => {})
舊
onEvent('tags.items', event => {})
使用參數實際上比檢查 event.id == 'id'
更快
相關信息
您可以在這裡找到完整的新事件列表。
onForgeEvent()
onForgeEvent('package.ClassName', event => {})
已被 ForgeEvents.onEvent('package.ClassName', event => {})
取代
新
ForgeEvents.onEvent('net.minecraftforge.event.level.BlockEvent$PortalSpawnEvent', event => {})
舊
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')
舊
const CactusBlock = java('net.minecraft.world.level.block.CactusBlock')
Java 工具類中可能會有更多反射輔助方法,例如列出類中的所有字段和方法等。
再見外包類別
沒有任何原版類別是外包類別了 - EntityJS、LevelJS、ItemStackJS、IngredientJS 等都消失了。這可能會引入一些錯誤,但總體上應該會使與 Minecraft 和其他模組的交互變得更加容易。幾乎所有舊方法仍由核心模組支持。這也應該顯著提高性能,因為不需要不斷包裝和解包類。