#how would i fix this

1 messages · Page 1 of 1 (latest)

warm patrol
#

const defaultTier = 0;
const tierScoreboard = "armor_tier"
const tiers = {
    "leather": 1,
    "chainmail": 2,
    "iron": 3,
    "golden": 4,
    "diamond": 5,
    "netherite": 6
}

const scoreboards = {}; // used for caching objective instances

system.runInterval(() => {
    for (const player of world.getAllPlayers()) {
        const inv = player.getComponent("inventory")
        const eq = player.getComponent("equippable")
        const equippables = Object.values(EquipmentSlot).map(i => eq.getEquipmentSlot(i));
        let tier = defaultTier;
        const items = new Array(36).fill(0).map((_, i) => inv.container.getSlot(i))
        for (const item of [...equippables, ...items]) {
            if (!item) continue;
            const score = tiers[item.getTags().find(i => i.endsWith("tier"))?.split(/_|:/g)[1]]
            if (score > tier) tier = score;
        }
        if (player.lastArmorTier === tier) continue;
        player.lastArmorTier = tier;
        (scoreboards[tierScoreboard] ??= world.scoreboard.getObjective(tierScoreboard)).setScore(player, tier);
    }
}, 20)```
warm patrol
#

I fixed it de