コード例 #1
0
 private void AddOrUpdateRateLimit(ulong messageId, ulong userId)
 {
     _cache.AddOrUpdate(CacheId.StarboardUserMessageReactCountId(messageId, userId), new CacheItem(1, _userRatelimitTtl), (id, item) =>
     {
         int amount = (int)item.Content;
         return(new CacheItem(amount + 1, _userRatelimitTtl)); // Let's refresh the TTL on update
     });
 }
コード例 #2
0
        private bool UserRateLimitReached(ulong messageId, ulong userId)
        {
            var reactCount = _cache.Get <int>(CacheId.StarboardUserMessageReactCountId(messageId, userId));

            if (reactCount.HasValue && reactCount.Some() >= 2)
            {
                return(true);
            }
            return(false);
        }