private async Task ProcessList() { try { IMessageChannel channel = await ChannelProvider.GetDMChannelAsync(this.Context); List <TReminder> reminders = this._reminderDAO.GetAll(this.Context.User.Id); IOrderedEnumerable <TReminder> orderedList = reminders.OrderBy(x => x.ExpirationTime); FormattedEmbedBuilder message = new FormattedEmbedBuilder() .AppendTitle($"{XayahReaction.Hourglass} Active reminders"); if (orderedList.Count() > 0) { foreach (TReminder entry in orderedList) { message.AddField($"Expires: {entry.ExpirationTime} UTC", entry.Message, inline: false); } } else { message.AppendDescription("imagine a soulrending void", AppendOption.Italic); } await channel.SendEmbedAsync(message); await this.Context.Message.AddReactionIfNotDMAsync(this.Context, XayahReaction.Envelope); } catch (Exception ex) { Logger.Error(ex); } }
private async void HandleExpiredReminder(object state) { TReminder reminder = state as TReminder; await this._reminderDAO.RemoveAsync(reminder); StopTimer(this.BuildTimerKey(reminder.UserId, reminder.ExpirationTime)); IMessageChannel channel = await ChannelProvider.GetDMChannelAsync(this._client, reminder.UserId); FormattedEmbedBuilder message = new FormattedEmbedBuilder() .AppendTitle($"{XayahReaction.Clock} Reminder expired") .AppendDescription(reminder.Message); await channel.SendEmbedAsync(message); }
private async Task ProcessClear() { try { IMessageChannel channel = await ChannelProvider.GetDMChannelAsync(this.Context); await this._remindService.ClearUserAsync(this.Context.User.Id); FormattedEmbedBuilder message = new FormattedEmbedBuilder() .AppendTitle($"{XayahReaction.Success} Done") .AppendDescription("I purged all of your reminders."); await channel.SendEmbedAsync(message); await this.Context.Message.AddReactionIfNotDMAsync(this.Context, XayahReaction.Envelope); } catch (Exception ex) { Logger.Error(ex); } }
private async Task ProcessItem(string name) { try { if (this.IsDisabled()) { this.NotifyDisabledCommand(); return; } IMessageChannel channel = await ChannelProvider.GetDMChannelAsync(this.Context); FormattedEmbedBuilder message = await ItemDataBuilder.BuildAsync(name); await channel.SendEmbedAsync(message); await this.Context.Message.AddReactionIfNotDMAsync(this.Context, XayahReaction.Envelope); } catch (Exception ex) { Logger.Error(ex); } }
private async Task ProcessHelp(string text) { try { text = this.TrimText(text); IMessageChannel channel = await ChannelProvider.GetDMChannelAsync(this.Context); FormattedEmbedBuilder message = new FormattedEmbedBuilder() .AppendTitle("Xayah Bot Help"); switch (NumberUtil.StripForNumber(text)) { case 1: this.Append8BallHelp(message); break; case 2: this.AppendRemindHelp(message); break; case 3: this.AppendRiotDataHelp(message); break; default: this.AppendGeneralHelp(message); break; } await channel.SendEmbedAsync(message); await this.Context.Message.AddReactionIfNotDMAsync(this.Context, XayahReaction.Envelope); } catch (Exception ex) { Logger.Error(ex); } }