本人萌新做一个启示录包的时候想动态设置装备,各种找教程依然找不到,最终发现了正确的解决方法

我把这些易用的代码分享出来,供萌新们方便地使用

function getMainhand(entity){
    return entity.handSlots[0].getItem()
}
function getOffhand(entity){
    return entity.handSlots[1].getItem()
}
function getHead(entity){
    return entity.armorSlots[3].getItem()
}
function getChest(entity){
    return entity.armorSlots[2].getItem()
}
function getLegs(entity){
    return entity.armorSlots[1].getItem()
}
function getFeet(entity){
    return entity.armorSlots[0].getItem()
}
function setMainhand(entity,item){
    entity.setItemSlot(0, item);
}
function setOffhand(entity,item){
    entity.setItemSlot(1, item);
}
function setHead(entity,item){
    entity.setItemSlot(5, item);
}
function setChest(entity,item){
    entity.setItemSlot(4, item);
}
function setLegs(entity,item){
    entity.setItemSlot(3, item);
}
function setFeet(entity,item){
    entity.setItemSlot(2, item);
}
function setMainhandWhenEmpty(entity,item){
    if(getMainhand(entity)=="air"){
        setMainhand(entity,item)
    }
}
function setOffhandWhenEmpty(entity, item){
    if(getOffhand(entity)=="air"){
        setOffhand(entity, item)
    }
}

function setHeadWhenEmpty(entity, item){
    if(getHead(entity)=="air"){
        setHead(entity, item)
    }
}

function setChestWhenEmpty(entity, item){
    if(getChest(entity)=="air"){
        setChest(entity, item)
    }
}

function setLegsWhenEmpty(entity, item){
    if(getLegs(entity)=="air"){
        setLegs(entity, item)
    }
}

function setFeetWhenEmpty(entity, item){
    if(getFeet(entity)=="air"){
        setFeet(entity, item)
    }
}

使用示例,当僵尸生成的时候,50%概率如果它没戴头盔,给他穿个铁头

EntityEvents.spawned(event => {
    const entity = event.entity
    let id=entity.type.toString();
    if((id=='minecraft:zombie'){
        if(Math.random()<0.5){
            setHeadWhenEmpty(entity,Item.of('minecraft:iron_helmet'))
        }
    }
})
//将上面的函数(function)粘贴下来