Skip to content

Commit 4371081

Browse files
committed
move data model resolution after entity update for restmessagecomponent and restmodal
1 parent 11a56bc commit 4371081

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

src/Discord.Net.Rest/Entities/Interactions/MessageComponents/RestMessageComponent.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class RestMessageComponent : RestInteraction, IComponentInteraction, IDis
1919
/// <summary>
2020
/// Gets the data received with this interaction, contains the button that was clicked.
2121
/// </summary>
22-
public new RestMessageComponentData Data { get; }
22+
public new RestMessageComponentData Data { get; private set; }
2323

2424
/// <inheritdoc cref="IComponentInteraction.Message"/>
2525
public RestUserMessage Message { get; private set; }
@@ -29,17 +29,18 @@ public class RestMessageComponent : RestInteraction, IComponentInteraction, IDis
2929
internal RestMessageComponent(BaseDiscordClient client, Model model)
3030
: base(client, model.Id)
3131
{
32-
var dataModel = model.Data.IsSpecified
33-
? (DataModel)model.Data.Value
34-
: null;
35-
36-
Data = new RestMessageComponentData(dataModel, client, Guild);
3732
}
3833

3934
internal new static async Task<RestMessageComponent> CreateAsync(DiscordRestClient client, Model model, bool doApiCall)
4035
{
4136
var entity = new RestMessageComponent(client, model);
4237
await entity.UpdateAsync(client, model, doApiCall).ConfigureAwait(false);
38+
39+
var dataModel = model.Data.IsSpecified
40+
? (DataModel)model.Data.Value
41+
: null;
42+
43+
entity.Data = new RestMessageComponentData(dataModel, client, entity.Guild);
4344
return entity;
4445
}
4546
internal override async Task UpdateAsync(DiscordRestClient discord, Model model, bool doApiCall)

src/Discord.Net.Rest/Entities/Interactions/Modals/RestModal.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@ public class RestModal : RestInteraction, IDiscordInteraction, IModalInteraction
2222
internal RestModal(DiscordRestClient client, ModelBase model)
2323
: base(client, model.Id)
2424
{
25-
var dataModel = model.Data.IsSpecified
26-
? (DataModel)model.Data.Value
27-
: null;
28-
2925
if (model.Message.IsSpecified && model.ChannelId.IsSpecified)
3026
{
3127
Message = RestUserMessage.Create(Discord, Channel, User, model.Message.Value);
3228
}
33-
34-
Data = new RestModalData(dataModel, client, Guild);
3529
}
3630

3731
internal new static async Task<RestModal> CreateAsync(DiscordRestClient client, ModelBase model, bool doApiCall)
3832
{
3933
var entity = new RestModal(client, model);
4034
await entity.UpdateAsync(client, model, doApiCall);
35+
36+
var dataModel = model.Data.IsSpecified
37+
? (DataModel)model.Data.Value
38+
: null;
39+
40+
entity.Data = new RestModalData(dataModel, client, entity.Guild);
4141
return entity;
4242
}
4343

0 commit comments

Comments
 (0)