From 8b5b9ffc19eb46f187d19cc172d70b57a93de296 Mon Sep 17 00:00:00 2001 From: ForestOfLight Date: Sun, 14 Dec 2025 14:00:06 -0800 Subject: [PATCH] ignore shulkers --- packs/BP/scripts/options/materialGrabber.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packs/BP/scripts/options/materialGrabber.js b/packs/BP/scripts/options/materialGrabber.js index b41ef14..3fe72ee 100644 --- a/packs/BP/scripts/options/materialGrabber.js +++ b/packs/BP/scripts/options/materialGrabber.js @@ -43,6 +43,8 @@ world.beforeEvents.itemUse.subscribe(onItemUse); world.beforeEvents.playerInteractWithBlock.subscribe(onPlayerInteract); world.beforeEvents.playerInteractWithEntity.subscribe(onPlayerInteract); +const BANNED_ITEMTYPES = [/shulker_box/g]; + function onItemUse(event) { if (!isActionItem(event.itemStack) || !builderOption.isEnabled(event.source?.id)) return; @@ -122,7 +124,7 @@ function sendTransferMessage(player, transferCount) { } function tryTransferToPlayer(slot, playerContainer, materials) { - if (slot.hasItem() && materials.has(slot.typeId)) { + if (slot.hasItem() && materials.has(slot.typeId) && !isBannedItemType(slot.typeId)) { const grabAmount = Math.min(slot.amount, materials.get(slot.typeId).count); if (grabAmount > 0) return tryTransferAmountToPlayer(slot, playerContainer, materials, grabAmount); @@ -205,4 +207,12 @@ function emptySlotPass(inventory, itemStack) { function isSlotAvailableForStacking(slot, itemStack) { return slot.hasItem() && slot.isStackableWith(itemStack) && slot.amount !== slot.maxAmount; +} + +function isBannedItemType(itemTypeId) { + for (const regex of BANNED_ITEMTYPES) { + if (itemTypeId.match(regex)) + return true; + } + return false; } \ No newline at end of file