Browse Source

Removed virtual servers

tags/docs-0.9
RogueException 9 years ago
parent
commit
aaab26561b
7 changed files with 39 additions and 89 deletions
  1. +1
    -1
      src/Discord.Net/DiscordClient.Channels.cs
  2. +1
    -14
      src/Discord.Net/DiscordClient.Roles.cs
  3. +0
    -27
      src/Discord.Net/DiscordClient.Servers.cs
  4. +35
    -42
      src/Discord.Net/DiscordClient.cs
  5. +0
    -3
      src/Discord.Net/Helpers/AsyncCollection.cs
  6. +1
    -1
      src/Discord.Net/Models/Channel.cs
  7. +1
    -1
      src/Discord.Net/Models/User.cs

+ 1
- 1
src/Discord.Net/DiscordClient.Channels.cs View File

@@ -106,7 +106,7 @@ namespace Discord
if (channel == null)
{
var response = await _api.CreatePMChannel(_userId, member.Id).ConfigureAwait(false);
var recipient = _members.GetOrAdd(response.Recipient?.Id, _servers.PMServer.Id);
var recipient = _members.GetOrAdd(response.Recipient?.Id, null);
recipient.Update(response.Recipient);
channel = _channels.GetOrAdd(response.Id, response.GuildId, response.Recipient?.Id);
channel.Update(response);


+ 1
- 14
src/Discord.Net/DiscordClient.Roles.cs View File

@@ -12,20 +12,7 @@ namespace Discord

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

internal Role CreateVirtualRole(string serverId, string name)
{
var role = new Role(_client, serverId, serverId);
_dictionary[serverId] = role;
role.Update(new API.RoleInfo
{
Id = serverId,
Name = name,
Permissions = ServerPermissions.None.RawValue
});
return role;
}

public Role GetOrAdd(string id, string serverId)
=> GetOrAdd(id, () => new Role(_client, id, serverId));
}


+ 0
- 27
src/Discord.Net/DiscordClient.Servers.cs View File

@@ -8,36 +8,9 @@ namespace Discord
{
internal sealed class Servers : AsyncCollection<Server>
{
public Server PMServer { get; private set; }

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

protected override void Initialize()
{
PMServer = CreateVirtualServer("Private");
}

private Server CreateVirtualServer(string name)
{
string id = $"[{name}]";
var server = new Server(_client, id) { IsVirtual = true };
_dictionary[id] = server;

var everyone = _client.Roles.CreateVirtualRole(id, "@everyone");
server.Update(new API.GuildInfo
{
Id = id,
Name = id,
JoinedAt = DateTime.UtcNow,
Roles = new API.RoleInfo[] { new API.RoleInfo {
Id = everyone.Id,
Name = everyone.Name
} }
});
return server;
}

public Server GetOrAdd(string id)
=> GetOrAdd(id, () => new Server(_client, id));
}


+ 35
- 42
src/Discord.Net/DiscordClient.cs View File

@@ -46,13 +46,6 @@ namespace Discord
_servers = new Servers(this, cacheLock);
_users = new Users(this, cacheLock);

_channels.Clear();
_members.Clear();
_messages.Clear();
_roles.Clear();
_servers.Clear();
_users.Clear();

_status = UserStatus.Online;

this.Connected += async (s, e) =>
@@ -76,58 +69,58 @@ 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 ?? "[Private]"}");
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,
$"Updated Server: {e.Server?.Name}");
$"Updated Server: {e.Server?.Name ?? "[Private]"}");
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,
$"Server Unavailable: {e.Server?.Name}");
$"Server Unavailable: {e.Server?.Name ?? "[Private]"}");
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,
$"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,
$"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,
$"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,
$"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,
$"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,
$"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,
$"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,
$"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,
$"Added Ban: {e.Server?.Name }/{e.UserId}");
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,
$"Added Member: {e.Server?.Name}/{e.UserId}");
$"Added Member: {e.Server?.Name ?? "[Private]"}/{e.UserId}");
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,
$"Updated Member: {e.Server?.Name}/{e.UserId}");
$"Updated Member: {e.Server?.Name ?? "[Private]"}/{e.UserId}");
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,
"Updated Profile");
}
if (_config.LogLevel >= LogMessageSeverity.Verbose)
{
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,
$"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,
$"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,
$"Updated Member (Presence): {e.Server?.Name}/{e.Member?.Name}");
$"Updated Member (Presence): {e.Server?.Name ?? "[Private]"}/{e.Member?.Name}");
_api.RestClient.OnRequest += (s, e) =>
{
@@ -139,18 +132,18 @@ namespace Discord
}
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");
_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");
_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");
_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");
_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}");
@@ -293,7 +286,7 @@ namespace Discord
case "READY": //Resync
{
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);
foreach (var model in data.Guilds)
{
@@ -305,7 +298,7 @@ namespace Discord
}
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);
var channel = _channels.GetOrAdd(model.Id, null, user.Id);
channel.Update(model);
@@ -360,7 +353,7 @@ namespace Discord
Channel channel;
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);
channel = _channels.GetOrAdd(data.Id, null, member.Id);
}


+ 0
- 3
src/Discord.Net/Helpers/AsyncCollection.cs View File

@@ -63,8 +63,6 @@ namespace Discord
_onUncache = onUncache;
}

protected virtual void Initialize() { }

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


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

@@ -86,7 +86,7 @@ namespace Discord
internal Channel(DiscordClient client, string id, string serverId, string recipientId)
: base(client, id)
{
_serverId = serverId ?? _client.Servers.PMServer.Id;
_serverId = serverId;
_recipientId = recipientId;
_permissionOverwrites = _initialPermissionsOverwrites;
_areMembersStale = true;


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

@@ -70,7 +70,7 @@ namespace Discord
internal Member(DiscordClient client, string id, string serverId)
: base(client, id)
{
ServerId = serverId ?? _client.Servers.PMServer.Id;
ServerId = serverId;
Status = UserStatus.Offline;
_roleIds = _initialRoleIds;
_channels = new ConcurrentDictionary<string, Channel>();


Loading…
Cancel
Save