mojira.dev
BDS-18672

[Scripting] EntityEquippableComponent and its methods: setEquipment, getEquipmentSlot and getEquipment are broken

@minecraft/server 1.6.0-beta

import { EntityEquippableComponent, EquipmentSlot, system, world } from '@minecraft/server';
system.runInterval(() => {
    world.getAllPlayers().forEach(player => {
        /**
         * @type {EntityEquippableComponent}
         */
        const equippable = player.getComponent('minecraft:equippable');
        const slot = equippable.getEquipmentSlot(EquipmentSlot.Offhand);
        console.warn(slot?.typeId ?? 'null');
    });
});

Expected Results:

logs the type of the item in my offhand.

Observed Results:
throws 
TypeError: Unexpected type passed to function argument [0].    at <anonymous> (index4.js:32)
at forEach (native)
at <anonymous> (index4.js:34)
does the same for getEquipment  and setEquipment and for "Offhand" or any of the others it throws a native conversion type error.

//line 34
const slot = equippable.getEquipmentSlot(EquipmentSlot.Offhand);

also entity.getComponent("equippable"); might not work on entities.

import { EntityEquippableComponent, EquipmentSlot, system, world } from '@minecraft/server';
world.getDimension(MinecraftDimensionTypes.overworld).getEntities().forEach(entity => {
        if (entity.typeId !== 'minecraft:skeleton') return;
        console.warn(entity.typeId);
        /**
         * @type {EntityEquippableComponent}
         */
        const equippable = entity.getComponent('minecraft:equippable');
        const slot = equippable.getEquipmentSlot(EquipmentSlot.Mainhand);
        console.warn(slot?.typeId ?? 'null');
    });
});

For a skeleton:

Expected Results:
logs 'minecraft:bow'.

Observed Results:
throws
TypeError: cannot read property 'getEquipmentSlot' of undefined at <anonymous> (index4.js:42)
at forEach (native)
at <anonymous> (index4.js:44)

//line 42
const equippable = entity.getComponent('minecraft:equippable');

Comments 4

Could this get swapped to bedrock edition instead of bds some how didn’t see it. Think something messed up as when I first copied it, it was MCPE-174596 which points towards BDS-18672 which is what it is currently.

Hi

This occur only on Bedrock Dedicated Server or it can be reproduced on local worlds/Realms?

This ticket will automatically reopen when you reply.

This also happens in 1.20.31, on local worlds. But this time you can get the player's armor, not entities such as zombies

Cleaning up old tickets: This ticket had been set to 'Awaiting Response', but has not received a response from the reporter (~3 months+) so is being closed as Incomplete. If you feel this is still a valid issue then please comment, or create a new ticket following the Issue Guidelines which includes steps to reproduce the problem.

Quick Links:
📓 Issue Guidelines – 💬 Mojang Support – 📧 Suggestions – 📖 Minecraft Wiki

mrpatches123

(Unassigned)

Unconfirmed

Retrieved