vassago/DiscordInterface/Models/Message.cs
Adam R Grey 3031779e24
All checks were successful
greyn/vassago/pipeline/head This commit looks good
gitea/vassago/pipeline/head This commit looks good
gitea.arg.rip/vassago/pipeline/head This commit looks good
fork: vassago
2023-06-01 00:03:23 -04:00

41 lines
1.1 KiB
C#

namespace vassago.DiscordInterface.Models;
using System;
using System.Linq;
using System.Threading.Tasks;
using Discord.WebSocket;
using Newtonsoft.Json;
using vassago.Models;
public class DiscordMessage : Message
{
private SocketUserMessage _externalEntity;
public DiscordMessage(SocketUserMessage suMessage)
{
_externalEntity = suMessage;
}
public override Task React(string reaction)
{
return _externalEntity.AddReactionAsync(Discord.Emote.Parse(reaction));
}
public override Task Reply(string message)
{
return _externalEntity.Channel.SendMessageAsync(message, messageReference: new Discord.MessageReference(_externalEntity.Id));
}
internal void Intake(SocketUserMessage suMessage, ulong currentUserId)
{
this.Content = suMessage.Content;
this.ExternalId = suMessage.Id;
this.Timestamp = suMessage.EditedTimestamp ?? suMessage.CreatedAt;
if (suMessage.MentionedUsers?.FirstOrDefault(muid => muid.Id == currentUserId) != null)
{
this.MentionsMe = true;
}
}
}