|
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