Added several new events
This commit is contained in:
@@ -128,4 +128,14 @@ namespace Discord.API.Models
|
||||
[JsonProperty(PropertyName = "channel_id")]
|
||||
public string ChannelId;
|
||||
}
|
||||
|
||||
internal class Role
|
||||
{
|
||||
[JsonProperty(PropertyName = "permissions")]
|
||||
public int Permissions;
|
||||
[JsonProperty(PropertyName = "name")]
|
||||
public string Name;
|
||||
[JsonProperty(PropertyName = "id")]
|
||||
public string Id;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,19 +30,22 @@ namespace Discord.API.Models
|
||||
|
||||
internal sealed class ChannelCreate : ChannelInfo { }
|
||||
internal sealed class ChannelDelete : ChannelInfo { }
|
||||
internal sealed class ChannelUpdate : ChannelInfo { }
|
||||
|
||||
internal sealed class GuildMemberAdd
|
||||
internal sealed class GuildMemberAdd : GuildMemberUpdate
|
||||
{
|
||||
[JsonProperty(PropertyName = "joined_at")]
|
||||
public DateTime JoinedAt;
|
||||
}
|
||||
internal class GuildMemberUpdate
|
||||
{
|
||||
[JsonProperty(PropertyName = "user")]
|
||||
public UserInfo User;
|
||||
[JsonProperty(PropertyName = "roles")]
|
||||
public object[] Roles;
|
||||
[JsonProperty(PropertyName = "joined_at")]
|
||||
public DateTime JoinedAt;
|
||||
[JsonProperty(PropertyName = "guild_id")]
|
||||
public string GuildId;
|
||||
}
|
||||
|
||||
internal sealed class GuildMemberRemove
|
||||
{
|
||||
[JsonProperty(PropertyName = "user")]
|
||||
@@ -50,6 +53,37 @@ namespace Discord.API.Models
|
||||
[JsonProperty(PropertyName = "guild_id")]
|
||||
public string GuildId;
|
||||
}
|
||||
|
||||
internal sealed class GuildRoleCreateUpdate
|
||||
{
|
||||
[JsonProperty(PropertyName = "role")]
|
||||
public Role Role;
|
||||
[JsonProperty(PropertyName = "guild_id")]
|
||||
public string GuildId;
|
||||
}
|
||||
internal sealed class GuildRoleDelete
|
||||
{
|
||||
[JsonProperty(PropertyName = "role_id")]
|
||||
public string RoleId;
|
||||
[JsonProperty(PropertyName = "guild_id")]
|
||||
public string GuildId;
|
||||
}
|
||||
|
||||
internal sealed class GuildBanAddRemove
|
||||
{
|
||||
[JsonProperty(PropertyName = "user")]
|
||||
public UserInfo User;
|
||||
[JsonProperty(PropertyName = "guild_id")]
|
||||
public string GuildId;
|
||||
}
|
||||
internal sealed class GuildBanRemove
|
||||
{
|
||||
[JsonProperty(PropertyName = "user_id")]
|
||||
public string UserId;
|
||||
[JsonProperty(PropertyName = "guild_id")]
|
||||
public string GuildId;
|
||||
}
|
||||
|
||||
internal sealed class UserUpdate : SelfUserInfo { }
|
||||
internal sealed class PresenceUpdate : PresenceUserInfo { }
|
||||
internal sealed class VoiceStateUpdate
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
<Compile Include="API\Models\ApiRequests.cs" />
|
||||
<Compile Include="API\Endpoints.cs" />
|
||||
<Compile Include="API\Models\WebSocketCommands.cs" />
|
||||
<Compile Include="Models\Role.cs" />
|
||||
<Compile Include="Models\ChatMessageReference.cs" />
|
||||
<Compile Include="Models\ChatMessage.cs" />
|
||||
<Compile Include="Models\Channel.cs" />
|
||||
|
||||
@@ -5,46 +5,12 @@ namespace Discord
|
||||
{
|
||||
public partial class DiscordClient
|
||||
{
|
||||
public sealed class ServerEventArgs : EventArgs
|
||||
{
|
||||
public readonly Server Server;
|
||||
internal ServerEventArgs(Server server) { Server = server; }
|
||||
}
|
||||
public sealed class ChannelEventArgs : EventArgs
|
||||
{
|
||||
public readonly Channel Channel;
|
||||
internal ChannelEventArgs(Channel channel) { Channel = channel; }
|
||||
}
|
||||
public sealed class UserEventArgs : EventArgs
|
||||
{
|
||||
public readonly User User;
|
||||
internal UserEventArgs(User user) { User = user; }
|
||||
}
|
||||
public sealed class MessageCreateEventArgs : EventArgs
|
||||
{
|
||||
public readonly ChatMessage Message;
|
||||
internal MessageCreateEventArgs(ChatMessage msg) { Message = msg; }
|
||||
}
|
||||
public sealed class MessageEventArgs : EventArgs
|
||||
{
|
||||
public readonly ChatMessageReference Message;
|
||||
internal MessageEventArgs(ChatMessageReference msg) { Message = msg; }
|
||||
}
|
||||
//Debug
|
||||
public sealed class LogMessageEventArgs : EventArgs
|
||||
{
|
||||
public readonly string Message;
|
||||
internal LogMessageEventArgs(string msg) { Message = msg; }
|
||||
}
|
||||
public sealed class UserTypingEventArgs : EventArgs
|
||||
{
|
||||
public readonly User User;
|
||||
public readonly Channel Channel;
|
||||
internal UserTypingEventArgs(User user, Channel channel)
|
||||
{
|
||||
User = user;
|
||||
Channel = channel;
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler<LogMessageEventArgs> DebugMessage;
|
||||
private void RaiseOnDebugMessage(string message)
|
||||
@@ -53,6 +19,7 @@ namespace Discord
|
||||
DebugMessage(this, new LogMessageEventArgs(message));
|
||||
}
|
||||
|
||||
//General
|
||||
public event EventHandler Connected;
|
||||
private void RaiseConnected()
|
||||
{
|
||||
@@ -73,54 +40,202 @@ namespace Discord
|
||||
if (LoggedIn != null)
|
||||
LoggedIn(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
public event EventHandler<ServerEventArgs> ServerCreated, ServerDestroyed;
|
||||
|
||||
//Server
|
||||
public sealed class ServerEventArgs : EventArgs
|
||||
{
|
||||
public readonly Server Server;
|
||||
internal ServerEventArgs(Server server) { Server = server; }
|
||||
}
|
||||
|
||||
public event EventHandler<ServerEventArgs> ServerCreated;
|
||||
private void RaiseServerCreated(Server server)
|
||||
{
|
||||
if (ServerCreated != null)
|
||||
ServerCreated(this, new ServerEventArgs(server));
|
||||
}
|
||||
|
||||
public event EventHandler<ServerEventArgs> ServerDestroyed;
|
||||
private void RaiseServerDestroyed(Server server)
|
||||
{
|
||||
if (ServerDestroyed != null)
|
||||
ServerDestroyed(this, new ServerEventArgs(server));
|
||||
}
|
||||
|
||||
public event EventHandler<ChannelEventArgs> ChannelCreated, ChannelDestroyed;
|
||||
//Channel
|
||||
public sealed class ChannelEventArgs : EventArgs
|
||||
{
|
||||
public readonly Channel Channel;
|
||||
internal ChannelEventArgs(Channel channel) { Channel = channel; }
|
||||
}
|
||||
|
||||
public event EventHandler<ChannelEventArgs> ChannelCreated;
|
||||
private void RaiseChannelCreated(Channel channel)
|
||||
{
|
||||
if (ChannelCreated != null)
|
||||
ChannelCreated(this, new ChannelEventArgs(channel));
|
||||
}
|
||||
|
||||
public event EventHandler<ChannelEventArgs> ChannelDestroyed;
|
||||
private void RaiseChannelDestroyed(Channel channel)
|
||||
{
|
||||
if (ChannelDestroyed != null)
|
||||
ChannelDestroyed(this, new ChannelEventArgs(channel));
|
||||
}
|
||||
|
||||
public event EventHandler<ChannelEventArgs> ChannelUpdated;
|
||||
private void RaiseChannelUpdated(Channel channel)
|
||||
{
|
||||
if (ChannelUpdated != null)
|
||||
ChannelUpdated(this, new ChannelEventArgs(channel));
|
||||
}
|
||||
|
||||
//User
|
||||
public sealed class UserEventArgs : EventArgs
|
||||
{
|
||||
public readonly User User;
|
||||
internal UserEventArgs(User user) { User = user; }
|
||||
}
|
||||
|
||||
//Message
|
||||
public sealed class MessageCreateEventArgs : EventArgs
|
||||
{
|
||||
public readonly ChatMessage Message;
|
||||
internal MessageCreateEventArgs(ChatMessage msg) { Message = msg; }
|
||||
}
|
||||
public sealed class MessageEventArgs : EventArgs
|
||||
{
|
||||
public readonly ChatMessageReference Message;
|
||||
internal MessageEventArgs(ChatMessageReference msg) { Message = msg; }
|
||||
}
|
||||
|
||||
public event EventHandler<MessageCreateEventArgs> MessageCreated;
|
||||
public event EventHandler<MessageEventArgs> MessageDeleted, MessageUpdated, MessageAcknowledged;
|
||||
private void RaiseMessageCreated(ChatMessage msg)
|
||||
{
|
||||
if (MessageCreated != null)
|
||||
MessageCreated(this, new MessageCreateEventArgs(msg));
|
||||
}
|
||||
|
||||
public event EventHandler<MessageEventArgs> MessageDeleted;
|
||||
private void RaiseMessageDeleted(ChatMessageReference msg)
|
||||
{
|
||||
if (MessageDeleted != null)
|
||||
MessageDeleted(this, new MessageEventArgs(msg));
|
||||
}
|
||||
|
||||
public event EventHandler<MessageEventArgs> MessageUpdated;
|
||||
private void RaiseMessageUpdated(ChatMessageReference msg)
|
||||
{
|
||||
if (MessageUpdated != null)
|
||||
MessageUpdated(this, new MessageEventArgs(msg));
|
||||
}
|
||||
|
||||
public event EventHandler<MessageEventArgs> MessageAcknowledged;
|
||||
private void RaiseMessageAcknowledged(ChatMessageReference msg)
|
||||
{
|
||||
if (MessageAcknowledged != null)
|
||||
MessageAcknowledged(this, new MessageEventArgs(msg));
|
||||
}
|
||||
|
||||
//Role
|
||||
public sealed class RoleEventArgs : EventArgs
|
||||
{
|
||||
public readonly Role Role;
|
||||
internal RoleEventArgs(Role role) { Role = role; }
|
||||
}
|
||||
|
||||
public event EventHandler<RoleEventArgs> RoleCreated;
|
||||
private void RaiseRoleCreated(Role role)
|
||||
{
|
||||
if (RoleCreated != null)
|
||||
RoleCreated(this, new RoleEventArgs(role));
|
||||
}
|
||||
|
||||
public event EventHandler<RoleEventArgs> RoleUpdated;
|
||||
private void RaiseRoleDeleted(Role role)
|
||||
{
|
||||
if (RoleDeleted != null)
|
||||
RoleDeleted(this, new RoleEventArgs(role));
|
||||
}
|
||||
|
||||
public event EventHandler<RoleEventArgs> RoleDeleted;
|
||||
private void RaiseRoleUpdated(Role role)
|
||||
{
|
||||
if (RoleUpdated != null)
|
||||
RoleUpdated(this, new RoleEventArgs(role));
|
||||
}
|
||||
|
||||
//Ban
|
||||
public sealed class BanEventArgs : EventArgs
|
||||
{
|
||||
public readonly User User;
|
||||
public readonly Server Server;
|
||||
internal BanEventArgs(User user, Server server)
|
||||
{
|
||||
User = user;
|
||||
Server = server;
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler<BanEventArgs> BanAdded;
|
||||
private void RaiseBanAdded(User user, Server server)
|
||||
{
|
||||
if (BanAdded != null)
|
||||
BanAdded(this, new BanEventArgs(user, server));
|
||||
}
|
||||
|
||||
public event EventHandler<BanEventArgs> BanRemoved;
|
||||
private void RaiseBanRemoved(User user, Server server)
|
||||
{
|
||||
if (BanRemoved != null)
|
||||
BanRemoved(this, new BanEventArgs(user, server));
|
||||
}
|
||||
|
||||
//Member
|
||||
public sealed class MemberEventArgs : EventArgs
|
||||
{
|
||||
public readonly User User;
|
||||
public readonly Server Server;
|
||||
internal MemberEventArgs(User user, Server server)
|
||||
{
|
||||
User = user;
|
||||
Server = server;
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler<MemberEventArgs> MemberAdded;
|
||||
private void RaiseMemberAdded(User user, Server server)
|
||||
{
|
||||
if (MemberAdded != null)
|
||||
MemberAdded(this, new MemberEventArgs(user, server));
|
||||
}
|
||||
|
||||
public event EventHandler<MemberEventArgs> MemberRemoved;
|
||||
private void RaiseMemberRemoved(User user, Server server)
|
||||
{
|
||||
if (MemberRemoved != null)
|
||||
MemberRemoved(this, new MemberEventArgs(user, server));
|
||||
}
|
||||
|
||||
public event EventHandler<MemberEventArgs> MemberUpdated;
|
||||
private void RaiseMemberUpdated(User user, Server server)
|
||||
{
|
||||
if (MemberUpdated != null)
|
||||
MemberUpdated(this, new MemberEventArgs(user, server));
|
||||
}
|
||||
|
||||
//Status
|
||||
public sealed class UserTypingEventArgs : EventArgs
|
||||
{
|
||||
public readonly User User;
|
||||
public readonly Channel Channel;
|
||||
internal UserTypingEventArgs(User user, Channel channel)
|
||||
{
|
||||
User = user;
|
||||
Channel = channel;
|
||||
}
|
||||
}
|
||||
|
||||
public event EventHandler<UserEventArgs> PresenceUpdated;
|
||||
private void RaisePresenceUpdated(User user)
|
||||
{
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using System.Threading.Tasks;
|
||||
using Role = Discord.Models.Role;
|
||||
|
||||
namespace Discord
|
||||
{
|
||||
@@ -107,15 +108,23 @@ namespace Discord
|
||||
RaiseChannelDestroyed(channel);
|
||||
}
|
||||
break;
|
||||
case "CHANNEL_UPDATE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.ChannelUpdate>();
|
||||
var channel = DeleteChannel(data.Id);
|
||||
RaiseChannelUpdated(channel);
|
||||
}
|
||||
break;
|
||||
|
||||
//Members
|
||||
case "GUILD_MEMBER_ADD":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.GuildMemberAdd>();
|
||||
var user = UpdateUser(data.User);
|
||||
var user = UpdateUser(data.User);
|
||||
var server = GetServer(data.GuildId);
|
||||
server._members[user.Id] = true;
|
||||
}
|
||||
RaiseMemberAdded(user, server);
|
||||
}
|
||||
break;
|
||||
case "GUILD_MEMBER_REMOVE":
|
||||
{
|
||||
@@ -123,22 +132,56 @@ namespace Discord
|
||||
var user = UpdateUser(data.User);
|
||||
var server = GetServer(data.GuildId);
|
||||
server._members[user.Id] = true;
|
||||
RaiseMemberRemoved(user, server);
|
||||
}
|
||||
break;
|
||||
case "GUILD_MEMBER_UPDATE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.GuildMemberUpdate>();
|
||||
var user = UpdateUser(data.User);
|
||||
var server = GetServer(data.GuildId);
|
||||
RaiseMemberUpdated(user, server);
|
||||
}
|
||||
break;
|
||||
|
||||
//Users
|
||||
case "PRESENCE_UPDATE":
|
||||
//Roles
|
||||
case "GUILD_ROLE_CREATE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.PresenceUpdate>();
|
||||
var user = UpdateUser(data);
|
||||
RaisePresenceUpdated(user);
|
||||
var data = e.Event.ToObject<WebSocketEvents.GuildRoleCreateUpdate>();
|
||||
var role = UpdateRole(data);
|
||||
RaiseRoleCreated(role);
|
||||
}
|
||||
break;
|
||||
case "VOICE_STATE_UPDATE":
|
||||
case "GUILD_ROLE_DELETE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.VoiceStateUpdate>();
|
||||
var user = GetUser(data.UserId); //TODO: Don't ignore this
|
||||
RaiseVoiceStateUpdated(user);
|
||||
var data = e.Event.ToObject<WebSocketEvents.GuildRoleDelete>();
|
||||
var role = GetRole(data.RoleId, data.GuildId);
|
||||
RaiseRoleDeleted(role);
|
||||
}
|
||||
break;
|
||||
case "GUILD_ROLE_UPDATE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.GuildRoleCreateUpdate>();
|
||||
var role = UpdateRole(data);
|
||||
RaiseRoleUpdated(role);
|
||||
}
|
||||
break;
|
||||
|
||||
//Roles
|
||||
case "GUILD_BAN_ADD":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.GuildBanAddRemove>();
|
||||
var user = UpdateUser(data.User);
|
||||
var server = GetServer(data.GuildId);
|
||||
RaiseBanAdded(user, server);
|
||||
}
|
||||
break;
|
||||
case "GUILD_BAN_REMOVE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.GuildBanAddRemove>();
|
||||
var user = UpdateUser(data.User);
|
||||
var server = GetServer(data.GuildId);
|
||||
RaiseBanRemoved(user, server);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -172,6 +215,22 @@ namespace Discord
|
||||
RaiseMessageAcknowledged(msg);
|
||||
}
|
||||
break;
|
||||
|
||||
//Statuses
|
||||
case "PRESENCE_UPDATE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.PresenceUpdate>();
|
||||
var user = UpdateUser(data);
|
||||
RaisePresenceUpdated(user);
|
||||
}
|
||||
break;
|
||||
case "VOICE_STATE_UPDATE":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.VoiceStateUpdate>();
|
||||
var user = GetUser(data.UserId); //TODO: Don't ignore this
|
||||
RaiseVoiceStateUpdated(user);
|
||||
}
|
||||
break;
|
||||
case "TYPING_START":
|
||||
{
|
||||
var data = e.Event.ToObject<WebSocketEvents.TypingStart>();
|
||||
@@ -271,7 +330,7 @@ namespace Discord
|
||||
_users.TryGetValue(id, out user);
|
||||
return user;
|
||||
}
|
||||
private User UpdateUser(UserInfo model)
|
||||
private User UpdateUser(UserInfo model, bool addNew = true)
|
||||
{
|
||||
var user = GetUser(model.Id) ?? new User(model.Id, this);
|
||||
|
||||
@@ -291,7 +350,8 @@ namespace Discord
|
||||
user.Status = extendedModel.Status;
|
||||
}
|
||||
|
||||
_users[model.Id] = user;
|
||||
if (addNew)
|
||||
_users[model.Id] = user;
|
||||
return user;
|
||||
}
|
||||
|
||||
@@ -302,7 +362,7 @@ namespace Discord
|
||||
_servers.TryGetValue(id, out server);
|
||||
return server;
|
||||
}
|
||||
private Server UpdateServer(ServerInfo model)
|
||||
private Server UpdateServer(ServerInfo model, bool addNew = true)
|
||||
{
|
||||
var server = GetServer(model.Id) ?? new Server(model.Id, this);
|
||||
|
||||
@@ -321,17 +381,18 @@ namespace Discord
|
||||
|
||||
foreach (var channel in extendedModel.Channels)
|
||||
{
|
||||
UpdateChannel(channel, model.Id);
|
||||
UpdateChannel(channel, model.Id, addNew);
|
||||
server._channels[channel.Id] = true;
|
||||
}
|
||||
foreach (var membership in extendedModel.Members)
|
||||
{
|
||||
UpdateUser(membership.User);
|
||||
UpdateUser(membership.User, addNew);
|
||||
server._members[membership.User.Id] = true;
|
||||
}
|
||||
}
|
||||
|
||||
_servers[model.Id] = server;
|
||||
if (addNew)
|
||||
_servers[model.Id] = server;
|
||||
return server;
|
||||
}
|
||||
|
||||
@@ -342,7 +403,7 @@ namespace Discord
|
||||
_channels.TryGetValue(id, out channel);
|
||||
return channel;
|
||||
}
|
||||
private Channel UpdateChannel(ChannelInfo model, string serverId)
|
||||
private Channel UpdateChannel(ChannelInfo model, string serverId, bool addNew = true)
|
||||
{
|
||||
var channel = GetChannel(model.Id) ?? new Channel(model.Id, serverId, this);
|
||||
|
||||
@@ -352,7 +413,8 @@ namespace Discord
|
||||
channel.RecipientId = model.Recipient?.Id;
|
||||
channel.Type = model.Type;
|
||||
|
||||
_channels[model.Id] = channel;
|
||||
if (addNew)
|
||||
_channels[model.Id] = channel;
|
||||
return channel;
|
||||
}
|
||||
private Channel DeleteChannel(string id)
|
||||
@@ -370,18 +432,13 @@ namespace Discord
|
||||
private ChatMessageReference GetMessage(string id, string channelId)
|
||||
{
|
||||
if (id == null || channelId == null) return null;
|
||||
var msg = new ChatMessageReference(id, this);
|
||||
|
||||
msg.ChannelId = channelId;
|
||||
|
||||
return msg;
|
||||
return new ChatMessageReference(id, channelId, this);
|
||||
}
|
||||
private ChatMessage UpdateMessage(WebSocketEvents.MessageCreate model)
|
||||
private ChatMessage UpdateMessage(WebSocketEvents.MessageCreate model, bool addNew = true)
|
||||
{
|
||||
return new ChatMessage(model.Id, this)
|
||||
return new ChatMessage(model.Id, model.ChannelId, this)
|
||||
{
|
||||
Attachments = model.Attachments,
|
||||
ChannelId = model.ChannelId,
|
||||
Text = model.Content,
|
||||
Embeds = model.Embeds,
|
||||
IsMentioningEveryone = model.IsMentioningEveryone,
|
||||
@@ -391,6 +448,20 @@ namespace Discord
|
||||
};
|
||||
}
|
||||
|
||||
private Role GetRole(string id, string serverId)
|
||||
{
|
||||
if (id == null || serverId == null) return null;
|
||||
return new Role(id, serverId, this);
|
||||
}
|
||||
private Role UpdateRole(WebSocketEvents.GuildRoleCreateUpdate role, bool addNew = true)
|
||||
{
|
||||
return new Role(role.Role.Id, role.GuildId, this)
|
||||
{
|
||||
Name = role.Role.Name,
|
||||
Permissions = role.Role.Permissions
|
||||
};
|
||||
}
|
||||
|
||||
private void CheckReady()
|
||||
{
|
||||
if (!_isReady)
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace Discord.Models
|
||||
{
|
||||
public class Channel
|
||||
public sealed class Channel
|
||||
{
|
||||
protected readonly DiscordClient _client;
|
||||
private readonly DiscordClient _client;
|
||||
private string _name;
|
||||
|
||||
public string Id { get; }
|
||||
@@ -12,8 +12,7 @@ namespace Discord.Models
|
||||
|
||||
public bool IsPrivate { get; internal set; }
|
||||
public string Type { get; internal set; }
|
||||
|
||||
[JsonIgnore]
|
||||
|
||||
public string ServerId { get; }
|
||||
[JsonIgnore]
|
||||
public Server Server { get { return ServerId != null ? _client.GetServer(ServerId) : null; } }
|
||||
@@ -35,7 +34,6 @@ namespace Discord.Models
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
//return Name + " (" + Id + ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,23 +3,23 @@ using System;
|
||||
|
||||
namespace Discord.Models
|
||||
{
|
||||
public class ChatMessage : ChatMessageReference
|
||||
public sealed class ChatMessage : ChatMessageReference
|
||||
{
|
||||
public bool IsMentioningEveryone { get; internal set; }
|
||||
public bool IsTTS { get; internal set; }
|
||||
public string Text { get; internal set; }
|
||||
public DateTime Timestamp { get; internal set; }
|
||||
|
||||
[JsonIgnore]
|
||||
|
||||
public string UserId { get; internal set; }
|
||||
[JsonIgnore]
|
||||
public User User { get { return _client.GetUser(UserId); } }
|
||||
|
||||
//Not Implemented
|
||||
public object[] Attachments { get; internal set; }
|
||||
public object[] Embeds { get; internal set; }
|
||||
|
||||
internal ChatMessage(string id, DiscordClient client)
|
||||
: base(id, client)
|
||||
internal ChatMessage(string id, string channelId, DiscordClient client)
|
||||
: base(id, channelId, client)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
namespace Discord.Models
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.Models
|
||||
{
|
||||
public class ChatMessageReference
|
||||
{
|
||||
protected readonly DiscordClient _client;
|
||||
|
||||
public string Id { get; }
|
||||
public string ChannelId { get; internal set; }
|
||||
|
||||
public string ChannelId { get; }
|
||||
[JsonIgnore]
|
||||
public Channel Channel { get { return _client.GetChannel(ChannelId); } }
|
||||
|
||||
internal ChatMessageReference(string id, DiscordClient client)
|
||||
internal ChatMessageReference(string id, string channelId, DiscordClient client)
|
||||
{
|
||||
Id = id;
|
||||
ChannelId = channelId;
|
||||
_client = client;
|
||||
}
|
||||
}
|
||||
|
||||
29
Discord.Net/Models/Role.cs
Normal file
29
Discord.Net/Models/Role.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.Models
|
||||
{
|
||||
public sealed class Role
|
||||
{
|
||||
private readonly DiscordClient _client;
|
||||
|
||||
public string Id { get; }
|
||||
public string Name { get; internal set; }
|
||||
|
||||
public int Permissions { get; internal set; }
|
||||
|
||||
public string ServerId { get; }
|
||||
[JsonIgnore]
|
||||
public Server Server { get { return _client.GetServer(ServerId); } }
|
||||
|
||||
internal Role(string id, string serverId, DiscordClient client)
|
||||
{
|
||||
Id = id;
|
||||
_client = client;
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,9 +6,9 @@ using System.Linq;
|
||||
|
||||
namespace Discord.Models
|
||||
{
|
||||
public class Server
|
||||
public sealed class Server
|
||||
{
|
||||
protected readonly DiscordClient _client;
|
||||
private readonly DiscordClient _client;
|
||||
|
||||
public string Id { get; }
|
||||
public string Name { get; internal set; }
|
||||
@@ -22,13 +22,13 @@ namespace Discord.Models
|
||||
public User Owner { get { return _client.GetUser(OwnerId); } }
|
||||
|
||||
internal ConcurrentDictionary<string, bool> _members;
|
||||
[JsonIgnore]
|
||||
public IEnumerable<string> MemberIds { get { return _members.Keys; } }
|
||||
[JsonIgnore]
|
||||
public IEnumerable<User> Members { get { return _members.Keys.Select(x => _client.GetUser(x)); } }
|
||||
|
||||
internal ConcurrentDictionary<string, bool> _channels;
|
||||
[JsonIgnore]
|
||||
public IEnumerable<string> ChannelIds { get { return _channels.Keys; } }
|
||||
[JsonIgnore]
|
||||
public IEnumerable<Channel> Channels { get { return _channels.Keys.Select(x => _client.GetChannel(x)); } }
|
||||
|
||||
//Not Implemented
|
||||
@@ -47,7 +47,6 @@ namespace Discord.Models
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
//return Name + " (" + Id + ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
namespace Discord.Models
|
||||
{
|
||||
public class User
|
||||
public sealed class User
|
||||
{
|
||||
protected readonly DiscordClient _client;
|
||||
private readonly DiscordClient _client;
|
||||
|
||||
public string Id { get; }
|
||||
public string Name { get; internal set; }
|
||||
@@ -34,7 +34,6 @@ namespace Discord.Models
|
||||
public override string ToString()
|
||||
{
|
||||
return Name;
|
||||
//return Name + " (" + Id + ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user