public static async Task OnChannelRemove(ModCoreShard shard, ChannelDeleteEventArgs ea) { if (ea.Guild == null) { return; } using (var db = shard.Database.CreateContext()) { var cfg = ea.Guild.GetGuildSettings(db); if (cfg == null || !cfg.RoleState.Enable) { return; } var rs = cfg.RoleState; var chperms = db.RolestateOverrides.Where(xs => xs.GuildId == (long)ea.Guild.Id && xs.ChannelId == (long)ea.Channel.Id); if (chperms.Any()) { db.RolestateOverrides.RemoveRange(chperms); await db.SaveChangesAsync(); } } }
private async Task OnChannelDeleted(ChannelDeleteEventArgs e) { if (ChannelDeleted != null) { await ChannelDeleted(e); } }
private async Task Discord_ChannelDeleted(DiscordClient client, ChannelDeleteEventArgs e) { var logs = (await e.Guild.GetAuditLogsAsync(5, null, AuditLogActionType.ChannelDelete).ConfigureAwait(false)).Cast <DiscordAuditLogChannelEntry>(); foreach (var entry in logs) { Console.WriteLine("TargetId: " + entry.Target.Id); } }
private Task DiscordClient_ChannelDeleted(ChannelDeleteEventArgs e) { var channel = e.Channel; var existingChannel = channels.SingleOrDefault(x => x.Id == channel.Id); if (existingChannel != null) { lock (channels) channels.Remove(existingChannel); } return(Task.CompletedTask); }
private async Task ChannelDeleted(DiscordClient c, ChannelDeleteEventArgs e) { Task.Run(async() => { if (!e.Channel.IsPrivate) { await logService.GuildLogger(c, e.Guild, e, LogType.Guild).ConfigureAwait(true); this.logger.Information($"Channel '{e.Channel.Name}' ({e.Channel.Id}) has been deleted on guild '{e.Guild.Name}' ({e.Guild.Id})."); } }); }
public static async Task ChannelDeleted(DiscordClient _, ChannelDeleteEventArgs c) { var data = new Global().GetDBRecords(c.Guild.Id); var channelId = Convert.ToUInt64(data.LogChannel); var channelDeletedEmbed = new DiscordEmbedBuilder() .WithColor(DiscordColor.Red) .WithDescription($"`Channel:` **{c.Channel.Name}** Has been **deleted**!\n"); await c.Guild.GetChannel(channelId).SendMessageAsync(embed: channelDeletedEmbed); }
private Task Discord_ChannelDeleted(DiscordClient client, ChannelDeleteEventArgs e) { List <string> channels = FileHandler.GetChannelListFromFile(_discord, "logchannels.txt"); string guildId = e.Channel.IsPrivate ? "user" : e.Channel.Guild.Id.ToString(); if (!channels.Contains($"{guildId} {e.Channel.Id}")) { return(Task.CompletedTask); } channels.Remove($"{guildId} {e.Channel.Id}"); string output = channels.Aggregate("", (current, ch) => current + $"{ch}\n"); Task.Run(async() => await File.WriteAllTextAsync("logchannels.txt", output)); client.Logger.LogWarning($"{(guildId != "user" ? $"#{e.Channel.Name} on `{e.Channel.Guild.Name}`" : $"DM channel {e.Channel.Id}")} " +
/// <summary> /// Remove a voice channel from memory and database if it was deleted manually. /// </summary> private async Task OnChannelDeleted(DiscordClient sender, ChannelDeleteEventArgs e) { // TODO: Potential use of cache await using var unitOfWork = _unitOfWorkFactory.Create(); var settings = await unitOfWork.AutoVoiceSettings.GetAsync(e.Guild); if (settings?.ChannelCreatorId is null) { return; } if (settings.RemoveChannel(e.Channel)) { await unitOfWork.CompleteAsync(); } }
private async Task ChannelDeleted(DiscordClient sender, ChannelDeleteEventArgs e) { _newEntry = await GetNewEntryAsync(); var cdEntry = _newEntry as DiscordAuditLogChannelEntry; if (cdEntry == null) { return; // Defense from cases when we delete category with channels under it } var cType = cdEntry.Target.Type; _entryBuilder = EmbedBuilderExtensions.CreateForAudit(cdEntry, "Удаление " + cType.ToRusCommon()); var shortDesc = $"Удаление {cType.ToRusCommon()} {cdEntry.Target.Name}"; var desc = cType == ChannelType.Category ? shortDesc : shortDesc + $", тип канала: {cType.ToRusString()}"; _entryBuilder.SetDescription(desc); await SendMessageToAuditAsync(true, embed : _entryBuilder); }
private async Task Discord_ChannelDeleted(ChannelDeleteEventArgs e) { var logs = (await e.Guild.GetAuditLogsAsync(5, null, AuditLogActionType.ChannelDelete).ConfigureAwait(false)).Cast <DiscordAuditLogChannelEntry>(); foreach (var entry in logs) { Debug.Log("TargetId: " + entry.Target.Id, Discord); } //Check through the guild entries and make sure that theres no deleted recorded adresses foreach (guildData dataEntries in data) { ulong guildID = dataEntries.guildId; DiscordGuild guild = await Discord.GetGuildAsync(guildID); DiscordChannel channel = await Discord.GetChannelAsync(dataEntries.disabledChannelID); if (channel == null || dataEntries.disabledChannelID == 0) { dataEntries.disabledChannelID = 0; } } }
public static async Task ChannelDeleted(ChannelDeleteEventArgs e, DiscordClient client, JsonConfig config) { var log = await client.Guilds.FirstOrDefault().Value.GetAuditLogsAsync(1, null, AuditLogActionType.ChannelDelete); var mandatoryChannels = config.mandatoryVoiceChannels; if (log == null || log.Count < 1) { throw new ArgumentException("No entry found"); } var user = log.FirstOrDefault().UserResponsible; Console.WriteLine(user.Username + " deleted the " + e.Channel.Name + " channel!"); if (mandatoryChannels.Contains(e.Channel.Name)) { await client.Guilds.FirstOrDefault().Value.CreateChannelAsync(e.Channel.Name, e.Channel.Type, e.Channel.Parent, e.Channel.Bitrate, e.Channel.UserLimit, e.Channel.PermissionOverwrites, "Mandatory channel recreation."); await client.SendMessageAsync(e.Guild.Channels.Where(x => x.Name == "general").FirstOrDefault(), "A(z) " + e.Channel.Name + " kötött csatorna, nem törölhető! " + user.Username + ", ellenőrző!"); } }
private async Task ChannelDelete(BaseDiscordClient client, DiscordGuild guild, IList <Defcon.Data.Guilds.Log> logs, ChannelDeleteEventArgs channelDeleteEventArgs, Guild guildData, Embed embed) { if (logs.Any(x => x.ChannelId == channelDeleteEventArgs.Channel.Id)) { var deletedLogChannel = logs.First(x => x.ChannelId == channelDeleteEventArgs.Channel.Id); guildData.Logs.Remove(deletedLogChannel); await redis.ReplaceAsync(RedisKeyNaming.Guild(guild.Id), guildData); } if (!channelDeleteEventArgs.Channel.IsPrivate) { embed.Title = $"{DiscordEmoji.FromGuildEmote(client, EmojiLibrary.Erase)} {channelDeleteEventArgs.Channel.Type.ToString()} channel deleted"; embed.Description = new StringBuilder().AppendLine($"Name: {Formatter.InlineCode(channelDeleteEventArgs.Channel.Name)}") .AppendLine($"Identity: {Formatter.InlineCode(channelDeleteEventArgs.Channel.Id.ToString())}") .ToString(); embed.Color = DiscordColor.IndianRed; } }
private Task ChannelDeleted(ChannelDeleteEventArgs e) { /* This would kill my bot */ return(Task.CompletedTask); }
private Task Client_ChannelDeleted(ChannelDeleteEventArgs e) { e.Client.DebugLogger.LogMessage(LogLevel.Info, "BotApp", $"{e.Channel.Name} deleted on {e.Guild.Name}", DateTime.Now); return(Task.CompletedTask); }
private async Task Client_ChannelDeletedAsync(DiscordClient client, ChannelDeleteEventArgs e) { await _subscriptionsService.RemoveAllSubscriptionsFromChannelAsync(e.Channel.Id); }
private async Task OnDiscordChannelDeleted(ChannelDeleteEventArgs e) { Console.WriteLine($"[Discord] Channel delete signal received! (guild: {e.Guild.Id}, channel: {e.Channel.Id})", Color.DodgerBlue); await PerformSnapshot(e.Guild); }
public static async Task ChannelDeleteEventHandlerAsync(TheGodfatherShard shard, ChannelDeleteEventArgs e) { DiscordChannel logchn = shard.SharedData.GetLogChannelForGuild(shard.Client, e.Guild); if (logchn == null) { return; } if (await shard.DatabaseService.IsExemptedAsync(e.Guild.Id, e.Channel.Id, EntityType.Channel)) { return; } DiscordEmbedBuilder emb = FormEmbedBuilder(EventOrigin.Channel, "Channel deleted", e.Channel.ToString()); emb.AddField("Channel type", e.Channel?.Type.ToString() ?? _unknown, inline: true); var entry = await e.Guild.GetFirstAuditLogEntryAsync(AuditLogActionType.ChannelDelete); if (entry == null || !(entry is DiscordAuditLogChannelEntry centry)) { emb.AddField("Error", "Failed to read audit log information. Please check my permissions"); } else { emb.AddField("User responsible", centry.UserResponsible?.Mention ?? _unknown, inline: true); if (!string.IsNullOrWhiteSpace(centry.Reason)) { emb.AddField("Reason", centry.Reason); } emb.WithFooter(centry.CreationTimestamp.ToUtcTimestamp(), centry.UserResponsible.AvatarUrl); } await logchn.SendMessageAsync(embed : emb.Build()); }
private Task Event_ChannelDeleted(DiscordClient d, ChannelDeleteEventArgs e) { d.Logger.LogDebug(BotEventId, "Event_ChannelDeleted."); return(Task.CompletedTask); }