Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(actions): safer getChannel calls #10434

Merged
merged 3 commits into from
Aug 19, 2024

Conversation

didinele
Copy link
Member

@didinele didinele commented Aug 7, 2024

Please describe the changes this PR makes and why it should be merged:
Fixes #10393 and also does a little spring cleaning on areas that could have also been dangerous in the same way.

The gist of #10393 was that it was especially happening when a message sent unarchived a thread, and yet it only sometimes caused the error. It seems that sometimes, Discord was sending the MESSAGE_CREATE payload before the THREAD_UPDATE. The latter normally comes first and populates our cache, which yields to the subsequent getChannel caused by the MESSAGE_CREATE to return from cache.

In cases when the opposite was happening, before #10278 we were unable to resolve the channel type and would simply skip it, not adding it to cache at all (and also skipping the messageCreate) as a result. This is a fundamental flaw of how those partials work, and should be addressed with either the next major, or the library's rewrite. There is no easy way to otherwise fix this right now.

After #10278, we were essentially passing full message objects from MESSAGE_CREATE to getChannel, messages, which, have a type property, often 0, which lead to a successful channel creation with jank data.

With this fix, we're back to the old behavior of dropping those events. Regarding the properties I chose to forward, I followed the payload docs found here https://discord.com/developers/docs/topics/gateway-events#gateway-events

@didinele didinele requested a review from a team as a code owner August 7, 2024 16:55
Copy link

vercel bot commented Aug 7, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
discord-js ⬜️ Ignored (Inspect) Visit Preview Aug 19, 2024 7:49pm
discord-js-guide ⬜️ Ignored (Inspect) Visit Preview Aug 19, 2024 7:49pm

@kodiakhq kodiakhq bot merged commit 87776bb into main Aug 19, 2024
25 checks passed
@kodiakhq kodiakhq bot deleted the fix/text-channel-type-inference branch August 19, 2024 19:53
imnaiyar pushed a commit to imnaiyar/discord.js that referenced this pull request Aug 20, 2024
* refactor(actions): safer getChannel calls

* chore: consistency

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
kodiakhq bot added a commit that referenced this pull request Aug 20, 2024
* build: bump discord-api-types to 0.37.95

* feat: Add support for Automated Message nonce handling (#10381)

* Add support for Automated Message nonce handling

* Fix options property

* Address PR feedback

* Handled case where it was explicitly set to false for that iteration to not generate a nonce, and PR feedback

* Fix lint issue

* Fix lint issue

* Move to MessagePayload.resolveBody instead

* Fix test errors

* Update packages/discord.js/src/structures/MessagePayload.js

Co-authored-by: Almeida <[email protected]>

* PR feedback

* Merge

* Let and not const

---------

Co-authored-by: Almeida <[email protected]>
Co-authored-by: Almeida <[email protected]>

* feat(Attachment): add `title` (#10423)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* types: Fix wrong auto moderation target type (#10391)

types: fix wrong auto moderation target type

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* feat(builders): update to @sapphire/shapeshift v4 (#10291)

feat: update to @sapphire/shapeshift v4

* refactor(actions): safer getChannel calls (#10434)

* refactor(actions): safer getChannel calls

* chore: consistency

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* build: bump discord-api-types tp 0.37.96

---------

Co-authored-by: Jacob Morrison <[email protected]>
Co-authored-by: Almeida <[email protected]>
Co-authored-by: Almeida <[email protected]>
Co-authored-by: Danial Raza <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Jiralite <[email protected]>
Co-authored-by: Jeroen Claassens <[email protected]>
Co-authored-by: DD <[email protected]>
nyapat pushed a commit to nyapat/discord.js that referenced this pull request Sep 9, 2024
* refactor(actions): safer getChannel calls

* chore: consistency

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
nyapat pushed a commit to nyapat/discord.js that referenced this pull request Sep 9, 2024
* build: bump discord-api-types to 0.37.95

* feat: Add support for Automated Message nonce handling (discordjs#10381)

* Add support for Automated Message nonce handling

* Fix options property

* Address PR feedback

* Handled case where it was explicitly set to false for that iteration to not generate a nonce, and PR feedback

* Fix lint issue

* Fix lint issue

* Move to MessagePayload.resolveBody instead

* Fix test errors

* Update packages/discord.js/src/structures/MessagePayload.js

Co-authored-by: Almeida <[email protected]>

* PR feedback

* Merge

* Let and not const

---------

Co-authored-by: Almeida <[email protected]>
Co-authored-by: Almeida <[email protected]>

* feat(Attachment): add `title` (discordjs#10423)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* types: Fix wrong auto moderation target type (discordjs#10391)

types: fix wrong auto moderation target type

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* feat(builders): update to @sapphire/shapeshift v4 (discordjs#10291)

feat: update to @sapphire/shapeshift v4

* refactor(actions): safer getChannel calls (discordjs#10434)

* refactor(actions): safer getChannel calls

* chore: consistency

---------

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* build: bump discord-api-types tp 0.37.96

---------

Co-authored-by: Jacob Morrison <[email protected]>
Co-authored-by: Almeida <[email protected]>
Co-authored-by: Almeida <[email protected]>
Co-authored-by: Danial Raza <[email protected]>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Jiralite <[email protected]>
Co-authored-by: Jeroen Claassens <[email protected]>
Co-authored-by: DD <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

TypeError: thread.members._add is not a function
5 participants