|
4 | 4 | import attrs |
5 | 5 |
|
6 | 6 | from interactions.client.const import MISSING, T, Missing |
| 7 | +from interactions.client.utils import nulled_boolean_get |
7 | 8 | from interactions.client.utils.attr_converters import optional as optional_c |
8 | 9 | from interactions.client.utils.serializer import dict_filter |
9 | 10 | from interactions.models.discord.asset import Asset |
@@ -55,6 +56,7 @@ class Role(DiscordObject): |
55 | 56 | ) |
56 | 57 | _bot_id: "Snowflake_Type | None" = attrs.field(repr=False, default=None) |
57 | 58 | _integration_id: "Snowflake_Type | None" = attrs.field(repr=False, default=None) # todo integration object? |
| 59 | + _guild_connections: bool = attrs.field(repr=False, default=False) |
58 | 60 |
|
59 | 61 | def __lt__(self: "Role", other: "Role") -> bool: |
60 | 62 | if not isinstance(self, Role) or not isinstance(other, Role): |
@@ -85,13 +87,9 @@ def _process_dict(cls, data: dict[str, Any], client: "Client") -> dict[str, Any] |
85 | 87 | if icon_hash := data.get("icon"): |
86 | 88 | data["icon"] = Asset.from_path_hash(client, f"role-icons/{data['id']}/{{}}", icon_hash) |
87 | 89 |
|
88 | | - if "premium_subscriber" in data: |
89 | | - if data["premium_subscriber"] is None: |
90 | | - data["premium_subscriber"] = True |
91 | | - else: |
92 | | - data["premium_subscriber"] = bool(data["premium_subscriber"]) |
93 | | - else: |
94 | | - data["premium_subscriber"] = False |
| 90 | + data["premium_subscriber"] = nulled_boolean_get(data, "premium_subscriber") |
| 91 | + data["guild_connections"] = nulled_boolean_get(data, "guild_connections") |
| 92 | + data["available_for_purchase"] = nulled_boolean_get(data, "available_for_purchase") |
95 | 93 |
|
96 | 94 | return data |
97 | 95 |
|
@@ -134,6 +132,11 @@ def bot_managed(self) -> bool: |
134 | 132 | """Is this role owned/managed by a bot.""" |
135 | 133 | return self._bot_id is not None |
136 | 134 |
|
| 135 | + @property |
| 136 | + def is_linked_role(self) -> bool: |
| 137 | + """Is this role a linked role.""" |
| 138 | + return self._guild_connections |
| 139 | + |
137 | 140 | @property |
138 | 141 | def mention(self) -> str: |
139 | 142 | """Returns a string that would mention the role.""" |
|
0 commit comments