From 87e81e657f1a6652abdaed60bed470291f6b94e2 Mon Sep 17 00:00:00 2001 From: supremesupreme <91563714+supremesupreme@users.noreply.github.com> Date: Sat, 5 Oct 2024 17:26:10 +0100 Subject: [PATCH] Modified AwaitData --- src/functions/ForEachObjectArray.js | 65 ++++++++++++++++------------- src/functions/awaitData.js | 4 +- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/src/functions/ForEachObjectArray.js b/src/functions/ForEachObjectArray.js index 84e982ab0..91bd88da0 100644 --- a/src/functions/ForEachObjectArray.js +++ b/src/functions/ForEachObjectArray.js @@ -6,7 +6,7 @@ module.exports = async (d) => { const data = d.util.aoiFunc(d); if (data.err) return d.error(data.err); - const [name, property, awaitedCmd, awaitData = "{}", endCmd] = data.inside.splits; + const [name, property, awaitedCmd, endCmd] = data.inside.splits; if (!d.data.objects?.[name]) { return d.aoiError.fnError(d, "custom", { inside: data.inside }, "Array With Name '" + name + "' Does Not Exist."); @@ -21,39 +21,48 @@ module.exports = async (d) => { if (!cmd) { return d.aoiError.fnError(d, "custom", { inside: data.inside }, "Awaited Command With Name '" + awaitedCmd + "' Does Not Exist."); } - let parsedData; - try { - parsedData = JSON.parse(awaitData); - } catch (e) { - return d.aoiError.fnError(d, "custom", {}, `Failed To Parse Data With Reason: ${e.message}`); - } - - for (const key in property) { - console.log(`Key: ${key}`); - property[key].forEach((value) => { - console.log(value); - }); - } + let parsedData = {}; + for (const key in d.data.objects[name]) { + if (Array.isArray(d.data.objects[name][key])) { + parsedData[key] = d.data.objects[name][key] + } + } let i = 0; - for (const el of d.arrays[name]) { - const c = { ...cmd }; - c.code = c.code.replaceAll("{value}", el); - await Interpreter(d.client, d.message, d.args, c, d.client.db, true, undefined, { ...d.data, awaitData: parsedData, index: i }); - i++; - } + for (const key in d.data.objects[name]) { + if (d.data.objects[name].hasOwnProperty(key)) { + + const el = d.data.objects[name][key]; + const c = { ...cmd }; + c.code = c.code.replaceAll("{value}", el); - if (endCmd.trim() !== "") { - const cmd = d.client.cmd.awaited.find((x) => x.name.toLowerCase() === endCmd.addBrackets().toLowerCase()); - if (!cmd) return; - await d.interpreter(d.client, d.message, d.args, cmd, d.client.db, false, undefined, { - awaitData, - index: i - }); + if(Array.isArray(el)){ + let parsedResult = JSON.stringify(parsedData[property][i]) + const result = await Interpreter( + d.client, + d.message, + d.args, + c, + d.client.db, + true, + undefined, + { ...d.data, awaitData: parsedResult, index: i } + ); + i++; + } } +} + +if (endCmd.trim() !== "") { + const cmd = d.client.cmd.awaited.find((x) => x.name.toLowerCase() === endCmd.addBrackets().toLowerCase()); + if (!cmd) return; + await d.interpreter(d.client, d.message, d.args, cmd, d.client.db, false, undefined, { + index: i-1 + }); +} return { code: d.util.setCode(data) }; -}; +}; \ No newline at end of file diff --git a/src/functions/awaitData.js b/src/functions/awaitData.js index 25b7c3991..744fdce15 100644 --- a/src/functions/awaitData.js +++ b/src/functions/awaitData.js @@ -8,8 +8,8 @@ module.exports = (d) => { try { data.result = eval(`d.data.awaitData?.${option.addBrackets()}`); - } catch (e) { - data.result = undefined; + } finally{ + data.result = eval(`d.data.awaitData`); } return { code: d.util.setCode(data),