diff --git a/discord/onboarding.py b/discord/onboarding.py index 4ca71b724..5b5c59e0b 100644 --- a/discord/onboarding.py +++ b/discord/onboarding.py @@ -101,16 +101,23 @@ class PartialOnboardingPromptOption: self.role_ids: Set[int] = set(role_ids or []) def to_dict(self, *, id: int = MISSING) -> PromptOptionPayload: - from .state import ConnectionState # circular import + if isinstance(self.emoji, str): + emoji_payload = {"emoji_name": self.emoji} + else: + emoji_payload = { + "emoji_id": self.emoji.id, + "emoji_name": self.emoji.name, + "emoji_animated": self.emoji.animated, + } return { 'id': id or os.urandom(16).hex(), 'title': self.title, 'description': self.description, - 'emoji': ConnectionState.emoji_to_partial_payload(self.emoji), 'channel_ids': list(self.channel_ids), 'role_ids': list(self.role_ids), - } + **emoji_payload, + } # type: ignore class OnboardingPromptOption(PartialOnboardingPromptOption, Hashable): diff --git a/discord/state.py b/discord/state.py index aaa591ee7..ed956eb50 100644 --- a/discord/state.py +++ b/discord/state.py @@ -1616,14 +1616,6 @@ class ConnectionState(Generic[ClientT]): self, animated=data.get('animated', False), id=emoji_id, name=data['name'] # type: ignore ) - @staticmethod - def emoji_to_partial_payload(emoji: Union[Emoji, PartialEmoji, str]) -> PartialEmojiPayload: - if isinstance(emoji, str): - return {'name': emoji} # type: ignore - elif isinstance(emoji, Emoji): - emoji = emoji._to_partial() - return emoji.to_dict() - def _upgrade_partial_emoji(self, emoji: PartialEmoji) -> Union[Emoji, PartialEmoji, str]: emoji_id = emoji.id if not emoji_id: