30 lines
986 B
C#
30 lines
986 B
C#
using SkyBot.Models;
|
|
using Valour.Sdk.Client;
|
|
using Valour.Sdk.Models;
|
|
using Valour.Sdk.Models.Messages.Embeds;
|
|
using Valour.Shared;
|
|
|
|
namespace SkyBot.Helpers
|
|
{
|
|
public static class UserHelper
|
|
{
|
|
public static async Task<TaskResult<Message>> SendDirectMessageAsync(this User user, ValourClient client, string? content, Embed? embed = null)
|
|
{
|
|
var channelResult = await client.PrimaryNode.GetJsonAsync<Channel>($"api/channels/direct/byUser/{user.Id}");
|
|
if (!channelResult.Success)
|
|
return new TaskResult<Message>(false, "Could not open DM channel.");
|
|
|
|
var msg = new Message(client)
|
|
{
|
|
Content = content,
|
|
ChannelId = channelResult.Data.Id,
|
|
AuthorUserId = client.Me.Id,
|
|
Fingerprint = Guid.NewGuid().ToString()
|
|
};
|
|
msg.SetEmbed(embed);
|
|
|
|
return await client.MessageService.SendMessage(msg);
|
|
}
|
|
}
|
|
}
|