Esempio n. 1
0
 private async Task OnGuildUpdated(GuildUpdateEventArgs e)
 {
     if (GuildUpdated != null)
     {
         await GuildUpdated(e);
     }
 }
Esempio n. 2
0
        private Task Discord_GuildUpdated(DiscordClient client, GuildUpdateEventArgs e)
        {
            var str = new StringBuilder();

            str.AppendLine($"The guild {e.GuildBefore.Name} has been updated.");

            foreach (var prop in typeof(DiscordGuild).GetProperties())
            {
                try
                {
                    var bfr = prop.GetValue(e.GuildBefore);
                    var aft = prop.GetValue(e.GuildAfter);

                    if (bfr is null)
                    {
                        client.Logger.LogDebug(TestBotEventId, "Guild update: property {Property} in before was null", prop.Name);
                    }

                    if (aft is null)
                    {
                        client.Logger.LogDebug(TestBotEventId, "Guild update: property {Property} in after was null", prop.Name);
                    }

                    if (bfr is null || aft is null)
                    {
                        continue;
                    }

                    if (bfr.ToString() == aft.ToString())
                    {
                        continue;
                    }

                    str.AppendLine($" - {prop.Name}: `{bfr}` to `{aft}`");
                }
                catch (Exception ex)
                {
                    client.Logger.LogError(TestBotEventId, ex, "Exception occurred during guild update");
                }
            }

            str.AppendLine($" - VoiceRegion: `{e.GuildBefore.VoiceRegion?.Name}` to `{e.GuildAfter.VoiceRegion?.Name}`");

            Console.WriteLine(str);

            return(Task.CompletedTask);
        }
Esempio n. 3
0
        //private Task Discord_MessageCreated(MessageCreateEventArgs e)
        //{
        //    if (e.Author.IsBot) // bad bot
        //        return Task.CompletedTask;

        //    if (e.Channel.IsPrivate)
        //        return Task.CompletedTask;

        //    var msg = e.Message;
        //    var mpos = msg.GetMentionPrefixLength(e.Client.CurrentUser);
        //    if (mpos == -1)
        //    {
        //        foreach (var x in this.Config.CommandPrefixes)
        //        {
        //            if (!string.IsNullOrWhiteSpace(x))
        //            {
        //                mpos = msg.GetStringPrefixLength(x);
        //                break;
        //            }
        //        }
        //    }

        //    if (mpos == -1 && TestBotCommands.PrefixSettings.ContainsKey(msg.Channel.Id) && TestBotCommands.PrefixSettings.TryGetValue(msg.Channel.Id, out var pfix))
        //        mpos = msg.GetStringPrefixLength(pfix);

        //    if (mpos == -1)
        //        return Task.CompletedTask;

        //    var pfx = msg.Content.Substring(0, mpos);
        //    var cnt = msg.Content.Substring(mpos);

        //    var cmd = this.CommandsNextService.FindCommand(cnt, out var args);
        //    var ctx = this.CommandsNextService.CreateContext(msg, pfx, cmd, args);
        //    if (cmd == null) // command was not found
        //        return Task.CompletedTask;

        //    _ = Task.Run(async () => await this.CommandsNextService.ExecuteCommandAsync(ctx));
        //    return Task.CompletedTask;
        //}

        private Task Discord_GuildUpdated(GuildUpdateEventArgs e)
        {
            var str = new StringBuilder();

            str.AppendLine($"The guild {e.GuildBefore.Name} has been updated.");

            foreach (var prop in typeof(DiscordGuild).GetProperties())
            {
                try
                {
                    var bfr = prop.GetValue(e.GuildBefore);
                    var aft = prop.GetValue(e.GuildAfter);

                    if (bfr is null)
                    {
                        Discord.DebugLogger.LogMessage(LogLevel.Debug, "GuildUpdated", $"Property {prop.Name} in before was null.", DateTime.Now);
                    }

                    if (aft is null)
                    {
                        Discord.DebugLogger.LogMessage(LogLevel.Debug, "GuildUpdated", $"Property {prop.Name} in after was null.", DateTime.Now);
                    }

                    if (bfr is null || aft is null)
                    {
                        continue;
                    }

                    if (bfr.ToString() == aft.ToString())
                    {
                        continue;
                    }

                    str.AppendLine($" - {prop.Name}: `{bfr}` to `{aft}`");
                }
                catch (Exception ex)
                {
                    Discord.DebugLogger.LogMessage(LogLevel.Debug, "GuildUpdated", $"An exception occurred: {ex.GetType()}", DateTime.Now, ex);
                }
            }

            str.AppendLine($" - VoiceRegion: `{e.GuildBefore.VoiceRegion?.Name}` to `{e.GuildAfter.VoiceRegion?.Name}`");

            Console.WriteLine(str);

            return(Task.CompletedTask);
        }
