Skip to content

Commit f9ba642

Browse files
authored
[Fix] Certain global user properies not getting updated (#3158)
* yep * fix
1 parent 978f999 commit f9ba642

File tree

9 files changed

+159
-5
lines changed

9 files changed

+159
-5
lines changed

.gitignore

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,3 +206,53 @@ docs/api/\.manifest
206206

207207
# Codealike UID
208208
codealike.json
209+
WebhookEventsApp/WebhookEventsApp.csproj
210+
WebhookEventsApp/Properties/launchSettings.json
211+
WebhookEventsApp/Program.cs
212+
WebhookEventsApp/Modules/TestModule.cs
213+
WebhookEventsApp/Interaction.cs
214+
WebhookEventsApp/AspNetCoreInteractions.cs
215+
WebhookEventsApp/appsettings.json
216+
WebhookEventsApp/appsettings.Development.json
217+
VoiceFuckery/VoiceFuckery.csproj
218+
VoiceFuckery/Program.cs
219+
VoiceFuckery/opus.dll
220+
VoiceFuckery/libsodium.dll
221+
VoiceFuckery/bees.mp3
222+
ShardFuckery/ShardFuckery.csproj
223+
ShardFuckery/Program.cs
224+
RestInteractionsTestBot/RestInteractionsTestBot.csproj
225+
RestInteractionsTestBot/Properties/launchSettings.json
226+
RestInteractionsTestBot/Program.cs
227+
RestInteractionsTestBot/Modules/TestModule.cs
228+
RestInteractionsTestBot/BotService.cs
229+
RestInteractionsTestBot/AspNetCoreInteractions.cs
230+
RestInteractionsTestBot/appsettings.json
231+
RestInteractionsTestBot/appsettings.Development.json
232+
DNetTestApp/Program.cs
233+
DNetTestApp/DNetTestApp.csproj
234+
DNetRestIntFramework/Program.cs
235+
DNetRestIntFramework/DNetRestIntFramework.csproj
236+
DNetRestIntFramework/BotService.cs
237+
DiscordNetTestBot/Startup.cs
238+
DiscordNetTestBot/Properties/CommandLocalizations.ru.resx
239+
DiscordNetTestBot/Properties/CommandLocalizations.resx
240+
DiscordNetTestBot/Properties/CommandLocalizations.Designer.cs
241+
DiscordNetTestBot/Modules/TestModule.cs
242+
DiscordNetTestBot/Modules/MoreModules.cs
243+
DiscordNetTestBot/Modules/CringeAutocomplete.cs
244+
DiscordNetTestBot/Modules/CommandModule.cs
245+
DiscordNetTestBot/Modules/AnotherModule.cs
246+
DiscordNetTestBot/InteractionHandler.cs
247+
DiscordNetTestBot/DiscordNetTestBot.csproj
248+
DiscordNetTestBot/DiscordBot.cs
249+
DiscordNetTestBot/appsettings.json
250+
DiscordNetTestBot/DiscordNetTemplate.csproj
251+
DiscordNetTestBot/Services/DiscordBotService.cs
252+
DiscordNetTestBot/Services/InteractionHandler.cs
253+
DiscordNetTestBot/Modules/ModalValueDebug.cs
254+
DiscordNetTestBot/Modules/ComponentsDebug.cs
255+
ShardedFun/ShardedFun.csproj
256+
ShardedFun/Program.cs
257+
DiscordNetTestBot/Services/TetrisService.cs
258+
DiscordNetTestBot/Modules/TetrisModule.cs

src/Discord.Net.WebSocket/Entities/Users/SocketGlobalUser.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,27 @@ namespace Discord.WebSocket
88
[DebuggerDisplay(@"{DebuggerDisplay,nq}")]
99
internal class SocketGlobalUser : SocketUser
1010
{
11+
/// <inheritdoc />
1112
public override bool IsBot { get; internal set; }
13+
/// <inheritdoc />
1214
public override string Username { get; internal set; }
15+
/// <inheritdoc />
1316
public override ushort DiscriminatorValue { get; internal set; }
17+
/// <inheritdoc />
1418
public override string AvatarId { get; internal set; }
19+
/// <inheritdoc />
1520
public override string GlobalName { get; internal set; }
21+
/// <inheritdoc />
22+
public override string AvatarDecorationHash { get; internal set; }
23+
/// <inheritdoc />
24+
public override ulong? AvatarDecorationSkuId { get; internal set; }
25+
/// <inheritdoc />
26+
public override PrimaryGuild? PrimaryGuild { get; internal set; }
27+
/// <inheritdoc />
1628
internal override SocketPresence Presence { get; set; }
17-
29+
/// <inheritdoc />
1830
public override bool IsWebhook => false;
31+
/// <inheritdoc />
1932
internal override SocketGlobalUser GlobalUser { get => this; set => throw new NotImplementedException(); }
2033

2134
private readonly object _lockObj = new object();

src/Discord.Net.WebSocket/Entities/Users/SocketGroupUser.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,28 @@ public class SocketGroupUser : SocketUser, IGroupUser
3131
public override string AvatarId { get { return GlobalUser.AvatarId; } internal set { GlobalUser.AvatarId = value; } }
3232
/// <inheritdoc />
3333
public override string GlobalName { get { return GlobalUser.GlobalName; } internal set { GlobalUser.GlobalName = value; } }
34+
35+
/// <inheritdoc />
36+
public override string AvatarDecorationHash
37+
{
38+
get => GlobalUser.AvatarDecorationHash;
39+
internal set => GlobalUser.AvatarDecorationHash = value;
40+
}
41+
42+
/// <inheritdoc />
43+
public override ulong? AvatarDecorationSkuId
44+
{
45+
get => GlobalUser.AvatarDecorationSkuId;
46+
internal set => GlobalUser.AvatarDecorationSkuId = value;
47+
}
48+
49+
/// <inheritdoc />
50+
public override PrimaryGuild? PrimaryGuild
51+
{
52+
get => GlobalUser.PrimaryGuild;
53+
internal set => GlobalUser.PrimaryGuild = value;
54+
}
55+
3456
/// <inheritdoc />
3557
internal override SocketPresence Presence { get { return GlobalUser.Presence; } set { GlobalUser.Presence = value; } }
3658

src/Discord.Net.WebSocket/Entities/Users/SocketGuildUser.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@ public class SocketGuildUser : SocketUser, IGuildUser
5353
/// <inheritdoc />
5454
public override string GlobalName { get { return GlobalUser.GlobalName; } internal set { GlobalUser.GlobalName = value; } }
5555

56+
/// <inheritdoc />
57+
public override string AvatarDecorationHash { get => GlobalUser.AvatarDecorationHash; internal set => GlobalUser.AvatarDecorationHash = value; }
58+
/// <inheritdoc />
59+
public override ulong? AvatarDecorationSkuId { get => GlobalUser.AvatarDecorationSkuId; internal set => GlobalUser.AvatarDecorationSkuId = value; }
60+
/// <inheritdoc />
61+
public override PrimaryGuild? PrimaryGuild { get => GlobalUser.PrimaryGuild; internal set => GlobalUser.PrimaryGuild = value; }
62+
5663
/// <inheritdoc/>
5764
public string GuildBannerHash { get; private set; }
5865

src/Discord.Net.WebSocket/Entities/Users/SocketSelfUser.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,28 @@ public class SocketSelfUser : SocketUser, ISelfUser
4646
public override string AvatarId { get { return GlobalUser.AvatarId; } internal set { GlobalUser.AvatarId = value; } }
4747
/// <inheritdoc />
4848
public override string GlobalName { get { return GlobalUser.GlobalName; } internal set { GlobalUser.GlobalName = value; } }
49+
50+
/// <inheritdoc />
51+
public override string AvatarDecorationHash
52+
{
53+
get => GlobalUser.AvatarDecorationHash;
54+
internal set => GlobalUser.AvatarDecorationHash = value;
55+
}
56+
57+
/// <inheritdoc />
58+
public override ulong? AvatarDecorationSkuId
59+
{
60+
get => GlobalUser.AvatarDecorationSkuId;
61+
internal set => GlobalUser.AvatarDecorationSkuId = value;
62+
}
63+
64+
/// <inheritdoc />
65+
public override PrimaryGuild? PrimaryGuild
66+
{
67+
get => GlobalUser.PrimaryGuild;
68+
internal set => GlobalUser.PrimaryGuild = value;
69+
}
70+
4971
/// <inheritdoc />
5072
internal override SocketPresence Presence { get { return GlobalUser.Presence; } set { GlobalUser.Presence = value; } }
5173
/// <inheritdoc />

src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,28 @@ public override string GlobalName
6565
get => GlobalUser.GlobalName;
6666
internal set => GlobalUser.GlobalName = value;
6767
}
68+
69+
/// <inheritdoc />
70+
public override string AvatarDecorationHash
71+
{
72+
get => GlobalUser.AvatarDecorationHash;
73+
internal set => GlobalUser.AvatarDecorationHash = value;
74+
}
75+
76+
/// <inheritdoc />
77+
public override ulong? AvatarDecorationSkuId
78+
{
79+
get => GlobalUser.AvatarDecorationSkuId;
80+
internal set => GlobalUser.AvatarDecorationSkuId = value;
81+
}
82+
83+
/// <inheritdoc />
84+
public override PrimaryGuild? PrimaryGuild
85+
{
86+
get => GlobalUser.PrimaryGuild;
87+
internal set => GlobalUser.PrimaryGuild = value;
88+
}
89+
6890
/// <inheritdoc/>
6991
public string DisplayAvatarId => GuildAvatarId ?? AvatarId;
7092

src/Discord.Net.WebSocket/Entities/Users/SocketUnknownUser.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ public class SocketUnknownUser : SocketUser
2121
public override string AvatarId { get; internal set; }
2222
/// <inheritdoc />
2323
public override string GlobalName { get; internal set; }
24+
/// <inheritdoc />
25+
public override string AvatarDecorationHash { get; internal set; }
26+
/// <inheritdoc />
27+
public override ulong? AvatarDecorationSkuId { get; internal set; }
28+
/// <inheritdoc />
29+
public override PrimaryGuild? PrimaryGuild { get; internal set; }
2430

2531
/// <inheritdoc />
2632
public override bool IsBot { get; internal set; }

src/Discord.Net.WebSocket/Entities/Users/SocketUser.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,13 @@ public abstract class SocketUser : SocketEntity<ulong>, IUser
4949
public IReadOnlyCollection<IActivity> Activities => Presence.Activities ?? ImmutableList<IActivity>.Empty;
5050

5151
/// <inheritdoc />
52-
public string AvatarDecorationHash { get; private set; }
52+
public abstract string AvatarDecorationHash { get; internal set; }
5353

5454
/// <inheritdoc />
55-
public ulong? AvatarDecorationSkuId { get; private set; }
55+
public abstract ulong? AvatarDecorationSkuId { get; internal set; }
56+
57+
/// <inheritdoc />
58+
public abstract PrimaryGuild? PrimaryGuild { get; internal set; }
5659

5760
/// <inheritdoc />
5861
public PrimaryGuild? PrimaryGuild { get; private set; }
@@ -120,15 +123,15 @@ internal virtual bool Update(ClientState state, Model model)
120123
{
121124
if (model.PrimaryGuild.Value is null)
122125
{
123-
PrimaryGuild = null;
124126
if (PrimaryGuild is not null)
125127
hasChanges = true;
128+
PrimaryGuild = null;
126129
}
127130
else
128131
{
129132
if (PrimaryGuild?.GuildId != model.PrimaryGuild.Value.GuildId ||
130133
PrimaryGuild?.BadgeHash != model.PrimaryGuild.Value.BadgeHash ||
131-
PrimaryGuild?.Tag != model.PrimaryGuild.Value.Tag||
134+
PrimaryGuild?.Tag != model.PrimaryGuild.Value.Tag ||
132135
PrimaryGuild?.IdentityEnabled != model.PrimaryGuild.Value.IdentityEnabled)
133136
{
134137
PrimaryGuild = new(

src/Discord.Net.WebSocket/Entities/Users/SocketWebhookUser.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,15 @@ public class SocketWebhookUser : SocketUser, IWebhookUser
2828
/// <inheritdoc />
2929
public override string GlobalName { get; internal set; }
3030

31+
/// <inheritdoc />
32+
public override string AvatarDecorationHash { get; internal set; }
33+
34+
/// <inheritdoc />
35+
public override ulong? AvatarDecorationSkuId { get; internal set; }
36+
37+
/// <inheritdoc />
38+
public override PrimaryGuild? PrimaryGuild { get; internal set; }
39+
3140
/// <inheritdoc />
3241
public override bool IsBot { get; internal set; }
3342

0 commit comments

Comments
 (0)