fixed hangman not working sometimes

This commit is contained in:
Toastie 2025-03-16 15:47:56 +13:00
parent 62a01d3d06
commit 6d08ddee7d
Signed by: toastie_t0ast
GPG key ID: 0861BE54AD481DC7
2 changed files with 4 additions and 5 deletions
src/EllieBot/Modules

View file

@ -35,7 +35,6 @@ public sealed class HangmanService : IHangmanService, IExecNoCommand
if (!_source.GetTerm(category, out var term)) if (!_source.GetTerm(category, out var term))
return false; return false;
var game = new HangmanGame(term); var game = new HangmanGame(term);
lock (_locker) lock (_locker)
{ {
@ -71,7 +70,7 @@ public sealed class HangmanService : IHangmanService, IExecNoCommand
if (string.IsNullOrWhiteSpace(msg.Content)) if (string.IsNullOrWhiteSpace(msg.Content))
return; return;
if (_cdCache.TryGetValue(msg.Author.Id, out _)) if (_cdCache.TryGetValue("hangman:" + msg.Author.Id, out _))
return; return;
HangmanGame.State state; HangmanGame.State state;
@ -88,7 +87,7 @@ public sealed class HangmanService : IHangmanService, IExecNoCommand
if (state.GuessResult is HangmanGame.GuessResult.Incorrect or HangmanGame.GuessResult.AlreadyTried) if (state.GuessResult is HangmanGame.GuessResult.Incorrect or HangmanGame.GuessResult.AlreadyTried)
{ {
_cdCache.Set(msg.Author.Id, _cdCache.Set("hangman:" + msg.Author.Id,
string.Empty, string.Empty,
new MemoryCacheEntryOptions new MemoryCacheEntryOptions
{ {

View file

@ -570,10 +570,10 @@ public class XpService : IEService, IReadyExecutor, IExecNoCommand
if (cdInMinutes <= float.Epsilon) if (cdInMinutes <= float.Epsilon)
return Task.FromResult(true); return Task.FromResult(true);
if (_memCache.TryGetValue(userId, out _)) if (_memCache.TryGetValue("xp_gain:" + userId, out _))
return Task.FromResult(false); return Task.FromResult(false);
using var entry = _memCache.CreateEntry(userId); using var entry = _memCache.CreateEntry("xp_gain:" + userId);
entry.Value = true; entry.Value = true;
entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(cdInMinutes); entry.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(cdInMinutes);