-
-
Notifications
You must be signed in to change notification settings - Fork 318
Cache rework #1647
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
Cache rework #1647
Conversation
inftord
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
overall LGTM, just a one nitpick regarding docs
VelvetToroyashi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks OK at a cursory glance, waiting for Livia for additional input.
akiraveliara
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
preliminarily looks good, but we'll have to see how it turns out in the end. left a question.
# Conflicts: # DSharpPlus/Entities/AuditLogs/AuditLogParser.cs # DSharpPlus/Entities/AuditLogs/DiscordAuditLogEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogAutoModerationExecutedEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogAutoModerationRuleEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogBanEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogBotAddEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogChannelEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogEmojiEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogGuildEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogGuildScheduledEventEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogKickEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMemberMoveEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMemberUpdateEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMessageEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMessagePinEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogOverwriteEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogRoleUpdateEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogStickerEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogThreadEventEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogWebhookEntry.cs # DSharpPlus/Entities/AuditLogs/PropertyChange.cs # DSharpPlus/Entities/Guild/DiscordGuild.cs # DSharpPlus/Entities/Guild/ScheduledEvents/DiscordScheduledGuildEvent.cs # DSharpPlus/Net/Rest/DiscordApiClient.cs
# Conflicts: # DSharpPlus/Clients/BaseDiscordClient.cs # DSharpPlus/Clients/DiscordClient.cs # DSharpPlus/Entities/AuditLogs/AuditLogActionCategory.cs # DSharpPlus/Entities/AuditLogs/AuditLogActionType.cs # DSharpPlus/Entities/AuditLogs/DiscordAuditLogEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogApplicationCommandPermissionEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogAutoModerationExecutedEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogAutoModerationRuleEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogBanEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogBotAddEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogChannelEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogEmojiEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogGuildEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogGuildScheduledEventEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogIntegrationEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogInviteEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogKickEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMemberDisconnectEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMemberMoveEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMemberUpdateEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMessageEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogMessagePinEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogOverwriteEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogPruneEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogStickerEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogThreadEventEntry.cs # DSharpPlus/Entities/AuditLogs/Entries/DiscordAuditLogWebhookEntry.cs # DSharpPlus/Entities/AuditLogs/PropertyChange.cs # DSharpPlus/Entities/Channel/DiscordChannel.cs # DSharpPlus/Entities/Channel/Message/DiscordMessage.cs # DSharpPlus/Entities/Channel/Message/DiscordMessageReference.cs # DSharpPlus/Entities/Channel/Message/DiscordMessageSticker.cs # DSharpPlus/Entities/Voice/DiscordVoiceState.cs # DSharpPlus/IMessageCacheProvider.cs # DSharpPlus/Net/Rest/DiscordApiClient.cs # tools/AutoUpdateChannelDescription/Program.cs
|
Closing in favor of the gateway rewrite. branch was moved to plerx/backlog/cache-rewrite |
Summary
Add the concept of a centralized cache and provide the possibilty for users to implement their own caching provider. I also have, due to the nature of dispatch event based caching, overhauled DiscordClient.Dispatch to fix some bugs and make it more readable
Tasks
Testing
Note
This PR brings massive breaking changes to both entity representations and eventArgs so they reflect more accurately what entities are cached and also to provide IDs for all fields which are cached entities. The user then can request those entities if necessary