38 lines
No EOL
1.1 KiB
C#
38 lines
No EOL
1.1 KiB
C#
namespace EllieBot.Modules.Games.Quests;
|
|
|
|
public class QuestCommands : EllieModule<QuestService>
|
|
{
|
|
[Cmd]
|
|
public async Task QuestLog()
|
|
{
|
|
var now = DateTime.UtcNow;
|
|
var quests = await _service.GetUserQuestsAsync(ctx.User.Id, now);
|
|
|
|
var embed = CreateEmbed()
|
|
.WithOkColor()
|
|
.WithTitle(GetText(strs.quest_log));
|
|
|
|
var allDone = quests.All(x => x.UserQuest.IsCompleted);
|
|
|
|
var tmrw = now.AddDays(1).Date;
|
|
var desc = GetText(strs.dailies_reset(TimestampTag.FromDateTime(tmrw, TimestampTagStyles.Relative)));
|
|
if (allDone)
|
|
desc = GetText(strs.dailies_done) + "\n" + desc;
|
|
|
|
embed.WithDescription(desc);
|
|
|
|
foreach (var res in quests)
|
|
{
|
|
if (res.Quest is null)
|
|
continue;
|
|
|
|
embed.AddField(
|
|
(res.UserQuest.IsCompleted ? IQuest.COMPLETED : IQuest.INCOMPLETE) + " " + res.Quest.Name,
|
|
$"{res.Quest.Desc}\n\n" +
|
|
res.Quest.ToString(res.UserQuest.Progress),
|
|
true);
|
|
}
|
|
|
|
await Response().Embed(embed).SendAsync();
|
|
}
|
|
} |