Esempio n. 1
0
        private async Task Client_UserBanned(SocketUser user, SocketGuild guild)
        {
            RestBan ban = await guild.GetBanAsync(user);

            RestAuditLogEntry logEntry = await GetAuditLogEntry(guild);

            if (logEntry.Action != ActionType.Ban)
            {
                return;
            }
            BanAuditLogData data           = (BanAuditLogData)logEntry.Data;
            string          targetUsername = "******" + user + "** _(" + user.Id + ")_";
            string          adminUsername  = "******" + logEntry.User + "**";
            string          msg            = targetUsername + " was banned by " + adminUsername +
                                             "\nReason: " + (string.IsNullOrEmpty(ban.Reason) ? "No reason provided." : ban.Reason);

            foreach (SocketTextChannel channel in Global.SECURITY_CHANNELS)
            {
                if (channel.Guild.Id == guild.Id)
                {
                    await SendSecurityLog(msg, new Color(255, 0, 0), channel, logEntry.Id.ToString(), logEntry.User.GetAvatarUrl());

                    break;
                }
            }
        }
Esempio n. 2
0
        private async Task OnUserBanned(SocketUser user, SocketGuild server)
        {
            var banData     = server.GetBanAsync(user.Id);
            var banningUser = GetBanningUserFromAuditLog(server, user.Id);
            var banReason   = banData.Result.Reason ?? StringConstants.NoReasonGiven;

            _banningService.StoreBan(
                banData.Result.User.Id,
                banData.Result.User.Username,
                banningUser.Id,
                banningUser.Username,
                0,
                banReason
                );

            try
            {
                var dmChannel = await user.GetOrCreateDMChannelAsync();

                dmChannel.SendMessageAsync($"You have been banned from **{server.Name}**. This ban is permanent.");
            }
            catch (Exception e)
            {
                Logger.Write($"Failed to send ban notification to {user.Username}: {e.Message}");
            }

            Logger.Write($"[OnUserBanned] {banningUser.Username} banned {user.Username} for {banReason}");
        }
Esempio n. 3
0
        private async Task CheckCaseEntities(SocketGuild guild, ILiteCollection <CaseEntity> collection)
        {
            var caseEntites = collection.Find(entity => entity.GuildId == guild.Id);

            foreach (var entity in caseEntites)
            {
                switch (entity.CaseType)
                {
                case CaseType.Ban:
                    try
                    {
                        var ban = await guild.GetBanAsync(entity.UserId);

                        if (ban == null)
                        {
                            throw new Exception();
                        }
                    }
                    catch
                    {
                        await guild.AddBanAsync(entity.UserId, 0, entity.Reason);
                    }
                    break;
                }
            }
        }
Esempio n. 4
0
        private async Task OnUserBanned(SocketUser user, SocketGuild guild)
        {
            if (!Active || !Android.Active)
            {
                return;
            }

            if (guild.Id != Android.GuildID)
            {
                return;
            }

            string banReason = "";

            try
            {
                var ban = await guild.GetBanAsync(user);

                banReason = " for " + (string.IsNullOrWhiteSpace(ban.Reason) ? "no reason" : ("\"" + ban.Reason + "\""));
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to get ban reason for " + user.Username);
            }
            await Append($"{user.Username}#{user.Discriminator} banned on {DateTime.UtcNow}{banReason}");

            await Task.CompletedTask;
        }
