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); }