Presences don't update user cache

Created by: VelvetThePanda

Summary

Presences are a bit borked in the lib. Leave it to me of all people to find out why. :b

Presence updates for better or worse do not update underlying user objects.

The issue lies on this section of code: https://github.com/DSharpPlus/DSharpPlus/blob/2c74a38c0c39ee7812299a72c6f08cbf74296b20/DSharpPlus/Clients/DiscordClient.Dispatch.cs#L1653-L1684

Steps to reproduce

  • Pick a user that hasn't sent a message (Updates cache)
  • Attempt to pull their presence
  • Observe null presence, even if they're online

Alternatively:

  • Hook PresenceUpdated
  • Observe PresenceBefore and PresenceAfter are not null
  • Observe UserBefore.Presence is null
  • Observe User.PresenceAfter is not null

Notes

how long has this existed x2