-
-
Notifications
You must be signed in to change notification settings - Fork 316
Expand file tree
/
Copy pathMessageCache.cs
More file actions
33 lines (26 loc) · 1.06 KB
/
MessageCache.cs
File metadata and controls
33 lines (26 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using DSharpPlus.Entities;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.Extensions.Options;
namespace DSharpPlus;
public class MessageCache : IMessageCacheProvider
{
private readonly IMemoryCache cache;
private readonly MemoryCacheEntryOptions entryOptions;
public MessageCache(IMemoryCache cache, IOptions<DiscordConfiguration> config)
{
this.cache = cache;
this.entryOptions = new MemoryCacheEntryOptions()
{
Size = 1,
SlidingExpiration = config.Value.SlidingMessageCacheExpiration,
AbsoluteExpirationRelativeToNow = config.Value.AbsoluteMessageCacheExpiration
};
}
/// <inheritdoc/>
public void Add(DiscordMessage message)
=> this.cache.Set(message.Id, message, this.entryOptions);
/// <inheritdoc/>
public void Remove(ulong messageId) => this.cache.Remove(messageId);
/// <inheritdoc/>
public bool TryGet(ulong messageId, out DiscordMessage? message) => this.cache.TryGetValue(messageId, out message);
}