Esempio n. 4
0
        private async Task GuildUpdated(DiscordClient sender, GuildUpdateEventArgs e)
        {
            var guEntry = await GetNewEntryAsync() as DiscordAuditLogGuildEntry;

            if (guEntry == null)
            {
                return;                  //Defense from something(xD)
            }
            _entryBuilder = EmbedBuilderExtensions.CreateForAudit(guEntry, "Обновление параметров сервера");

            _entryBuilder.AddNamePropertyChange(guEntry.NameChange);
            _entryBuilder.AddPropertyChange("Регион", guEntry.RegionChange);
            _entryBuilder.AddPropertyChange("Уровень фильтрации откровенного контента", guEntry.ExplicitContentFilterChange);
            _entryBuilder.AddPropertyChange("Требования к верификации", guEntry.VerificationLevelChange);
            _entryBuilder.AddPropertyChange("Аватар", guEntry.IconChange);
            _entryBuilder.AddPropertyChange("Стандартные настройки уведомлений", guEntry.NotificationSettingsChange);
            _entryBuilder.AddPropertyChange("Двухфакторная аутентификация", guEntry.MfaLevelChange);
            _entryBuilder.AddPropertyChange("Изображение при инвайте", guEntry.SplashChange);

            _entryBuilder.AddChannelPropertyChange("Афк", guEntry.AfkChannelChange);
            _entryBuilder.AddChannelPropertyChange("Системный", guEntry.SystemChannelChange);

            await SendMessageToAuditAsync(embed : _entryBuilder);
        }
Esempio n. 5
0
 private Task GuildUpdated(GuildUpdateEventArgs e)
 {
     /* This would kill my bot */
     return(Task.CompletedTask);
 }
Esempio n. 6
0
 private Task Client_GuildUpdated(GuildUpdateEventArgs e)
 {
     e.Client.DebugLogger.LogMessage(LogLevel.Info, "BotApp", e.ToString(), DateTime.Now);
     return(Task.CompletedTask);
 }
Esempio n. 7
0
        public static async Task GuildUpdateEventHandlerAsync(TheGodfatherShard shard, GuildUpdateEventArgs e)
        {
            DiscordChannel logchn = shard.SharedData.GetLogChannelForGuild(shard.Client, e.GuildAfter);

            if (logchn == null)
            {
                return;
            }

            DiscordEmbedBuilder emb = FormEmbedBuilder(EventOrigin.Role, "Guild settings updated");

            var entry = await e.GuildAfter.GetFirstAuditLogEntryAsync(AuditLogActionType.GuildUpdate);

            if (entry != null && entry is DiscordAuditLogGuildEntry gentry)
            {
                emb.AddField("User responsible", gentry.UserResponsible.Mention, inline: true);
                if (gentry.NameChange != null)
                {
                    emb.AddField("Name change", $"{gentry.NameChange.Before ?? _unknown} -> {gentry.NameChange.After ?? _unknown}", inline: true);
                }
                if (gentry.AfkChannelChange != null)
                {
                    emb.AddField("AFK channel changed to", gentry.AfkChannelChange.After?.ToString() ?? _unknown, inline: true);
                }
                if (gentry.EmbedChannelChange != null)
                {
                    emb.AddField("Embed channel changed to", gentry.EmbedChannelChange.After?.ToString() ?? _unknown, inline: true);
                }
                if (gentry.IconChange != null)
                {
                    emb.AddField("Icon changed to", gentry.IconChange.After ?? _unknown, inline: true);
                }
                if (gentry.NotificationSettingsChange != null)
                {
                    emb.AddField("Notifications changed to", gentry.NotificationSettingsChange.After.HasFlag(DefaultMessageNotifications.AllMessages) ? "All messages" : "Mentions only", inline: true);
                }
                if (gentry.OwnerChange != null)
                {
                    emb.AddField("Owner changed to", gentry.OwnerChange.After?.ToString() ?? _unknown, inline: true);
                }
                if (!string.IsNullOrWhiteSpace(gentry.Reason))
                {
                    emb.AddField("Reason", gentry.Reason);
                }
                emb.WithFooter(gentry.CreationTimestamp.ToUtcTimestamp(), gentry.UserResponsible.AvatarUrl);
            }
            else
            {
                emb.AddField("Error", "Failed to read audit log information. Please check my permissions");
            }

            await logchn.SendMessageAsync(embed : emb.Build());
        }
Esempio n. 8
0
 private async Task GuildUpdated(DiscordClient c, GuildUpdateEventArgs e)
 {
     this.logger.Information($"Guild '{e.GuildAfter.Name}' ({e.GuildAfter.Id}) has been updated.");
 }
Esempio n. 9
0
 private Task Event_GuildUpdated(DiscordClient d, GuildUpdateEventArgs e)
 {
     d.Logger.LogDebug(BotEventId, "Event_GuildUpdated.");
     return(Task.CompletedTask);
 }
Esempio n. 10
0
        internal void GuildUpdateEvent(GuildUpdateEventArgs e)
        {
            var handler = GuildUpdate;

            handler?.Invoke(this, e);
        }