Skip to content

Commit df68520

Browse files
authoredMar 6, 2023
fix(Actions): inject built data by using a symbol (#9204)
1 parent 4bc25c4 commit df68520

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed
 

‎src/client/actions/Action.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class GenericAction {
3434
getChannel(data) {
3535
const id = data.channel_id ?? data.id;
3636
return (
37-
data.channel ??
37+
data[this.client.actions.injectedChannel] ??
3838
this.getPayload(
3939
{
4040
id,
@@ -51,7 +51,7 @@ class GenericAction {
5151
getMessage(data, channel, cache) {
5252
const id = data.message_id ?? data.id;
5353
return (
54-
data.message ??
54+
data[this.client.actions.injectedMessage] ??
5555
this.getPayload(
5656
{
5757
id,
@@ -86,7 +86,7 @@ class GenericAction {
8686

8787
getUser(data) {
8888
const id = data.user_id;
89-
return data.user ?? this.getPayload({ id }, this.client.users, id, PartialTypes.USER);
89+
return data[this.client.actions.injectedUser] ?? this.getPayload({ id }, this.client.users, id, PartialTypes.USER);
9090
}
9191

9292
getUserFromMember(data) {

‎src/client/actions/ActionsManager.js

+7
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ class ActionsManager {
44
constructor(client) {
55
this.client = client;
66

7+
// These symbols represent fully built data that we inject at times when calling actions manually. Action#getUser,
8+
// for example, will return the injected data (which is assumed to be a built structure) instead of trying to make
9+
// it from provided data
10+
this.injectedUser = Symbol('djs.actions.injectedUser');
11+
this.injectedChannel = Symbol('djs.actions.injectedChannel');
12+
this.injectedMessage = Symbol('djs.actions.injectedMessage');
13+
714
this.register(require('./ApplicationCommandPermissionsUpdate'));
815
this.register(require('./AutoModerationActionExecution'));
916
this.register(require('./AutoModerationRuleCreate'));

‎src/structures/Message.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -802,9 +802,9 @@ class Message extends Base {
802802

803803
return this.client.actions.MessageReactionAdd.handle(
804804
{
805-
user: this.client.user,
806-
channel: this.channel,
807-
message: this,
805+
[this.client.actions.injectedUser]: this.client.user,
806+
[this.client.actions.injectedChannel]: this.channel,
807+
[this.client.actions.injectedMessage]: this,
808808
emoji: Util.resolvePartialEmoji(emoji),
809809
},
810810
true,

0 commit comments

Comments
 (0)