Add SKU subscriptions support

This commit is contained in:
MCausc78
2024-10-10 01:04:14 +03:00
committed by GitHub
parent 0ce75f3f53
commit 58b6929aa5
10 changed files with 445 additions and 12 deletions

View File

@ -79,6 +79,8 @@ from .automod import AutoModRule, AutoModAction
from .audit_logs import AuditLogEntry
from ._types import ClientT
from .soundboard import SoundboardSound
from .subscription import Subscription
if TYPE_CHECKING:
from .abc import PrivateChannel
@ -1736,6 +1738,18 @@ class ConnectionState(Generic[ClientT]):
if poll:
self.dispatch('poll_vote_remove', user, poll.get_answer(raw.answer_id))
def parse_subscription_create(self, data: gw.SubscriptionCreateEvent) -> None:
subscription = Subscription(data=data, state=self)
self.dispatch('subscription_create', subscription)
def parse_subscription_update(self, data: gw.SubscriptionUpdateEvent) -> None:
subscription = Subscription(data=data, state=self)
self.dispatch('subscription_update', subscription)
def parse_subscription_delete(self, data: gw.SubscriptionDeleteEvent) -> None:
subscription = Subscription(data=data, state=self)
self.dispatch('subscription_delete', subscription)
def _get_reaction_user(self, channel: MessageableChannel, user_id: int) -> Optional[Union[User, Member]]:
if isinstance(channel, (TextChannel, Thread, VoiceChannel)):
return channel.guild.get_member(user_id)