Archived
1
0
Fork 0
This repository has been archived on 2024-05-21. You can view files and clone it, but cannot push or open issues or pull requests.
maki/Maki/DiscordMessage.cs
2017-05-18 00:33:09 +02:00

48 lines
1.9 KiB
C#

using Maki.Structures.Messages;
using System;
using System.Linq;
namespace Maki
{
public class DiscordMessage
{
public readonly ulong Id;
public readonly DateTime Sent;
public readonly DiscordMember Sender;
public readonly DiscordChannel Channel;
private readonly Discord client;
public string Text { get; internal set; }
public DateTime Edited { get; internal set; }
public DiscordMember[] MentionsUsers { get; internal set; }
public DiscordRole[] MentionsRoles { get; internal set; }
public bool MentionsEveryone { get; internal set; }
public bool IsPinned { get; internal set; }
public bool MentionsMe(bool everyone = false, bool roles = true) =>
(everyone && MentionsEveryone)
|| (Channel.Type != DiscordChannelType.Private && roles && client.members.Where(x => x.User == client.Me && x.Server == Channel.Server).First().Roles.Where(x => MentionsRoles.Contains(x)).Count() > 0)
|| MentionsUsers.Select(x => x.User).Contains(client.Me);
public bool IsMe => client.Me == Sender.User;
internal DiscordMessage(Discord discord, Message msg, DiscordMember member, DiscordChannel channel)
{
client = discord;
Id = msg.Id;
Sent = msg.Sent;
Text = msg.Content;
Sender = member;
Channel = channel;
MentionsUsers = client.members.Where(x => x.Server == channel.Server && msg.Mentions.Select(y => y.Id).Contains(x.User.Id)).ToArray();
MentionsRoles = client.roles.Where(x => x.Server == channel.Server && msg.MentionsRoles.Contains(x.Id)).ToArray();
MentionsEveryone = msg.MentioningEveryone;
IsPinned = msg.IsPinned == true;
}
public DiscordMessage Edit(string text)
{
return this;
}
}
}