diff --git a/packs/BP/scripts/classes/Structure/StructureCollection.js b/packs/BP/scripts/classes/Structure/StructureCollection.js index 2ae6407..52a05c0 100644 --- a/packs/BP/scripts/classes/Structure/StructureCollection.js +++ b/packs/BP/scripts/classes/Structure/StructureCollection.js @@ -40,6 +40,10 @@ class StructureCollection { return structure; } + has(instanceName) { + return Boolean(this.structures[instanceName]); + } + delete(instanceName) { const struct = this.get(instanceName); struct.delete(); diff --git a/packs/BP/scripts/options/materialGrabber.js b/packs/BP/scripts/options/materialGrabber.js index 8bae80d..28faeb3 100644 --- a/packs/BP/scripts/options/materialGrabber.js +++ b/packs/BP/scripts/options/materialGrabber.js @@ -55,11 +55,10 @@ function onPlayerInteract(event) { const player = event.player; const target = event.block || event.target; const focusedInstanceName = Builders.get(player.id).materialInstanceName; - if (!focusedInstanceName) { + if (!focusedInstanceName || !structureCollection.has(focusedInstanceName)) openInstanceSelectionForm(player, event); - } else { + else tryGrabMaterials(player, target, focusedInstanceName, event); - } } function isActionItem(itemStack) {