You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I double checked the docs and couldn't find any useful information.
Verify Issue Source
I verified the issue was caused by Discord.Net.
Check your intents
I double checked that I have the required intents.
Description
DiscordRestClient and BaseSocketClient were modified to include the interface implementation override for member Task<IEntitlement> IDiscordClient.CreateTestEntitlementAsync(ulong, ulong, SubscriptionOwnerType, RequestOptions?), but not for:
This means that when using an object of type IDiscordClient and calling one of those non-overriden members, you will get unexpected behaviour, as it will use the implementation inside BaseDiscordClient which returns null pretty much.
This isn't the first time this has happened: 8baf913
Maybe some automated tooling needs to be put into place so that BaseSocketClient and DiscordRestClient properly override the default BaseDiscordClient implementation, or a reconsideration of how these classes are structured may need to take place.
Version
3.13.0
Working Version
3.12.0
Logs
N/A
Sample
DiscordRestClientrestClient=new();// initialization and loading...// works fine._=await restClient.GetSKUsAsync();IDiscordClientinterfaceClient= restClient;// wont work fine, calls `BaseDiscordClient.IDiscordClient.GetSKUsAsync(RequestOptions?)` instead of `DiscordRestClient.GetSKUsAsync(RequestOptions?)`_=await interfaceClient.GetSKUsAsync();
Packages
N/A
Environment
N/A
The text was updated successfully, but these errors were encountered:
Removing the bug label, but will leave the issue open
A source analyzer for ensuring that all IDiscordClient methods are actually implemented in DiscordRest/SocketClient would be nice IMO.
Check The Docs
Verify Issue Source
Check your intents
Description
DiscordRestClient
andBaseSocketClient
were modified to include the interface implementation override for memberTask<IEntitlement> IDiscordClient.CreateTestEntitlementAsync(ulong, ulong, SubscriptionOwnerType, RequestOptions?)
, but not for:Task IDiscordClient.DeleteTestEntitlementAsync(ulong, RequestOptions?)
IAsyncEnumerable<IReadOnlyCollection<IEntitlement>> IDiscordClient.GetEntitlementsAsync(int?, ulong?, ulong?, bool, ulong?, ulong?, ulong[]?, RequestOptions?)
Task<IReadOnlyCollection<SKU>> IDiscordClient.GetSKUsAsync(RequestOptions?)
This means that when using an object of type
IDiscordClient
and calling one of those non-overriden members, you will get unexpected behaviour, as it will use the implementation insideBaseDiscordClient
which returnsnull
pretty much.This isn't the first time this has happened: 8baf913
Maybe some automated tooling needs to be put into place so that
BaseSocketClient
andDiscordRestClient
properly override the defaultBaseDiscordClient
implementation, or a reconsideration of how these classes are structured may need to take place.Version
3.13.0
Working Version
3.12.0
Logs
Sample
Packages
N/A
Environment
N/A
The text was updated successfully, but these errors were encountered: