public void ApplyInput(CharacterWork entity, bool assign_mandatory = true) { TryFill <bool>(IsWorking, x => entity.IsWorking = x); TryFill <byte>(CommittedHours, x => entity.CommittedHours = x); TryFill <DateTime>(WorkFinishesAt, x => entity.WorkFinishesAt = x); TryFill <uint>(TotalHours, x => entity.TotalHours = x); }
public void Init() { CharacterWorkService.WorkFinished += (o, e) => { User user = Db.Set <User>().Find(e.Character.UserId); CharacterWork worker = e.Entity as CharacterWork; UserApi.SendMessage( user.DiscordId, embed: new SharedDiscordEmbed { Color = new Color(25, 78, 143).RawValue, Fields = new List <SharedDiscordEmbedField> { new SharedDiscordEmbedField { Name = $"Mining Completed", Value = $"```swift\n" + $"You Were Mining For {e.Hours} Hours\n" + $"Gold Obtained: +{e.Reward} ({e.Character.Gold})```" }, worker.AsEmbedField() } }); }; }
///<summary>Finish work if it's due to be done.</summary> private async Task HandleWorker(WoTDbContext db, CharacterWork worker) { var args = await worker.UpdateAsync(db); if (args != null) { WorkFinished?.Invoke(worker, args); Logger?.LogLine(this, args.ToString(), LogSeverity.Verbose); } }
public async Task AddAsync() { CharacterWork entity = new CharacterWork { CharacterId = GetArgUInt32(CharacterId) }; ApplyInput(entity); await AddEntityAsync(entity); Reply($"CharacterWork for character:`{Args[CharacterId]}` has been successfully added."); }
public async Task HandleWorkCommandAsync() { CharacterWork worker = await CharacterWorkApi.GetByDiscordIdAsync(Context.User.Id); if (worker != null) { EmbedBuilder eb = new EmbedBuilder(); eb.Color = new Color(255, 255, 0); eb.AddField(x => { x.Name = "⛏ Mining Stats ⛏"; x.Value = $"**Level:** {worker.Level}\n" + $"**Remaining:** {worker.XpCap - worker.Xp}\n" + $"**Total:** {worker.TotalHours}"; }); await ReplyAsync(embed : eb.Build()); } }