diff --git a/discord/scheduled_event.py b/discord/scheduled_event.py index dd5c8c37b..9f8bd9920 100644 --- a/discord/scheduled_event.py +++ b/discord/scheduled_event.py @@ -98,6 +98,10 @@ class ScheduledEvent(Hashable): The number of users subscribed to the scheduled event. creator: Optional[:class:`User`] The user that created the scheduled event. + creator_id: Optional[:class:`int`] + The ID of the user that created the scheduled event. + + .. versionadded:: 2.2 location: Optional[:class:`str`] The location of the scheduled event. """ @@ -119,6 +123,7 @@ class ScheduledEvent(Hashable): 'user_count', 'creator', 'channel_id', + 'creator_id', 'location', ) @@ -139,10 +144,14 @@ class ScheduledEvent(Hashable): self.status: EventStatus = try_enum(EventStatus, data['status']) self._cover_image: Optional[str] = data.get('image', None) self.user_count: int = data.get('user_count', 0) + self.creator_id: Optional[int] = _get_as_snowflake(data, 'creator_id') creator = data.get('creator') self.creator: Optional[User] = self._state.store_user(creator) if creator else None + if self.creator_id is not None and self.creator is None: + self.creator = self._state.get_user(self.creator_id) + self.end_time: Optional[datetime] = parse_time(data.get('scheduled_end_time')) self.channel_id: Optional[int] = _get_as_snowflake(data, 'channel_id') @@ -152,13 +161,6 @@ class ScheduledEvent(Hashable): def _unroll_metadata(self, data: Optional[EntityMetadata]): self.location: Optional[str] = data.get('location') if data else None - @classmethod - def from_creation(cls, *, state: ConnectionState, data: GuildScheduledEventPayload) -> None: - creator_id = data.get('creator_id') - self = cls(state=state, data=data) - if creator_id: - self.creator = self._state.get_user(int(creator_id)) - def __repr__(self) -> str: return f''