From bc78312c62c09b39bef8fc480a0da5ada4b9d16f Mon Sep 17 00:00:00 2001 From: Rupato Braganza Date: Wed, 12 Feb 2025 14:00:06 +0800 Subject: [PATCH 1/3] fix: mandatory block error --- .../bot-skeleton/scratch/utils/index.js | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/external/bot-skeleton/scratch/utils/index.js b/src/external/bot-skeleton/scratch/utils/index.js index 4458dc16..1553cde0 100644 --- a/src/external/bot-skeleton/scratch/utils/index.js +++ b/src/external/bot-skeleton/scratch/utils/index.js @@ -404,11 +404,21 @@ const getMissingBlocks = (workspace, required_block_types) => { }; const getDisabledBlocks = required_blocks_check => { - return required_blocks_check.filter(block => { - const hasDisabledChild = - block.childBlocks_ && block.childBlocks_.some(childBlock => childBlock.disabled === true); - return block.disabled === true || hasDisabledChild; - }); + const workspace = window.Blockly.derivWorkspace; + const required_block_types = [getSelectedTradeType(workspace), ...config().mandatoryMainBlocks]; + const flag_disabled_blocks = Object.fromEntries( + workspace + .getAllBlocks() + .filter(block => required_block_types.includes(block.type)) + .map(block => [block.type, block.disabled]) + ); + + const mandatory_blocks = ['before_purchase', 'purchase', 'trade_definition', 'trade_definition_tradeoptions']; + const has_disabled_blocks = mandatory_blocks.some(type => flag_disabled_blocks[type]); + + return has_disabled_blocks + ? required_blocks_check.filter(block => block.disabled || block.childBlocks_?.some(child => child.disabled)) + : []; }; const throwNewErrorMessage = (error_blocks, key) => { From 3bba7f8cd74d4b78749b775b759d9dabcec21bff Mon Sep 17 00:00:00 2001 From: Rupato Braganza Date: Wed, 12 Feb 2025 14:08:28 +0800 Subject: [PATCH 2/3] fix: renamed function for readability --- src/external/bot-skeleton/scratch/utils/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/external/bot-skeleton/scratch/utils/index.js b/src/external/bot-skeleton/scratch/utils/index.js index 1553cde0..5565d6ba 100644 --- a/src/external/bot-skeleton/scratch/utils/index.js +++ b/src/external/bot-skeleton/scratch/utils/index.js @@ -412,7 +412,6 @@ const getDisabledBlocks = required_blocks_check => { .filter(block => required_block_types.includes(block.type)) .map(block => [block.type, block.disabled]) ); - const mandatory_blocks = ['before_purchase', 'purchase', 'trade_definition', 'trade_definition_tradeoptions']; const has_disabled_blocks = mandatory_blocks.some(type => flag_disabled_blocks[type]); From 9999561962ec601ea12adb21ad42bb0e7ddce3c7 Mon Sep 17 00:00:00 2001 From: Rupato Braganza Date: Wed, 12 Feb 2025 14:19:54 +0800 Subject: [PATCH 3/3] fix: renamed function for readability --- src/external/bot-skeleton/scratch/utils/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/external/bot-skeleton/scratch/utils/index.js b/src/external/bot-skeleton/scratch/utils/index.js index 5565d6ba..47fe159c 100644 --- a/src/external/bot-skeleton/scratch/utils/index.js +++ b/src/external/bot-skeleton/scratch/utils/index.js @@ -406,14 +406,14 @@ const getMissingBlocks = (workspace, required_block_types) => { const getDisabledBlocks = required_blocks_check => { const workspace = window.Blockly.derivWorkspace; const required_block_types = [getSelectedTradeType(workspace), ...config().mandatoryMainBlocks]; - const flag_disabled_blocks = Object.fromEntries( + const disabled_blocks = Object.fromEntries( workspace .getAllBlocks() .filter(block => required_block_types.includes(block.type)) .map(block => [block.type, block.disabled]) ); const mandatory_blocks = ['before_purchase', 'purchase', 'trade_definition', 'trade_definition_tradeoptions']; - const has_disabled_blocks = mandatory_blocks.some(type => flag_disabled_blocks[type]); + const has_disabled_blocks = mandatory_blocks.some(type => disabled_blocks[type]); return has_disabled_blocks ? required_blocks_check.filter(block => block.disabled || block.childBlocks_?.some(child => child.disabled))