public async Task SendAlerts(DiscordGuild guild, IReadOnlyOperation op, string userName) { bool isAtLeastOneMissingMember = false; ulong[] alertRecipents = GetRecipients(); string message = $"A new \"{op.OperationName}\" event has been posted by {userName} in {guild.Name}."; foreach (ulong userId in alertRecipents) { DiscordMember member; try { member = await guild.GetMemberAsync(userId); await member.SendMessageAsync(message); } catch (NotFoundException) { lock (this) _alertMembers.Remove(userId); isAtLeastOneMissingMember = true; } } if (isAtLeastOneMissingMember) { await Save(_alertMembers); } }
private async Task RepostCommand(MessageCreateEventArgs e, ParsedCommand cmd) { IReadOnlyOperation[] ops = _ops.GetOperationsByDateDesc(); for (int k = 0; k < ops.Length; k++) { IReadOnlyOperation op = ops[k]; DiscordMessage newMessage = await e.Channel.SendMessageAsync(op.GetOperationMessageText()); ulong oldMessageId = _ops.UpdateMessageId(op.Id, newMessage.Id); _repository.Save(_ops); DiscordMessage oldMessage = await e.Channel.GetMessageAsync(oldMessageId); try { await oldMessage.DeleteAsync(); } catch (NotFoundException) { } await Task.Delay(250); await PinMessage(e, newMessage); if (k != ops.Length - 1) { await Task.Delay(3000); } } }
public OperationUpdatedEventArgs(IReadOnlyOperation operation) { Operation = operation; }