part 3 of the response rework

This commit is contained in:
Kwoth
2024-04-29 21:03:40 +00:00
parent d28c7b500d
commit daa2177559
65 changed files with 508 additions and 625 deletions

View File

@@ -23,7 +23,7 @@ public partial class Games
/-\
""";
public static EmbedBuilder GetEmbed(IEmbedBuilderService eb, HangmanGame.State state)
public static EmbedBuilder GetEmbed(HangmanGame.State state)
{
if (state.Phase == HangmanGame.Phase.Running)
{
@@ -60,7 +60,7 @@ public partial class Games
return;
}
var eb = GetEmbed(_eb, hangman);
var eb = GetEmbed(hangman);
eb.WithDescription(GetText(strs.hangman_game_started));
await Response().Embed(eb).SendAsync();
}

View File

@@ -9,7 +9,7 @@ public sealed class HangmanService : IHangmanService, IExecNoCommand
{
private readonly ConcurrentDictionary<ulong, HangmanGame> _hangmanGames = new();
private readonly IHangmanSource _source;
private readonly IEmbedBuilderService _eb;
private readonly IMessageSenderService _sender;
private readonly GamesConfigService _gcs;
private readonly ICurrencyService _cs;
private readonly IMemoryCache _cdCache;
@@ -17,13 +17,13 @@ public sealed class HangmanService : IHangmanService, IExecNoCommand
public HangmanService(
IHangmanSource source,
IEmbedBuilderService eb,
IMessageSenderService sender,
GamesConfigService gcs,
ICurrencyService cs,
IMemoryCache cdCache)
{
_source = source;
_eb = eb;
_sender = sender;
_gcs = gcs;
_cs = cs;
_cdCache = cdCache;
@@ -116,7 +116,7 @@ public sealed class HangmanService : IHangmanService, IExecNoCommand
string content,
HangmanGame.State state)
{
var embed = Games.HangmanCommands.GetEmbed(_eb, state);
var embed = Games.HangmanCommands.GetEmbed(state);
if (state.GuessResult == HangmanGame.GuessResult.Guess)
embed.WithDescription($"{user} guessed the letter {content}!").WithOkColor();
else if (state.GuessResult == HangmanGame.GuessResult.Incorrect && state.Failed)
@@ -131,6 +131,6 @@ public sealed class HangmanService : IHangmanService, IExecNoCommand
if (!string.IsNullOrWhiteSpace(state.ImageUrl) && Uri.IsWellFormedUriString(state.ImageUrl, UriKind.Absolute))
embed.WithImageUrl(state.ImageUrl);
return channel.EmbedAsync(embed);
return _sender.Response(channel).Embed(embed).SendAsync();
}
}