From 18b6f6f6778492ebc75bbb411ca36731578d3aac Mon Sep 17 00:00:00 2001 From: Jiralite <33201955+Jiralite@users.noreply.github.com> Date: Wed, 29 Mar 2023 14:50:33 +0100 Subject: [PATCH] fix: keep symbols in actions manager --- packages/discord.js/scripts/generateRequires.mjs | 13 ++++++++++++- .../discord.js/src/client/actions/ActionsManager.js | 6 +++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/discord.js/scripts/generateRequires.mjs b/packages/discord.js/scripts/generateRequires.mjs index 70ff058e8f1c..b6e28db8a2f6 100644 --- a/packages/discord.js/scripts/generateRequires.mjs +++ b/packages/discord.js/scripts/generateRequires.mjs @@ -19,7 +19,18 @@ async function writeWebsocketHandlerImports() { } async function writeClientActionImports() { - const lines = ["'use strict';\n", 'class ActionsManager {', ' constructor(client) {', ' this.client = client;\n']; + const lines = [ + "'use strict';\n", + 'class ActionsManager {', + ' // These symbols represent fully built data that we inject at times when calling actions manually.', + ' // Action#getUser, for example, will return the injected data (which is assumed to be a built structure)', + ' // instead of trying to make it from provided data', + " injectedUser = Symbol('djs.actions.injectedUser');", + " injectedChannel = Symbol('djs.actions.injectedChannel');", + " injectedMessage = Symbol('djs.actions.injectedMessage');\n", + ' constructor(client) {', + ' this.client = client;\n', + ]; const actionsDirectory = new URL('../src/client/actions', import.meta.url); for (const file of (await readdir(actionsDirectory)).sort()) { diff --git a/packages/discord.js/src/client/actions/ActionsManager.js b/packages/discord.js/src/client/actions/ActionsManager.js index ff3dc86bb891..301a6a966b46 100644 --- a/packages/discord.js/src/client/actions/ActionsManager.js +++ b/packages/discord.js/src/client/actions/ActionsManager.js @@ -1,9 +1,9 @@ 'use strict'; class ActionsManager { - // These symbols represent fully built data that we inject at times when calling actions manually. Action#getUser, - // for example, will return the injected data (which is assumed to be a built structure) instead of trying to make it - // from provided data + // These symbols represent fully built data that we inject at times when calling actions manually. + // Action#getUser, for example, will return the injected data (which is assumed to be a built structure) + // instead of trying to make it from provided data injectedUser = Symbol('djs.actions.injectedUser'); injectedChannel = Symbol('djs.actions.injectedChannel'); injectedMessage = Symbol('djs.actions.injectedMessage');