Browse Source

Added a virtual server for private messages

tags/docs-0.9
RogueException 10 years ago
parent
commit
3b32cde35e
5 changed files with 65 additions and 58 deletions
  1. +5
    -3
      src/Discord.Net/DiscordClient.Servers.cs
  2. +51
    -51
      src/Discord.Net/DiscordClient.cs
  3. +5
    -1
      src/Discord.Net/Models/AsyncCollection.cs
  4. +1
    -1
      src/Discord.Net/Models/Channel.cs
  5. +3
    -2
      src/Discord.Net/Models/Member.cs

+ 5
- 3
src/Discord.Net/DiscordClient.Servers.cs View File

@@ -10,12 +10,14 @@ namespace Discord
{
private const string PMServerId = "Private";

Server PMServer { get; }
public Server PMServer { get; private set; }

public Servers(DiscordClient client, object writerLock)
: base(client, writerLock, x => x.OnCached(), x => x.OnUncached())
: base(client, writerLock, x => x.OnCached(), x => x.OnUncached()) { }

protected override void Initialize()
{
PMServer = new Server(client, PMServerId) { IsVirtual = true };
PMServer = new Server(_client, PMServerId) { IsVirtual = true };
PMServer.Update(new API.ExtendedGuildInfo { Id = PMServerId, Name = PMServerId });
_dictionary[PMServerId] = PMServer;
}


+ 51
- 51
src/Discord.Net/DiscordClient.cs View File

@@ -66,83 +66,83 @@ namespace Discord
if (_config.LogLevel >= LogMessageSeverity.Info)
{
ServerCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Created Server: {e.Server?.Name}" +
$"Created Server: {e.Server?.Name ?? e.ServerId}" +
(showIDs ? $" ({e.ServerId})" : ""));
ServerDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Destroyed Server: {e.Server?.Name}" +
$"Destroyed Server: {e.Server?.Name ?? e.ServerId}" +
(showIDs ? $" ({e.ServerId})" : ""));
ServerUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated Server: {e.Server?.Name}" +
$"Updated Server: {e.Server?.Name ?? e.ServerId}" +
(showIDs ? $" ({e.ServerId})" : ""));
ServerAvailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Server Available: {e.Server?.Name}" +
$"Server Available: {e.Server?.Name ?? e.ServerId}" +
(showIDs ? $" ({e.ServerId})" : ""));
ServerUnavailable += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Server Unavailable: {e.Server?.Name}" +
$"Server Unavailable: {e.Server?.Name ?? e.ServerId}" +
(showIDs ? $" ({e.ServerId})" : ""));
ChannelCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Created Channel: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId})" : ""));
$"Created Channel: {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId})" : ""));
ChannelDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Destroyed Channel: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId})" : ""));
$"Destroyed Channel: {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId})" : ""));
ChannelUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated Channel: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId})" : ""));
$"Updated Channel: {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId})" : ""));
MessageCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Created Message: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId}/{e.MessageId})" : ""));
$"Created Message: {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId}/{e.MessageId})" : ""));
MessageDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Deleted Message: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId}/{e.MessageId})" : ""));
$"Deleted Message: {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId}/{e.MessageId})" : ""));
MessageUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated Message: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId}/{e.MessageId})" : ""));
$"Updated Message: {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId}/{e.MessageId})" : ""));
RoleCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Created Role: {e.Server?.Name ?? "[Private]"}/{e.Role.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.RoleId})." : ""));
$"Created Role: {e.Server?.Name ?? e.ServerId}/{e.Role?.Name ?? e.RoleId}" +
(showIDs ? $" ({e.ServerId}/{e.RoleId})" : ""));
RoleUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated Role: {e.Server?.Name ?? "[Private]"}/{e.Role.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.RoleId})." : ""));
$"Updated Role: {e.Server?.Name ?? e.ServerId}/{e.Role?.Name ?? e.RoleId}" +
(showIDs ? $" ({e.ServerId}/{e.RoleId})" : ""));
RoleDeleted += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Deleted Role: {e.Server?.Name ?? "[Private]"}/{e.Role.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.RoleId})." : ""));
$"Deleted Role: {e.Server?.Name ?? e.ServerId}/{e.Role?.Name ?? e.RoleId}" +
(showIDs ? $" ({e.ServerId}/{e.RoleId})" : ""));
BanAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Added Ban: {e.Server?.Name ?? "[Private]"}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.UserId})." : ""));
$"Added Ban: {e.Server?.Name ?? e.ServerId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.UserId})" : ""));
BanRemoved += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Removed Ban: {e.Server?.Name ?? "[Private]"}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.UserId})." : ""));
$"Removed Ban: {e.Server?.Name ?? e.ServerId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.UserId})" : ""));
UserAdded += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Added Member: {e.Server?.Name ?? "[Private]"}/{e.User.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.UserId})." : ""));
$"Added Member: {e.Server?.Name ?? e.ServerId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.UserId})" : ""));
UserRemoved += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Removed Member: {e.Server?.Name ?? "[Private]"}/{e.User.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.UserId})." : ""));
$"Removed Member: {e.Server?.Name ?? e.ServerId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.UserId})" : ""));
MemberUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated Member: {e.Server?.Name ?? "[Private]"}/{e.User.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.UserId})." : ""));
$"Updated Member: {e.Server?.Name ?? e.ServerId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.UserId})" : ""));
UserVoiceStateUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated Member (Voice State): {e.Server?.Name ?? "[Private]"}/{e.User.Name}" +
(showIDs ? $" ({e.ServerId ?? "0"}/{e.UserId})" : ""));
$"Updated Member (Voice State): {e.Server?.Name ?? e.ServerId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.UserId})" : ""));
UserUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.Client,
$"Updated User: {e.User.Name}" +
(showIDs ? $" ({e.UserId})." : ""));
(showIDs ? $" ({e.UserId})" : ""));
}
if (_config.LogLevel >= LogMessageSeverity.Verbose)
{
UserIsTyping += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client,
$"Updated User (Is Typing): {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}/{e.User.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId}/{e.UserId})" : ""));
$"Updated User (Is Typing): {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId}/{e.UserId})" : ""));
MessageReadRemotely += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client,
$"Read Message (Remotely): {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId}/{e.MessageId})" : ""));
$"Read Message (Remotely): {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId}/{e.MessageId})" : ""));
MessageSent += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client,
$"Sent Message: {e.Server?.Name ?? "[Private]"}/{e.Channel.Name}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.ChannelId}/{e.MessageId})" : ""));
$"Sent Message: {e.Server?.Name ?? e.ServerId}/{e.Channel?.Name ?? e.ChannelId}/{e.MessageId}" +
(showIDs ? $" ({e.ServerId}/{e.ChannelId}/{e.MessageId})" : ""));
UserPresenceUpdated += (s, e) => RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client,
$"Updated Member (Presence): {e.Server?.Name ?? "[Private]"}/{e.User.Name}" +
(showIDs ? $" ({e.ServerId ?? "[Private]"}/{e.UserId})" : ""));
$"Updated Member (Presence): {e.Server?.Name ?? e.ServerId}/{e.User?.Name ?? e.UserId}" +
(showIDs ? $" ({e.ServerId}/{e.UserId})" : ""));
_api.RestClient.OnRequest += (s, e) =>
{
@@ -154,15 +154,15 @@ namespace Discord
}
if (_config.LogLevel >= LogMessageSeverity.Debug)
{
_channels.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Channel {e.Item?.ServerId ?? "[Private]"}/{e.Item.Id}");
_channels.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Channel {e.Item.ServerId ?? "[Private]"}/{e.Item.Id}");
_channels.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Channel {e.Item.ServerId}/{e.Item.Id}");
_channels.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Channel {e.Item.ServerId}/{e.Item.Id}");
_channels.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Channels");
_members.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Member {e.Item.ServerId ?? "[Private]"}/{e.Item.UserId}");
_members.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Member {e.Item.ServerId ?? "[Private]"}/{e.Item.UserId}");
_members.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Member {e.Item.ServerId}/{e.Item.UserId}");
_members.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Member {e.Item.ServerId}/{e.Item.UserId}");
_members.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Members");
_messages.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Message {e.Item.ServerId ?? "[Private]"}/{e.Item.ChannelId}/{e.Item.Id}");
_messages.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Message {e.Item.ServerId ?? "[Private]"}/{e.Item.ChannelId}/{e.Item.Id}");
_messages.ItemRemapped += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Remapped Message {e.Item.ServerId ?? "[Private]"}/{e.Item.ChannelId}/[{e.OldId} -> {e.NewId}]");
_messages.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Message {e.Item.ServerId}/{e.Item.ChannelId}/{e.Item.Id}");
_messages.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Message {e.Item.ServerId}/{e.Item.ChannelId}/{e.Item.Id}");
_messages.ItemRemapped += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Remapped Message {e.Item.ServerId}/{e.Item.ChannelId}/[{e.OldId} -> {e.NewId}]");
_messages.Cleared += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Cleared Messages");
_roles.ItemCreated += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Created Role {e.Item.ServerId}/{e.Item.Id}");
_roles.ItemDestroyed += (s, e) => RaiseOnLog(LogMessageSeverity.Debug, LogMessageSource.Cache, $"Destroyed Role {e.Item.ServerId}/{e.Item.Id}");


+ 5
- 1
src/Discord.Net/Models/AsyncCollection.cs View File

@@ -61,8 +61,11 @@ namespace Discord
_dictionary = new ConcurrentDictionary<string, TValue>();
_onCache = onCache;
_onUncache = onUncache;
Initialize();
}

