Skip to content

Commit 9da94e2

Browse files
authored
Merge pull request #750 from Aiko-IT-Systems/fix/internal-nre
fix: potential fix for member parsing causing ac to silently fail
2 parents dba4922 + 20d25f3 commit 9da94e2

File tree

3 files changed

+26
-5
lines changed

3 files changed

+26
-5
lines changed

DisCatSharp/Clients/DiscordClient.Dispatch.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4096,6 +4096,13 @@ internal async Task OnInteractionCreateAsync(ulong? guildId, ulong channelId, Tr
40964096
c.Value.Discord = this;
40974097
c.Value.Id = c.Key;
40984098
c.Value.GuildId = guildId.Value;
4099+
c.Value.ManualUser = resolved.Users != null && resolved.Users.TryGetValue(c.Key, out var usrResolved)
4100+
? usrResolved
4101+
: new DiscordUser
4102+
{
4103+
Id = c.Key,
4104+
Discord = this
4105+
};
40994106
c.Value.User.Discord = this;
41004107
this.UserCache.AddOrUpdate(c.Value.User.Id, c.Value.User, (old, @new) => @new);
41014108
}

DisCatSharp/Entities/Guild/DiscordMember.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ internal DiscordMember(TransportMember mbr)
9090
this.MemberFlags = mbr.MemberFlags;
9191
this.InteractionPermissions = mbr.Permissions;
9292
this.GuildAvatarDecorationData = mbr.GuildAvatarDecorationData;
93+
this.GuildDisplayNameStyles = mbr.GuildDisplayNameStyles;
9394
if (mbr.User is not null)
9495
this.ManualUser = new(mbr.User)
9596
{
@@ -98,37 +99,43 @@ internal DiscordMember(TransportMember mbr)
9899
}
99100

100101
/// <summary>
101-
/// Gets the members avatar hash.
102+
/// Gets the member's guild avatar hash.
102103
/// </summary>
103104
[JsonProperty("avatar", NullValueHandling = NullValueHandling.Ignore)]
104105
public string? GuildAvatarHash { get; internal set; }
105106

106107
/// <summary>
107-
/// Gets the members avatar URL.
108+
/// Gets the member's guild avatar URL.
108109
/// </summary>
109110
[JsonIgnore]
110111
public string GuildAvatarUrl
111112
=> string.IsNullOrWhiteSpace(this.GuildAvatarHash) ? this.User.AvatarUrl : $"{DiscordDomain.GetDomain(CoreDomain.DiscordCdn).Url}{Endpoints.GUILDS}/{this.GuildId.ToString(CultureInfo.InvariantCulture)}{Endpoints.USERS}/{this.Id.ToString(CultureInfo.InvariantCulture)}{Endpoints.AVATARS}/{this.GuildAvatarHash}.{(this.GuildAvatarHash.StartsWith("a_", StringComparison.Ordinal) ? "gif" : "png")}?size=1024";
112113

113114
/// <summary>
114-
/// Gets the members banner hash.
115+
/// Gets the member's guild banner hash.
115116
/// </summary>
116117
[JsonProperty("banner", NullValueHandling = NullValueHandling.Ignore)]
117118
public string? GuildBannerHash { get; internal set; }
118119

119120
/// <summary>
120-
/// Gets the members banner URL.
121+
/// Gets the member's guild banner URL.
121122
/// </summary>
122123
[JsonIgnore]
123124
public string? GuildBannerUrl
124125
=> string.IsNullOrWhiteSpace(this.GuildBannerHash) ? this.User.BannerUrl : $"{DiscordDomain.GetDomain(CoreDomain.DiscordCdn).Url}{Endpoints.GUILDS}/{this.GuildId.ToString(CultureInfo.InvariantCulture)}{Endpoints.USERS}/{this.Id.ToString(CultureInfo.InvariantCulture)}{Endpoints.BANNERS}/{this.GuildBannerHash}.{(this.GuildBannerHash.StartsWith("a_", StringComparison.Ordinal) ? "gif" : "png")}?size=1024";
125126

126127
/// <summary>
127-
/// Gets the members guild avatar decoration data.
128+
/// Gets the member's guild avatar decoration data.
128129
/// </summary>
129130
[JsonProperty("avatar_decoration_data", NullValueHandling = NullValueHandling.Ignore)]
130131
public AvatarDecorationData GuildAvatarDecorationData { get; internal set; }
131132

133+
/// <summary>
134+
/// Gets the member's guild display name styles.
135+
/// </summary>
136+
[JsonProperty("display_name_styles", NullValueHandling = NullValueHandling.Ignore)]
137+
public DisplayNameStyles? GuildDisplayNameStyles { get; internal set; }
138+
132139
/// <summary>
133140
/// The color of this member's banner. Mutually exclusive with <see cref="GuildBannerHash" />.
134141
/// </summary>
@@ -304,6 +311,7 @@ public Permissions Permissions
304311
=> this.InteractionPermissions ?? this.GetPermissions();
305312

306313
/// <inheritdoc />
314+
[JsonIgnore]
307315
public override DisplayNameStyles? DisplayNameStyles
308316
=> this.User.DisplayNameStyles;
309317

DisCatSharp/Net/Abstractions/Transport/TransportMember.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ internal TransportMember()
4343
[JsonProperty("avatar_decoration_data", NullValueHandling = NullValueHandling.Ignore)]
4444
public AvatarDecorationData GuildAvatarDecorationData { get; internal set; }
4545

46+
/// <summary>
47+
/// Gets the guild display name styles.
48+
/// </summary>
49+
[JsonProperty("display_name_styles", NullValueHandling = NullValueHandling.Ignore)]
50+
public DisplayNameStyles? GuildDisplayNameStyles { get; internal set; }
51+
4652
/// <summary>
4753
/// Gets the guild bio.
4854
/// This is not available to bots tho.

0 commit comments

Comments
 (0)