|
@@ -46,13 +46,6 @@ namespace Discord |
|
|
_servers = new Servers(this, cacheLock); |
|
|
_servers = new Servers(this, cacheLock); |
|
|
_users = new Users(this, cacheLock); |
|
|
_users = new Users(this, cacheLock); |
|
|
|
|
|
|
|
|
_channels.Clear(); |
|
|
|
|
|
_members.Clear(); |
|
|
|
|
|
_messages.Clear(); |
|
|
|
|
|
_roles.Clear(); |
|
|
|
|
|
_servers.Clear(); |
|
|
|
|
|
_users.Clear(); |
|
|
|
|
|
|
|
|
|
|
|
_status = UserStatus.Online; |
|
|
_status = UserStatus.Online; |
|
|
|
|
|
|
|
|
this.Connected += async (s, e) => |
|
|
this.Connected += async (s, e) => |
|
@@ -76,58 +69,58 @@ namespace Discord |
|
|
if (_config.LogLevel >= LogMessageSeverity.Info) |
|
|
if (_config.LogLevel >= LogMessageSeverity.Info) |
|
|
{ |
|
|
{ |
|
|
ServerCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ServerCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Created Server: {e.Server?.Name}"); |
|
|
|
|
|
|
|
|
$"Created Server: {e.Server?.Name ?? "[Private]"}"); |
|
|
ServerDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ServerDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Destroyed Server: {e.Server?.Name}"); |
|
|
|
|
|
|
|
|
$"Destroyed Server: {e.Server?.Name ?? "[Private]"}"); |
|
|
ServerUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ServerUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Updated Server: {e.Server?.Name}"); |
|
|
|
|
|
|
|
|
$"Updated Server: {e.Server?.Name ?? "[Private]"}"); |
|
|
ServerAvailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ServerAvailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Server Available: {e.Server?.Name}"); |
|
|
|
|
|
|
|
|
$"Server Available: {e.Server?.Name ?? "[Private]"}"); |
|
|
ServerUnavailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ServerUnavailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Server Unavailable: {e.Server?.Name}"); |
|
|
|
|
|
|
|
|
$"Server Unavailable: {e.Server?.Name ?? "[Private]"}"); |
|
|
ChannelCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ChannelCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Created Channel: {e.Server?.Name}/{e.Channel?.Name}"); |
|
|
|
|
|
|
|
|
$"Created Channel: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); |
|
|
ChannelDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ChannelDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Destroyed Channel: {e.Server?.Name}/{e.Channel?.Name}"); |
|
|
|
|
|
|
|
|
$"Destroyed Channel: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); |
|
|
ChannelUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ChannelUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Updated Channel: {e.Server?.Name}/{e.Channel?.Name}"); |
|
|
|
|
|
|
|
|
$"Updated Channel: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}"); |
|
|
MessageCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
MessageCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Created Message: {e.Server?.Name}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
|
|
|
|
|
|
$"Created Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
MessageDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
MessageDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Deleted Message: {e.Server?.Name}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
|
|
|
|
|
|
$"Deleted Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
MessageUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
MessageUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Updated Message: {e.Server?.Name}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
|
|
|
|
|
|
$"Updated Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
RoleCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
RoleCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Created Role: {e.Server?.Name}/{e.Role?.Name}"); |
|
|
|
|
|
|
|
|
$"Created Role: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}"); |
|
|
RoleUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
RoleUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Updated Role: {e.Server?.Name}/{e.Role?.Name}"); |
|
|
|
|
|
|
|
|
$"Updated Role: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}"); |
|
|
RoleDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
RoleDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Deleted Role: {e.Server?.Name}/{e.Role?.Name}"); |
|
|
|
|
|
|
|
|
$"Deleted Role: {e.Server?.Name ?? "[Private]"}/{e.Role?.Name}"); |
|
|
BanAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
BanAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Added Ban: {e.Server?.Name }/{e.UserId}"); |
|
|
$"Added Ban: {e.Server?.Name }/{e.UserId}"); |
|
|
BanRemoved += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
BanRemoved += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Removed Ban: {e.Server?.Name}/{e.UserId}"); |
|
|
|
|
|
|
|
|
$"Removed Ban: {e.Server?.Name ?? "[Private]"}/{e.UserId}"); |
|
|
UserAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
UserAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Added Member: {e.Server?.Name}/{e.UserId}"); |
|
|
|
|
|
|
|
|
$"Added Member: {e.Server?.Name ?? "[Private]"}/{e.UserId}"); |
|
|
UserRemoved += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
UserRemoved += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Removed Member: {e.Server?.Name}/{e.UserId}"); |
|
|
|
|
|
|
|
|
$"Removed Member: {e.Server?.Name ?? "[Private]"}/{e.UserId}"); |
|
|
MemberUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
MemberUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Updated Member: {e.Server?.Name}/{e.UserId}"); |
|
|
|
|
|
|
|
|
$"Updated Member: {e.Server?.Name ?? "[Private]"}/{e.UserId}"); |
|
|
UserVoiceStateUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
UserVoiceStateUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
$"Updated Member (Voice State): {e.Server?.Name}/{e.UserId}"); |
|
|
|
|
|
|
|
|
$"Updated Member (Voice State): {e.Server?.Name ?? "[Private]"}/{e.UserId}"); |
|
|
ProfileUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
ProfileUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client, |
|
|
"Updated Profile"); |
|
|
"Updated Profile"); |
|
|
} |
|
|
} |
|
|
if (_config.LogLevel >= LogMessageSeverity.Verbose) |
|
|
if (_config.LogLevel >= LogMessageSeverity.Verbose) |
|
|
{ |
|
|
{ |
|
|
UserIsTyping += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
UserIsTyping += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
$"Updated User (Is Typing): {e.Server?.Name}/{e.Channel?.Name}/{e.Member?.Name}"); |
|
|
|
|
|
|
|
|
$"Updated User (Is Typing): {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Member?.Name}"); |
|
|
MessageReadRemotely += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
MessageReadRemotely += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
$"Read Message (Remotely): {e.Server?.Name}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
|
|
|
|
|
|
$"Read Message (Remotely): {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
MessageSent += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
MessageSent += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
$"Sent Message: {e.Server?.Name}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
|
|
|
|
|
|
$"Sent Message: {e.Server?.Name ?? "[Private]"}/{e.Channel?.Name}/{e.Message?.Id}"); |
|
|
UserPresenceUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
UserPresenceUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, |
|
|
$"Updated Member (Presence): {e.Server?.Name}/{e.Member?.Name}"); |
|
|
|
|
|
|
|
|
$"Updated Member (Presence): {e.Server?.Name ?? "[Private]"}/{e.Member?.Name}"); |
|
|
|
|
|
|
|
|
_api.RestClient.OnRequest += (s, e) => |
|
|
_api.RestClient.OnRequest += (s, e) => |
|
|
{ |
|
|
{ |
|
@@ -139,18 +132,18 @@ namespace Discord |
|
|
} |
|
|
} |
|
|
if (_config.LogLevel >= LogMessageSeverity.Debug) |
|
|
if (_config.LogLevel >= LogMessageSeverity.Debug) |
|
|
{ |
|
|
{ |
|
|
_channels.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Channel {e.Item.Server.Id}/{e.Item.Id}"); |
|
|
|
|
|
_channels.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Channel {e.Item.Server.Id}/{e.Item.Id}"); |
|
|
|
|
|
|
|
|
_channels.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Channel {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Id}"); |
|
|
|
|
|
_channels.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Channel {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Id}"); |
|
|
_channels.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Channels"); |
|
|
_channels.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Channels"); |
|
|
_members.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Member {e.Item.Server.Id}/{e.Item.Id}"); |
|
|
|
|
|
_members.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Member {e.Item.Server.Id}/{e.Item.Id}"); |
|
|
|
|
|
|
|
|
_members.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Member {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Id}"); |
|
|
|
|
|
_members.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Member {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Id}"); |
|
|
_members.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Members"); |
|
|
_members.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Members"); |
|
|
_messages.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Message {e.Item.Server.Id}/{e.Item.Channel.Id}/{e.Item.Id}"); |
|
|
|
|
|
_messages.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Message {e.Item.Server.Id}/{e.Item.Channel.Id}/{e.Item.Id}"); |
|
|
|
|
|
_messages.ItemRemapped += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Remapped Message {e.Item.Server.Id}/{e.Item.Channel.Id}/[{e.OldId} -> {e.NewId}]"); |
|
|
|
|
|
|
|
|
_messages.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Message {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Channel.Id}/{e.Item.Id}"); |
|
|
|
|
|
_messages.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Message {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Channel.Id}/{e.Item.Id}"); |
|
|
|
|
|
_messages.ItemRemapped += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Remapped Message {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Channel.Id}/[{e.OldId} -> {e.NewId}]"); |
|
|
_messages.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Messages"); |
|
|
_messages.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Messages"); |
|
|
_roles.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Role {e.Item.Server.Id}/{e.Item.Id}"); |
|
|
|
|
|
_roles.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Role {e.Item.Server.Id}/{e.Item.Id}"); |
|
|
|
|
|
|
|
|
_roles.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Role {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Id}"); |
|
|
|
|
|
_roles.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Role {e.Item.Server?.Id ?? "[Private]"}/{e.Item.Id}"); |
|
|
_roles.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Roles"); |
|
|
_roles.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Roles"); |
|
|
_servers.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Server {e.Item.Id}"); |
|
|
_servers.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Server {e.Item.Id}"); |
|
|
_servers.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Server {e.Item.Id}"); |
|
|
_servers.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Server {e.Item.Id}"); |
|
@@ -293,7 +286,7 @@ namespace Discord |
|
|
case "READY": //Resync |
|
|
case "READY": //Resync |
|
|
{ |
|
|
{ |
|
|
var data = e.Payload.ToObject<ReadyEvent>(_serializer); |
|
|
var data = e.Payload.ToObject<ReadyEvent>(_serializer); |
|
|
_currentUser = _members.GetOrAdd(data.User.Id, _servers.PMServer.Id); |
|
|
|
|
|
|
|
|
_currentUser = _members.GetOrAdd(data.User.Id, null); |
|
|
_currentUser.Update(data.User); |
|
|
_currentUser.Update(data.User); |
|
|
foreach (var model in data.Guilds) |
|
|
foreach (var model in data.Guilds) |
|
|
{ |
|
|
{ |
|
@@ -305,7 +298,7 @@ namespace Discord |
|
|
} |
|
|
} |
|
|
foreach (var model in data.PrivateChannels) |
|
|
foreach (var model in data.PrivateChannels) |
|
|
{ |
|
|
{ |
|
|
var user = _members.GetOrAdd(model.Recipient.Id, _servers.PMServer.Id); |
|
|
|
|
|
|
|
|
var user = _members.GetOrAdd(model.Recipient.Id, null); |
|
|
user.Update(model.Recipient); |
|
|
user.Update(model.Recipient); |
|
|
var channel = _channels.GetOrAdd(model.Id, null, user.Id); |
|
|
var channel = _channels.GetOrAdd(model.Id, null, user.Id); |
|
|
channel.Update(model); |
|
|
channel.Update(model); |
|
@@ -360,7 +353,7 @@ namespace Discord |
|
|
Channel channel; |
|
|
Channel channel; |
|
|
if (data.IsPrivate) |
|
|
if (data.IsPrivate) |
|
|
{ |
|
|
{ |
|
|
var member = _members.GetOrAdd(data.Recipient.Id, _servers.PMServer.Id); |
|
|
|
|
|
|
|
|
var member = _members.GetOrAdd(data.Recipient.Id, null); |
|
|
member.Update(data.Recipient); |
|
|
member.Update(data.Recipient); |
|
|
channel = _channels.GetOrAdd(data.Id, null, member.Id); |
|
|
channel = _channels.GetOrAdd(data.Id, null, member.Id); |
|
|
} |
|
|
} |
|
|