protected virtual void Initialize() { }

public TValue this[string key]
{
get
@@ -129,7 +132,8 @@ namespace Discord
lock (_writerLock)
{
_dictionary.Clear();
RaiseCleared();
Initialize();
RaiseCleared();
}
}



+ 1
- 1
src/Discord.Net/Models/Channel.cs View File

@@ -97,7 +97,7 @@ namespace Discord
{
_client = client;
Id = id;
ServerId = serverId;
ServerId = serverId ?? _client.Servers.PMServer.Id;
RecipientId = recipientId;
_messages = new ConcurrentDictionary<string, bool>();
_permissionOverwrites = _initialPermissionsOverwrites;


+ 3
- 2
src/Discord.Net/Models/Member.cs View File

@@ -73,7 +73,7 @@ namespace Discord
{
_client = client;
UserId = userId;
ServerId = serverId;
ServerId = serverId ?? _client.Servers.PMServer.Id;
Status = UserStatus.Offline;
RoleIds = _initialRoleIds;
_permissions = new ConcurrentDictionary<string, ChannelPermissions>();
@@ -90,7 +90,8 @@ namespace Discord
var user = User;
if (user != null)
{
user.AddServer(ServerId);
if (server == null || !server.IsVirtual)
user.AddServer(ServerId);
user.AddRef();
_hasRef = true;
}


Loading…
Cancel
Save