Esempio n. 5
0
        private async Task UserBaned(SocketUser arg1, SocketGuild arg2)
        {
            try
            {
                var guild = ConstVariables.CServer[arg2.Id];

                RestBan banned = await arg2.GetBanAsync(arg1);

                EmbedBuilder builder = new EmbedBuilder();

                Random ran = new Random();

                builder.WithFooter(arg2.Name, arg2.IconUrl)
                .WithTitle("Бан")
                .WithColor(ConstVariables.InfoColor);

                switch (ran.Next(0, 5))
                {
                case 0:
                {
                    builder.WithImageUrl("https://media.discordapp.net/attachments/462236317926031370/517352024640323584/ban_2.gif");
                    break;
                }

                case 1:
                {
                    builder.WithImageUrl("https://media.discordapp.net/attachments/462236317926031370/517352068328194059/ban_3.gif?width=405&height=475");
                    break;
                }

                case 2:
                {
                    builder.WithImageUrl("https://media.discordapp.net/attachments/462236317926031370/517352083226230794/ban_1.gif");
                    break;
                }

                default:
                {
                    builder.WithImageUrl("https://media.discordapp.net/attachments/462236317926031370/464149984619528193/tumblr_oda2o7m3NR1tydz8to1_500.gif");
                    break;
                }
                }


                builder.WithDescription($"Пользователь: {arg1.Mention} - забанен")
                .AddField($"Причина", banned.Reason ?? "неуказанно", true);

                ConstVariables.CServer[arg2.Id].EndUser = arg1.Id;

                await guild.GetDefaultChannel().SendMessageAsync("", false, builder.Build());

                ConstVariables.Logger.Info($"is func 'Ban' is Guild '{arg2.Name}' is user '{arg1.Username}#{arg1.Discriminator}' is Admin '{banned.User}' is Reason '{banned.Reason}'");
            }
            catch (Exception e)
            {
                ConstVariables.Logger.Error($"is func 'Ban' is Guild '{arg2.Name}' is user '{arg1.Username}#{arg1.Discriminator}' is error '{e}'");
            }
        }
Esempio n. 6
0
 public static async Task UserBanned(SocketUser user, SocketGuild guild)
 {
     Console.WriteLine("ReceivedBanEvent");
     if ((await guild.GetBanAsync(user.Id)).Reason.Contains(DiscordBot.client.CurrentUser.Id.ToString()) == false)
     {
         BanInfo banInfo = new BanInfo()
         {
             Source            = "Ban Event",
             Reason            = (await guild.GetBanAsync(user.Id)).Reason,
             UserId            = user.Id,
             Username          = user.Username,
             UserDiscriminator = user.Discriminator,
             UserNickname      = guild.GetUser(user.Id).Nickname,
             UserCreationDate  = user.CreatedAt,
             JoinDate          = guild.GetUser(user.Id).JoinedAt
         };
         await DiscordBot.SendBanMessage(banInfo);
     }
 }
Esempio n. 7
0
 public static async Task <RestBan> FindBanAsync(this SocketGuild guild, IUser user)
 {
     try
     {
         return(await guild.GetBanAsync(user));
     }
     catch (HttpException ex) when(ex.DiscordCode == (int)DiscordJsonCodes.UnknownBan)
     {
         return(null);
     }
 }
Esempio n. 8
0
        private async Task _client_UserBanned(SocketUser user, SocketGuild guild)
        {
            if (GuildSettings.GetGuildSettings(guild).SendLeaveMessage)
            {
                var r = await guild.GetBanAsync(user);

                var channel = GuildSettings.GetGuildSettings(guild).TestCommandChannel;
                _ = channel.SendMessageAsync($"{user.Mention} left the party :) {r.Reason}");
            }
            await Task.CompletedTask;
        }
Esempio n. 9
0
        private async Task OnUserBanned(SocketUser userBanned, SocketGuild guild)
        {
            var guildId = await _servers.GetEventLogChannel(guild.Id);

            var banAsync = await guild.GetBanAsync(userBanned);

            var reason = banAsync.Reason;

            if (_client.GetChannel(guildId) is ISocketMessageChannel logChannel)
            {
                await logChannel.SendMessageAsync($"{userBanned.Mention} has been banned from {guild.Name} " +
                                                  $"at {DateTime.Now} with reason : {reason}!");
            }
        }
