Exemplo n.º 1
0
        public static async Task OnBannedMemberJoined(DiscordUserData data, DiscordGuild server, DiscordMember member)
        {
            //Gather data
            DiscordUserDataStatusBanned status = data.temp_banned;

            //Send them a message telling them why they were banned, if they have any strikes, ect.
            DiscordEmbedBuilder builder = new DiscordEmbedBuilder();

            builder.Title = "You are banned temporarily from " + server.Name + ".";
            if (status.is_automated)
            {
                builder.Description = "You cannot join this server. You were banned for having too many strikes. Your active strikes are listed below.";
                var strikes = data.GetActiveStrikes();
                for (int i = 0; i < strikes.Length; i += 1)
                {
                    DiscordUserDataStrike strike = strikes[i];
                    string message = $"*Added {BotTools.DateTimeToString(strike.GetTime())}*\n";
                    if (strike.expire_time.HasValue)
                    {
                        message += $"*__Expires {BotTools.DateTimeToString(strike.GetExpiry().Value)}__*\n";
                    }
                    else
                    {
                        message += "*__Never expires__*\n";
                    }
                    builder.AddField($"Strike {i+1} from {await BotTools.GetRemoteUsername(strike.striker)}", message + strike.message);
                }
            }
            else
            {
                DiscordUser user = await Program.discord.GetUserAsync(status.catalyst);

                builder.Description = $"You cannot join this server. You were banned by a member.";
                builder.AddField("Banned By", $"{user.Username}#{user.Discriminator}");
                builder.AddField("Reason", status.reason);
            }
            builder.AddField("Expires", $"This ban expires on {BotTools.DateTimeToString((DateTime)status.GetExpiry())}. You may rejoin after this time.");
            builder.AddField("Expires In", BotTools.DateTimeOffsetToString((DateTime)status.GetExpiry() - DateTime.UtcNow));
            builder.AddField("Added", $"You were banned on {BotTools.DateTimeToString(status.GetAppliedSince())}");
            builder.Color  = DiscordColor.Red;
            builder.Footer = new DiscordEmbedBuilder.EmbedFooter
            {
                Text = Program.FOOTER_TEXT
            };
            DiscordEmbed embed = builder.Build();

            //DM this to the person
            await BotTools.SendMemberMsg(member.Id, embed);

            //Kick them from this server
            await server.RemoveMemberAsync(member, "Automated temp ban system.");
        }