本篇教程由作者设定未经允许禁止转载。

本教程环境在KubeJS 2001.6.5-build.14和customportalapi-0.0.1-forge-1.20环境下测试

const $CustomPortalBuilder = Java.loadClass("net.kyrptonaught.customportalapi.api.CustomPortalBuilder")
const $BuiltinDimensionTypes = Java.loadClass("net.minecraft.world.level.dimension.BuiltinDimensionTypes")

StartupEvents.postInit(e=>{    
    $CustomPortalBuilder        
        .beginPortal() //开始构建自定义传送门       
         ["frameBlock(net.minecraft.world.level.block.Block)"](Blocks.STONE) //传送门的框架方块       
         .destDimID($BuiltinDimensionTypes.NETHER_EFFECTS) //传送维度        
         .tintColor(131, 66, 184) // 传送门的RGB颜色        
         .registerPortal(); //注册自定义传送门    
         
    $CustomPortalBuilder       
        .beginPortal() //开始构建自定义传送门        
        ["frameBlock(net.minecraft.world.level.block.Block)"](Blocks.DIAMOND_BLOCK) //传送门的框架方块        
        .destDimID($BuiltinDimensionTypes.NETHER_EFFECTS) //传送维度        
        .lightWithItem(Items.DIAMOND) //激活传送门的物品        
        .flatPortal() // 传送门为平面的        
        .tintColor(131, 133, 184) // 传送门的RGB颜色        
        .registerPortal(); //注册自定义传送门
 })

参考文档:自定义传送门 | KubeJs1.20.1教程