fix: Wrong author for SocketUserMessage.ReferencedMessage
This commit is contained in:
@@ -139,7 +139,29 @@ namespace Discord.WebSocket
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (model.ReferencedMessage.IsSpecified && model.ReferencedMessage.Value != null)
|
if (model.ReferencedMessage.IsSpecified && model.ReferencedMessage.Value != null)
|
||||||
_referencedMessage = RestUserMessage.Create(Discord, Channel, Author, model.ReferencedMessage.Value);
|
{
|
||||||
|
var refMsg = model.ReferencedMessage.Value;
|
||||||
|
ulong? webhookId = refMsg.WebhookId.ToNullable();
|
||||||
|
SocketUser refMsgAuthor = null;
|
||||||
|
if (refMsg.Author.IsSpecified)
|
||||||
|
{
|
||||||
|
if (guild != null)
|
||||||
|
{
|
||||||
|
if (webhookId != null)
|
||||||
|
refMsgAuthor = SocketWebhookUser.Create(guild, state, refMsg.Author.Value, webhookId.Value);
|
||||||
|
else
|
||||||
|
refMsgAuthor = guild.GetUser(refMsg.Author.Value.Id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
refMsgAuthor = (Channel as SocketChannel).GetUser(refMsg.Author.Value.Id);
|
||||||
|
if (refMsgAuthor == null)
|
||||||
|
refMsgAuthor = SocketUnknownUser.Create(Discord, state, refMsg.Author.Value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
// Message author wasn't specified in the payload, so create a completely anonymous unknown user
|
||||||
|
refMsgAuthor = new SocketUnknownUser(Discord, id: 0);
|
||||||
|
_referencedMessage = SocketUserMessage.Create(Discord, state, refMsgAuthor, Channel, refMsg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
|
|||||||
Reference in New Issue
Block a user