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;
UdpSocketProvider = DefaultUdpSocketProvider.Instance;
MessageCache = new MessageCache();
}

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.GlobalUser.AddRef();
_messages = discord.MessageCache.CreateMessageCache(discord);
_messages = discord.MessageCache.CreateMessageCache();
}
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)
: base(discord, id)
{
_messages = discord.MessageCache.CreateMessageCache(discord);
_messages = discord.MessageCache.CreateMessageCache();
_voiceStates = new ConcurrentDictionary<ulong, SocketVoiceState>(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)
{
if (Discord.MessageCacheSize > 0)
_messages = discord.MessageCache.CreateMessageCache(discord);
_messages = discord.MessageCache.CreateMessageCache();
}
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 IMessageCache CreateMessageCache(DiscordSocketClient discord);
public IMessageCache CreateMessageCache();

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 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));
_orderedMessages = new ConcurrentQueue<ulong>();
}


Loading…
Cancel
Save