Esempio n. 10
0
        private async Task LogUserBanned(SocketUser user, SocketGuild guild)
        {
            RestBan ban = await guild.GetBanAsync((IUser)user);

            var embed = new EmbedBuilder()
                        .WithTitle("User Banned")
                        .WithColor(Color.DarkRed)
                        .WithCurrentTimestamp()
                        .WithDescription($"User: {user.Username}\nUser ID: {user.Id}\nBot User: {isBotUser(user)}" +
                                         $"\nReason for ban: ```{((ban?.Reason != null) ? ban?.Reason : "No reason given")}```").Build();

            if (Global.userEventLogChannel != null)
            {
                await Global.userEventLogChannel.SendMessageAsync(embed : embed);
            }
        }
Esempio n. 11
0
        private async Task Client_UserBanned(SocketUser user, SocketGuild guild)
        {
            string banReason = "";

            try
            {
                var ban = await guild.GetBanAsync(user);

                banReason = " for " + (string.IsNullOrWhiteSpace(ban.Reason) ? "no reason" : ("\"" + ban.Reason + "\""));
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to get ban reason for " + user.Username);
            }
            await Append($"{user.Username}#{user.Discriminator} banned on {DateTime.Now.ToString()}{banReason}");

            await Task.CompletedTask;
        }
Esempio n. 12
0
        public async static Task OnUserBanned(SocketUser user, SocketGuild guild)
        {
            Logging.BannedUser(user, guild);
            try
            {
                IBan ban = guild.GetBanAsync(user) as IBan;
                await user.CreateDMChannelAsync();

                await user.SendMessageAsync($"You were banned from the Terraria Builders Community for reason: {ban.Reason} | In case of interest to appeal this ban, do this at https://terrariabuilders.com/community");

                await Task.CompletedTask;
            }
            catch
            {
                await Task.CompletedTask;
            }
            return;
        }
Esempio n. 13
0
        public static async Task UserBanned(SocketUser socketUser, SocketGuild socketGuild)
        {
            //Insert banned users into the database by using INSERT IGNORE
            List <(string, string)> queryParams = new List <(string id, string value)>()
            {
                ("@issuedTo", socketUser.Id.ToString()),
                ("@issuedBy", DiscordBot.Bot.CurrentUser.Id.ToString()),
                ("@inGuild", socketGuild.Id.ToString()),
                ("@reason", socketGuild.GetBanAsync(socketUser.Id).GetAwaiter().GetResult().Reason),
                ("@date", DateTime.Now.ToString("u"))
            };

            DatabaseActivity.ExecuteNonQueryCommand(
                "INSERT IGNORE INTO " +
                "bans(issuedTo,issuedBy,inGuild,banDescription,dateIssued) " +
                "VALUES (@issuedTo, @issuedBy, @inGuild, @reason, @date);", queryParams);

            //end.
        }
Esempio n. 14
0
        private async Task ShardOnUserBanned(SocketUser user, SocketGuild socketGuild)
        {
            GuildBson guild = await this.database.LoadRecordsByGuildId(socketGuild.Id);

            if (GetRestTextChannel(this.shard, guild.UserBannedEvent, out RestTextChannel restTextChannel))
            {
                RestBan ban = await socketGuild.GetBanAsync(user.Id);

                List <EmbedFieldBuilder> fields = new()
                {
                    new EmbedFieldBuilder
                    {
                        Name  = "Username",
                        Value = user.Username
                    },
                    new EmbedFieldBuilder
                    {
                        Name  = "User Id",
                        Value = user.Id
                    },
                    new EmbedFieldBuilder
                    {
                        Name  = "Ban reason",
                        Value = ban.Reason
                    }
                };

                EmbedBuilder embedBuilder = new()
                {
                    Color    = Color.Red,
                    Fields   = fields,
                    ImageUrl = user.GetAvatarUrl(),
                    Footer   = new EmbedFooterBuilder {
                        Text = $"Banned on {DateTime.UtcNow} UTC"
                    }
                };

                await restTextChannel.SendMessageAsync("", false, embedBuilder.Build());
            }
        }
    }
}
 public virtual Task <RestBan> GetBanAsync(IUser user, RequestOptions?options)
 {
     return(_socketGuild.GetBanAsync(user, options));
 }