Browse Source

Remove client parameter to make creating a MessageCache possible on startup

pull/1766/head
Daniel Baynton 4 years ago
parent
commit
426e65544c
6 changed files with 8 additions and 7 deletions
  1. +1
    -0
      src/Discord.Net.WebSocket/DiscordSocketConfig.cs
  2. +1
    -1
      src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs
  3. +1
    -1
      src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs
  4. +1
    -1
      src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs
  5. +1
    -1
      src/Discord.Net.WebSocket/Entities/Messages/IMessageCache.cs
  6. +3
    -3
      src/Discord.Net.WebSocket/Entities/Messages/MessageCache.cs

+ 1
- 0
src/Discord.Net.WebSocket/DiscordSocketConfig.cs View File

@@ -190,6 +190,7 @@ namespace Discord.WebSocket
{ {
WebSocketProvider = DefaultWebSocketProvider.Instance; WebSocketProvider = DefaultWebSocketProvider.Instance;
UdpSocketProvider = DefaultUdpSocketProvider.Instance; UdpSocketProvider = DefaultUdpSocketProvider.Instance;
MessageCache = new MessageCache();
} }


internal DiscordSocketConfig Clone() => MemberwiseClone() as DiscordSocketConfig; internal DiscordSocketConfig Clone() => MemberwiseClone() as DiscordSocketConfig;


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Channels/SocketDMChannel.cs View File

@@ -36,7 +36,7 @@ namespace Discord.WebSocket
{ {
Recipient = recipient; Recipient = recipient;
recipient.GlobalUser.AddRef(); recipient.GlobalUser.AddRef();
_messages = discord.MessageCache.CreateMessageCache(discord);
_messages = discord.MessageCache.CreateMessageCache();
} }
internal static SocketDMChannel Create(DiscordSocketClient discord, ClientState state, Model model) internal static SocketDMChannel Create(DiscordSocketClient discord, ClientState state, Model model)
{ {


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Channels/SocketGroupChannel.cs View File

@@ -38,7 +38,7 @@ namespace Discord.WebSocket
internal SocketGroupChannel(DiscordSocketClient discord, ulong id) internal SocketGroupChannel(DiscordSocketClient discord, ulong id)
: base(discord, id) : base(discord, id)
{ {
_messages = discord.MessageCache.CreateMessageCache(discord);
_messages = discord.MessageCache.CreateMessageCache();
_voiceStates = new ConcurrentDictionary<ulong, SocketVoiceState>(ConcurrentHashSet.DefaultConcurrencyLevel, 5); _voiceStates = new ConcurrentDictionary<ulong, SocketVoiceState>(ConcurrentHashSet.DefaultConcurrencyLevel, 5);
_users = new ConcurrentDictionary<ulong, SocketGroupUser>(ConcurrentHashSet.DefaultConcurrencyLevel, 5); _users = new ConcurrentDictionary<ulong, SocketGroupUser>(ConcurrentHashSet.DefaultConcurrencyLevel, 5);
} }


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Channels/SocketTextChannel.cs View File

@@ -54,7 +54,7 @@ namespace Discord.WebSocket
: base(discord, id, guild) : base(discord, id, guild)
{ {
if (Discord.MessageCacheSize > 0) if (Discord.MessageCacheSize > 0)
_messages = discord.MessageCache.CreateMessageCache(discord);
_messages = discord.MessageCache.CreateMessageCache();
} }
internal new static SocketTextChannel Create(SocketGuild guild, ClientState state, Model model) internal new static SocketTextChannel Create(SocketGuild guild, ClientState state, Model model)
{ {


+ 1
- 1
src/Discord.Net.WebSocket/Entities/Messages/IMessageCache.cs View File

@@ -5,7 +5,7 @@ namespace Discord
{ {
public interface IMessageCache public interface IMessageCache
{ {
public IMessageCache CreateMessageCache(DiscordSocketClient discord);
public IMessageCache CreateMessageCache();


public IReadOnlyCollection<SocketMessage> Messages { get; } public IReadOnlyCollection<SocketMessage> Messages { get; }




+ 3
- 3
src/Discord.Net.WebSocket/Entities/Messages/MessageCache.cs View File

@@ -14,11 +14,11 @@ namespace Discord.WebSocket


public IReadOnlyCollection<SocketMessage> Messages => _messages.ToReadOnlyCollection(); public IReadOnlyCollection<SocketMessage> Messages => _messages.ToReadOnlyCollection();


public IMessageCache CreateMessageCache(DiscordSocketClient discord) => new MessageCache(discord);
public IMessageCache CreateMessageCache() => new MessageCache();


public MessageCache(DiscordSocketClient discord)
public MessageCache()
{ {
_size = discord.MessageCacheSize;
_size = 50; // todo: get this from the existing DiscordSocketConfig value.
_messages = new ConcurrentDictionary<ulong, SocketMessage>(ConcurrentHashSet.DefaultConcurrencyLevel, (int)(_size * 1.05)); _messages = new ConcurrentDictionary<ulong, SocketMessage>(ConcurrentHashSet.DefaultConcurrencyLevel, (int)(_size * 1.05));
_orderedMessages = new ConcurrentQueue<ulong>(); _orderedMessages = new ConcurrentQueue<ulong>();
} }


Loading…
Cancel
Save