private async Task OnChannelPinsUpdated(ChannelPinsUpdateEventArgs e) { if (ChannelPinsUpdated != null) { await ChannelPinsUpdated(e); } }
/// <summary> /// Checks channel's number of pinned posts and responds with a warning if close to 50 pins. /// Warning threshold is defined in <see cref="PinWarningThreshold"/>. /// </summary> /// <param name="args">Event args.</param> /// <returns>Task.</returns> private async Task OnChannelPinsUpdatedAsync(DiscordClient dClient, ChannelPinsUpdateEventArgs args) { int pinCount = (await args.Channel.GetPinnedMessagesAsync()).Count; if (pinCount >= PinWarningThreshold) { await args.Channel.SendMessageAsync($"Approaching the pinned message limit [{pinCount}/50]!"); } }
private async Task Client_ChannelPinsUpdated(ChannelPinsUpdateEventArgs e) { if (e.Channel.Guild != null) { GuildData d = new HackBanCommand().GetData <GuildData>(e.Channel.GuildId.ToString()); await UpdatePinsAsync(e.LastPinTimestamp, e.Channel, d, e.Client); new HackBanCommand().SetData(e.Channel.GuildId.ToString(), d); } }
public async Task Bot_PinsUpdated(ChannelPinsUpdateEventArgs e) { var test = e.Channel.GetPinnedMessagesAsync().Result.Count; await e.Channel.SendMessageAsync(test.ToString()); /*e.Channel.CloneAsync(); * e.Channel.ModifyAsync(channel => channel.Name="");*/ if (test == 50) { await e.Channel.SendMessageAsync("Channel out of pins!"); } }
private async Task ChannelPinsUpdated(DiscordClient sender, ChannelPinsUpdateEventArgs e) { var pinEntry = await GetNewEntryAsync() as DiscordAuditLogMessagePinEntry; _entryBuilder = EmbedBuilderExtensions.CreateForAudit(pinEntry); var action = pinEntry.ActionType == AuditLogActionType.MessagePin ? "Закрепление" : "Открепление"; _entryBuilder.SetTitle(action + " сообщения"); _entryBuilder.SetDescription($"{action} сообщения в канале {pinEntry.Channel.Name}"); var msg = await pinEntry.Channel.GetMessageAsync(pinEntry.Message.Id); _entryBuilder.AddMesage(msg); _entryBuilder.AddField("Прямая ссылка", msg.JumpLink.AbsoluteUri); await SendMessageToAuditAsync(embed : _entryBuilder); }
private async Task Client_ChannelPinsUpdated(ChannelPinsUpdateEventArgs e) { if (e.Channel.Guild == null) { return; } using (_services.CreateScope()) { var db = _services.GetService <PinsDbContext>(); var info = await db.Guilds .Include(p => p.PinnedMessages) .FirstOrDefaultAsync(b => b.Id == (long)e.Channel.Guild.Id); if (info == null) { _logger.LogInformation("Ignoring pins update for {0} because the guild isn't in the database.", e.Channel); return; } if (e.Channel.IsNSFW && !info.IncludeNSFW) { _logger.LogInformation("Ignoring pins update for {0} because it's marked as NSFW.", e.Channel); return; } var hook = _webhookClient.GetRegisteredWebhook((ulong)info.WebhookId); if (hook == null) { _logger.LogInformation("Ignoring pins update for {0} because the webhook is unavailable.", e.Channel); return; } var pins = await e.Channel.GetPinnedMessagesAsync(); var newPins = pins.Reverse().Where(p => !info.PinnedMessages.Any(m => m.Id == (long)p.Id)); foreach (var pin in newPins) { await CopyPinAsync(hook, pin, info, db); } await db.SaveChangesAsync(); } }
private Task Client_ChannelPinsUpdated(ChannelPinsUpdateEventArgs e) => this._channelPinsUpdated.InvokeAsync(e);
private async Task Client_PinsUpdated(ChannelPinsUpdateEventArgs e) { await e.Channel.SendMessageAsync("@everyone, New pin created!"); }
private Task Client_ChannelPinsUpdated(ChannelPinsUpdateEventArgs e) { e.Client.DebugLogger.LogMessage(LogLevel.Info, "BotApp", $"New pin on {e.Channel.Name} ({e.Channel.Guild.Name})", DateTime.Now); return(Task.CompletedTask); }
private Task Event_ChannelPinsUpdated(DiscordClient d, ChannelPinsUpdateEventArgs e) { d.Logger.LogDebug(BotEventId, "Event_ChannelPinsUpdated."); return(Task.CompletedTask); }
public static async Task ChannelPinsUpdateEventHandlerAsync(TheGodfatherShard shard, ChannelPinsUpdateEventArgs e) { DiscordChannel logchn = shard.SharedData.GetLogChannelForGuild(shard.Client, e.Channel.Guild); if (logchn == null) { return; } if (await shard.DatabaseService.IsExemptedAsync(e.Channel.Guild.Id, e.Channel.Id, EntityType.Channel)) { return; } DiscordEmbedBuilder emb = FormEmbedBuilder(EventOrigin.Channel, "Channel pins updated", e.Channel.ToString()); emb.AddField("Channel", e.Channel.Mention, inline: true); var pinned = await e.Channel.GetPinnedMessagesAsync(); if (pinned.Any()) { emb.WithDescription(Formatter.MaskedUrl("Jump to top pin", pinned.First().JumpLink)); string content = string.IsNullOrWhiteSpace(pinned.First().Content) ? "<embedded message>" : pinned.First().Content; emb.AddField("Top pin content", Formatter.BlockCode(Formatter.Sanitize(content.Truncate(1000)))); } if (e.LastPinTimestamp != null) { emb.AddField("Last pin timestamp", e.LastPinTimestamp.Value.ToUtcTimestamp(), inline: true); } await logchn.SendMessageAsync(embed : emb.Build()); }