Fix NRE in Rest Interaction Guild User Resolution (#3210)
This commit is contained in:
@@ -19,7 +19,7 @@ namespace Discord.Rest
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the data received with this interaction, contains the button that was clicked.
|
/// Gets the data received with this interaction, contains the button that was clicked.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public new RestMessageComponentData Data { get; }
|
public new RestMessageComponentData Data { get; private set; }
|
||||||
|
|
||||||
/// <inheritdoc cref="IComponentInteraction.Message"/>
|
/// <inheritdoc cref="IComponentInteraction.Message"/>
|
||||||
public RestUserMessage Message { get; private set; }
|
public RestUserMessage Message { get; private set; }
|
||||||
@@ -29,17 +29,18 @@ namespace Discord.Rest
|
|||||||
internal RestMessageComponent(BaseDiscordClient client, Model model)
|
internal RestMessageComponent(BaseDiscordClient client, Model model)
|
||||||
: base(client, model.Id)
|
: base(client, model.Id)
|
||||||
{
|
{
|
||||||
var dataModel = model.Data.IsSpecified
|
|
||||||
? (DataModel)model.Data.Value
|
|
||||||
: null;
|
|
||||||
|
|
||||||
Data = new RestMessageComponentData(dataModel, client, Guild);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal new static async Task<RestMessageComponent> CreateAsync(DiscordRestClient client, Model model, bool doApiCall)
|
internal new static async Task<RestMessageComponent> CreateAsync(DiscordRestClient client, Model model, bool doApiCall)
|
||||||
{
|
{
|
||||||
var entity = new RestMessageComponent(client, model);
|
var entity = new RestMessageComponent(client, model);
|
||||||
await entity.UpdateAsync(client, model, doApiCall).ConfigureAwait(false);
|
await entity.UpdateAsync(client, model, doApiCall).ConfigureAwait(false);
|
||||||
|
|
||||||
|
var dataModel = model.Data.IsSpecified
|
||||||
|
? (DataModel)model.Data.Value
|
||||||
|
: null;
|
||||||
|
|
||||||
|
entity.Data = new RestMessageComponentData(dataModel, client, entity.Guild);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
internal override async Task UpdateAsync(DiscordRestClient discord, Model model, bool doApiCall)
|
internal override async Task UpdateAsync(DiscordRestClient discord, Model model, bool doApiCall)
|
||||||
|
|||||||
@@ -22,22 +22,22 @@ namespace Discord.Rest
|
|||||||
internal RestModal(DiscordRestClient client, ModelBase model)
|
internal RestModal(DiscordRestClient client, ModelBase model)
|
||||||
: base(client, model.Id)
|
: base(client, model.Id)
|
||||||
{
|
{
|
||||||
var dataModel = model.Data.IsSpecified
|
|
||||||
? (DataModel)model.Data.Value
|
|
||||||
: null;
|
|
||||||
|
|
||||||
if (model.Message.IsSpecified && model.ChannelId.IsSpecified)
|
if (model.Message.IsSpecified && model.ChannelId.IsSpecified)
|
||||||
{
|
{
|
||||||
Message = RestUserMessage.Create(Discord, Channel, User, model.Message.Value);
|
Message = RestUserMessage.Create(Discord, Channel, User, model.Message.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
Data = new RestModalData(dataModel, client, Guild);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal new static async Task<RestModal> CreateAsync(DiscordRestClient client, ModelBase model, bool doApiCall)
|
internal new static async Task<RestModal> CreateAsync(DiscordRestClient client, ModelBase model, bool doApiCall)
|
||||||
{
|
{
|
||||||
var entity = new RestModal(client, model);
|
var entity = new RestModal(client, model);
|
||||||
await entity.UpdateAsync(client, model, doApiCall);
|
await entity.UpdateAsync(client, model, doApiCall);
|
||||||
|
|
||||||
|
var dataModel = model.Data.IsSpecified
|
||||||
|
? (DataModel)model.Data.Value
|
||||||
|
: null;
|
||||||
|
|
||||||
|
entity.Data = new RestModalData(dataModel, client, entity.Guild);
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user