public async Task Warn(SocketGuildUser user, [Remainder] string reason = "Naruszenie regulaminu serwera")
        {
            Random random = new Random(DateTime.Now.Millisecond);
            uint   id     = (uint)random.Next(0, 100000);

            GuildCfg guildCfg = GuildsCfgs.GetGuildCfg(Context.Guild);

            IDMChannel dmChannel = await user.GetOrCreateDMChannelAsync();

            ISocketMessageChannel modChannel = (ISocketMessageChannel)Methods.GetTextChannelByID(Context.Guild, guildCfg.ModeratorChannelID);

            UserWarnings account = UsersWarnings.GetUserWarnings(user);
            SocketRole   role    = Methods.GetRoleByID(Context.Guild, guildCfg.PunishmentRoleID);

            Methods.DeleteExpiredWarnings(account);

            Warning warning = Warnings.CreateWarning(id, reason, guildCfg.WarnDuration);

            account.Warnings.Add(warning);
            UsersWarnings.Save();

            string msg     = "";
            string message = "";

            if (account.Warnings.Count >= 5)
            {
                await user.BanAsync(0, "Przekroczenie limitu ostrzeżeń.");
            }
            else if (account.Warnings.Count > 2)
            {
                await user.AddRoleAsync(role);

                msg     = $"{user.Mention} przekroczyłeś limit dopuszczalnych ostrzeżeń, co spowodowało Twój pobyt w {role.Name}.\nPowód ostatniego ostrzeżenia: {reason}\nPolecam przeczytać regulamin dostępny na <#{guildCfg.StatuteChannelID}>.";
                message = $"KarcNaN: Przekroczono limit ostrzeżeń, co skutkuje pobytem {user.Mention} w Karcerze.\nDokładna treść wysłanej wiadomości:\n{msg}";
            }
            else
            {
                msg     = $"{user.Mention} otrzymałeś ostrzeżenie, powód: {reason}\nMasz {account.Warnings.Count} ostrzeżeń (maksymalnie możesz mieć 2, każdy kolejny, to {role.Name}).\nPolecam przeczytać regulamin dostępny na <#{guildCfg.StatuteChannelID}>.";
                message = $"Ostrz101: Dokładna treść wysłanej wiadomości:\n{msg}";
            }

            await dmChannel.SendMessageAsync(msg);

            await modChannel.SendMessageAsync(message);
        }
        public static void DeleteExpiredWarnings(UserWarnings account)
        {
            try
            {
                for (int i = account.Warnings.Count - 1; i >= 0; i--)
                {
                    if (DateTime.Compare(DateTime.Now, account.Warnings[i].ExpireDate) >= 0)
                    {
                        account.Warnings.RemoveAt(i);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            UsersWarnings.Save();
        }
        public async Task RemoveWarning(SocketGuildUser user, uint id)
        {
            GuildCfg guildCfg = GuildsCfgs.GetGuildCfg(Context.Guild);

            ISocketMessageChannel modChannel = (ISocketMessageChannel)Methods.GetTextChannelByID(Context.Guild, guildCfg.ModeratorChannelID);

            UserWarnings account = UsersWarnings.GetUserWarnings(user);
            Warning      warning = Warnings.GetWarning(account, id);

            if (warning != null)
            {
                account.Warnings.Remove(warning);

                UsersWarnings.Save();

                await modChannel.SendMessageAsync($"Pomyślnie usunięto ostrzeżenie {warning.ID} z konta {user.Mention}.");
            }
            else
            {
                await modChannel.SendMessageAsync($"Coś poszło nie tak... Czy na pewno użyłeś dobrego ID? 🤔");
            }
        }