Загрузка данных


ПРОМПТ ДЛЯ CLAUDE
Minecraft AntiCheat Plugin + Admin Console + PowerShell Ban Integration

Ты — опытный Java-разработчик Minecraft Paper/Spigot-плагинов, античит-систем, серверной архитектуры и безопасных административных панелей.

Мне нужно, чтобы ты разработал полноценный античит-плагин для Minecraft на Java под Paper Server.
Плагин должен быть самостоятельным, с системой чекеров, наказаний, логов, отчетов, административной консолью, ролями пользователей и безопасной интеграцией с PowerShell для банов.

ВАЖНО ПО БЕЗОПАСНОСТИ:
— плагин нужен только для защиты собственного Minecraft-сервера;
— не пиши код читов, обходов античита, эксплойтов или вредоносных функций;
— не добавляй функции, которые помогают игрокам обходить проверки;
— не запускай произвольные команды от игроков или обычных админов;
— PowerShell должен запускать только заранее разрешенные команды/скрипты из конфига;
— не делай небезопасный «полный доступ ко всему серверу» без прав, логирования и ограничений;
— пароли нельзя хранить в открытом виде, используй BCrypt/Argon2 или другую безопасную схему хеширования;
— все действия через консоль должны логироваться: кто, когда, что сделал, к кому применил действие и с каким результатом.

МОИ ДАННЫЕ:
— Версия сервера: Minecraft 1.21.4.
— Клиентская совместимость: через ViaVersion/ViaBackwards/ViaFabric или аналогичную связку нужно учитывать игроков с версий примерно от 1.16.5 до 1.21.4.
— Сервер: Paper.
— Java: 21.
— ProtocolLib сейчас не установлен, но я могу добавить его, если он нужен для packet-чекеров.
— Бан должен работать по нику и IP.
— Нужны наказания: alert, kick, tempban, ban, вызов на проверку.
— Нужны отчеты в отдельной папке для админов: кого, когда, за что, кто наказал, какая проверка сработала, какой VL, IP, ник, UUID, версия клиента, ping, TPS, доказательства/логи.
— Нужна административная консоль для разных людей: владелец может создавать роли, пользователей, ники, пароли, выдавать права и контролировать весь сервер через консоль.
— Нужна система отчетов и ИИ-аналитики/обучения на основе логов, чтобы можно было анализировать ложные срабатывания и улучшать настройки античита.

ГЛАВНАЯ ЗАДАЧА:
Разработай полноценный Java-плагин античита для Minecraft Paper 1.21.4 с поддержкой Java 21.
Плагин должен иметь нормальную архитектуру, конфиги, чекеры, систему нарушений, наказания, админ-консоль, роли, отчеты, логи, PowerShell-интеграцию и инструкции по сборке/установке.

СДЕЛАЙ РЕЗУЛЬТАТ НЕ ПРОСТО ОПИСАНИЕМ, А ИМЕННО ГОТОВЫМ ПРОЕКТОМ:
1. Дай структуру папок проекта.
2. Дай pom.xml или build.gradle.
3. Дай plugin.yml.
4. Дай config.yml.
5. Дай permissions.yml, если нужен.
6. Дай Java-код всех основных классов.
7. Дай код чекеров.
8. Дай код менеджеров.
9. Дай код административной консоли.
10. Дай код интеграции с PowerShell.
11. Дай код логирования и отчетов.
12. Дай инструкцию по сборке.
13. Дай инструкцию по установке на Paper-сервер.
14. Дай инструкцию по настройке ролей, пользователей и PowerShell-банов.

АРХИТЕКТУРА ПРОЕКТА:
Сделай архитектуру примерно такую:

src/main/java/...
— AntiCheatPlugin.java
— config/ConfigManager.java
— checks/Check.java
— checks/CheckType.java
— checks/CheckManager.java
— checks/movement/SpeedCheck.java
— checks/movement/FlyCheck.java
— checks/movement/NoFallCheck.java
— checks/movement/StepCheck.java
— checks/movement/GlideCheck.java
— checks/movement/JesusCheck.java
— checks/movement/FastClimbCheck.java
— checks/movement/InventoryMoveCheck.java
— checks/movement/GroundSpoofCheck.java
— checks/combat/ReachCheck.java
— checks/combat/AutoClickerCheck.java
— checks/combat/KillAuraCheck.java
— checks/combat/AimAssistCheck.java
— checks/combat/CriticalsCheck.java
— checks/combat/NoSwingCheck.java
— checks/combat/FastBowCheck.java
— checks/interaction/FastPlaceCheck.java
— checks/interaction/FastBreakCheck.java
— checks/interaction/NukerCheck.java
— checks/interaction/ScaffoldCheck.java
— checks/interaction/MultiActionCheck.java
— checks/packet/BadPacketsCheck.java
— checks/packet/InvalidRotationCheck.java
— checks/packet/PacketFrequencyCheck.java
— checks/packet/TimerCheck.java
— violations/ViolationManager.java
— violations/ViolationData.java
— punishments/PunishmentManager.java
— punishments/PunishmentType.java
— punishments/PowerShellBanExecutor.java
— alerts/AlertManager.java
— logs/LogManager.java
— reports/ReportManager.java
— reports/ReportEntry.java
— console/AdminConsoleServer.java
— console/AuthManager.java
— console/UserManager.java
— console/RoleManager.java
— console/SessionManager.java
— console/AuditLogManager.java
— console/routes или handlers для API/команд консоли
— commands/AntiCheatCommand.java
— utils/PlayerUtil.java
— utils/TpsUtil.java
— utils/VersionUtil.java
— utils/MathUtil.java
— utils/SafeCommandBuilder.java
— ai/AIReportAnalyzer.java
— ai/TrainingDataExporter.java

Если считаешь, что структура лучше должна быть другой — предложи улучшенную, но сохрани понятное разделение по модулям.

ОБЯЗАТЕЛЬНЫЕ ЧЕКЕРЫ:
Сделай как минимум эти проверки:

MOVEMENT:
1. Speed — подозрительная скорость движения.
2. Fly — полет без разрешения.
3. NoFall — отсутствие урона от падения или подозрительные fall distance данные.
4. Step — слишком высокий шаг.
5. Glide — слишком медленное падение.
6. Jesus/WaterWalk — хождение по воде.
7. FastClimb — слишком быстрое движение по лестницам/лианам.
8. InventoryMove — движение с открытым инвентарем.
9. GroundSpoof — подозрительная подмена onGround.
10. ImpossibleMovement — невозможные перемещения.

COMBAT:
1. Reach — слишком большая дальность удара.
2. AutoClicker/CPS — подозрительная частота кликов.
3. KillAura heuristic — подозрительные атаки нескольких целей/аномальный паттерн ударов.
4. AimAssist heuristic — слишком резкие или слишком идеальные повороты.
5. Criticals — подозрительные критические удары.
6. NoSwing — атака без нормального swing/action поведения.
7. FastBow — слишком быстрая стрельба из лука.
8. AttackSpeedAnomaly — атаки быстрее возможного.

INTERACTION:
1. FastPlace — слишком быстрая установка блоков.
2. FastBreak — слишком быстрое разрушение блоков.
3. Nuker — массовое разрушение блоков.
4. Scaffold — подозрительная установка блоков под себя/вокруг себя.
5. ImpossibleBlockPlace — невозможная установка блоков.
6. MultiAction — слишком много разных действий за короткое время.

PACKET / BEHAVIOR:
1. BadPackets — странная последовательность действий.
2. InvalidRotation — невозможный pitch/yaw.
3. PacketFrequency — слишком много пакетов/действий.
4. Timer — подозрительное ускорение клиента.
5. DuplicateAction — повторяющиеся невозможные действия.

Если для некоторых packet-checks нужен ProtocolLib, сделай так:
— базовая версия плагина работает без ProtocolLib;
— если ProtocolLib установлен, включаются расширенные packet-чекеры;
— добавь проверку наличия ProtocolLib при старте;
— не ломай плагин, если ProtocolLib отсутствует.

СИСТЕМА НАРУШЕНИЙ:
— У каждого чекера должен быть violation level.
— За подозрительное действие игрок получает flag.
— VL должен постепенно снижаться со временем.
— У каждого чекера должны быть настройки enabled, maxViolations, decay, punishments, debug.
— Не банить мгновенно за одно подозрительное действие.
— Учитывать ping, TPS, лаги, teleport, knockback, potion effects, creative, spectator, vehicle, elytra, water, ladders, slime blocks, ice, soul sand, honey blocks, server lag и смену версии клиента через ViaVersion.
— Игроки с permission anticheat.bypass не проверяются.

НАКАЗАНИЯ:
Добавь типы наказаний:
— alert;
— kick;
— tempban;
— ban;
— checkcall / вызов на проверку;
— powershellBan;
— powershellTempBan.

Наказания должны настраиваться в config.yml отдельно для каждого чекера.

POWERHELL-ИНТЕГРАЦИЯ:
У меня уже есть PowerShell-решение для управления банами.
Нужно сделать безопасный PowerShellBanExecutor.

Требования:
— запускать команды асинхронно, не в main thread сервера;
— использовать только whitelist-команды из config.yml;
— не позволять игрокам или обычным админам вводить произвольный PowerShell-код;
— подставлять только безопасные placeholders: {player}, {uuid}, {ip}, {reason}, {issuer}, {duration};
— экранировать аргументы;
— добавить timeout;
— логировать stdout/stderr;
— логировать exit code;
— обрабатывать ошибки;
— добавить отдельный permission для запуска PowerShell-наказаний;
— добавить ограничение, что только владелец/роль owner может менять PowerShell-команды.

Пример config.yml:

powershell:
  enabled: true
  timeoutSeconds: 10
  allowedScriptsDirectory: "C:/Anticheat/scripts"
  banCommand: "powershell.exe -ExecutionPolicy Bypass -File C:/Anticheat/scripts/ban.ps1 -player {player} -ip {ip} -reason {reason} -issuer {issuer}"
  tempBanCommand: "powershell.exe -ExecutionPolicy Bypass -File C:/Anticheat/scripts/tempban.ps1 -player {player} -ip {ip} -duration {duration} -reason {reason} -issuer {issuer}"
  checkCallCommand: "powershell.exe -ExecutionPolicy Bypass -File C:/Anticheat/scripts/checkcall.ps1 -player {player} -reason {reason} -issuer {issuer}"

АДМИН-КОНСОЛЬ:
Нужна административная консоль для управления сервером и античитом.
Сделай безопасную консоль. Можно сделать встроенный локальный web-server или HTTP API внутри плагина.

Требования к консоли:
— по умолчанию слушать только 127.0.0.1, а не весь интернет;
— возможность включить внешний доступ только через config.yml;
— авторизация по логину и паролю;
— пароли хранить только в хеше;
— роли и права доступа;
— owner может создавать пользователей, роли, менять права, смотреть все отчеты, управлять наказаниями, менять настройки;
— admin может смотреть алерты, отчеты, выдавать kick/tempban/ban, вызывать на проверку;
— moderator может смотреть алерты, вызывать на проверку, выдавать kick/tempban, если разрешено;
— viewer может только смотреть отчеты и алерты;
— все действия консоли должны попадать в audit-log;
— защита от brute force: rate limit, временная блокировка после нескольких неправильных попыток;
— сессии с токенами и сроком действия;
— logout;
— не хранить токены в логах;
— не давать доступ к произвольным файлам сервера.

В консоли должны быть функции:
— список онлайн-игроков;
— карточка игрока: ник, UUID, IP, версия клиента, ping, VL, последние флаги;
— список алертов античита;
— список отчетов;
— просмотр отчета по игроку;
— поиск по нику/IP/UUID;
— kick игрока;
— tempban игрока;
— ban игрока;
— вызов игрока на проверку;
— сброс VL игрока;
— включение/выключение alerts для админа;
— reload config;
— управление пользователями консоли;
— управление ролями;
— просмотр audit-log;
— экспорт отчетов в JSON/CSV.

ОТЧЕТЫ И ЛОГИ:
Сделай отдельные папки:
— plugins/YourAntiCheat/reports/
— plugins/YourAntiCheat/logs/
— plugins/YourAntiCheat/audit/
— plugins/YourAntiCheat/training-data/

В отчетах должно быть:
— playerName;
— uuid;
— ip;
— clientVersion, если можно определить;
— checkName;
— checkType;
— violationLevel;
— maxViolations;
— ping;
— tps;
— world;
— location;
— action;
— punishment;
— issuer;
— timestamp;
— evidence/context;
— raw debug data, если debug включен.

ИИ-АНАЛИТИКА / ОБУЧЕНИЕ:
Сделай безопасный модуль AIReportAnalyzer и TrainingDataExporter.
Важно: он не должен сам выполнять команды и не должен сам менять код плагина.
Его задача:
— собирать данные по флагам;
— экспортировать training-data в JSON/CSV;
— помогать анализировать ложные срабатывания;
— генерировать рекомендации по настройке порогов;
— показывать статистику по чекерам;
— показывать игроков с частыми нарушениями;
— показывать, какие проверки дают больше всего ложных срабатываний;
— подготовить интерфейс, чтобы позже можно было подключить внешний AI API, но без обязательных ключей и без отправки данных без явного включения в config.yml.

КОМАНДЫ ПЛАГИНА:
Добавь команды:
— /anticheat reload
— /anticheat alerts
— /anticheat violations <player>
— /anticheat reset <player>
— /anticheat debug <player>
— /anticheat report <player>
— /anticheat checkcall <player> <reason>
— /anticheat kick <player> <reason>
— /anticheat tempban <player> <duration> <reason>
— /anticheat ban <player> <reason>
— /anticheat console createuser <login> <role>
— /anticheat console resetpassword <login>
— /anticheat console roles
— /anticheat console token или аналогичный безопасный способ первичной настройки owner.

PERMISSIONS:
Добавь permissions:
— anticheat.admin
— anticheat.owner
— anticheat.reload
— anticheat.alerts
— anticheat.violations
— anticheat.reset
— anticheat.debug
— anticheat.report
— anticheat.checkcall
— anticheat.kick
— anticheat.tempban
— anticheat.ban
— anticheat.powershell
— anticheat.console.manageUsers
— anticheat.console.manageRoles
— anticheat.console.viewReports
— anticheat.console.audit
— anticheat.bypass

CONFIG.YML:
Сделай полный config.yml с разделами:
— general;
— compatibility;
— checks;
— violations;
— punishments;
— powershell;
— reports;
— logs;
— aiAnalytics;
— adminConsole;
— roles;
— messages.

Укажи дефолтные значения, которые подходят для старта, но не слишком агрессивные, чтобы избежать ложных банов.

СОВМЕСТИМОСТЬ С 1.16.5–1.21.4:
Так как сервер 1.21.4, а игроки могут заходить с разных версий через ViaVersion/ViaBackwards/ViaFabric или аналог:
— не делай проверки, которые ломаются из-за различий протоколов;
— добавь VersionUtil;
— если можно, определяй версию клиента через ViaVersion API при наличии;
— если ViaVersion отсутствует, плагин должен работать без ошибки;
— учитывай различия в движении, хитбоксах, блоках, воде, лодках, элитрах, пвп-механиках и packet behavior между версиями;
— сделай version-specific exemptions или multipliers в config.yml.

ТРЕБОВАНИЯ К КОДУ:
— Java 21.
— Paper API 1.21.4.
— Нормальный ООП-код.
— Без огромных классов на тысячи строк, раздели по файлам.
— Асинхронные операции только вне main thread.
— Работа с Bukkit API только в main thread, если это требуется безопасностью API.
— Потокобезопасность для данных игроков.
— Комментарии к важным местам.
— Возможность легко добавлять новые чекеры.
— Обработка ошибок.
— Логи не должны содержать пароли, токены и секреты.
— Код должен быть пригоден для дальнейшего развития.

ФОРМАТ ОТВЕТА:
Ответ сделай по частям, если всё не помещается в одно сообщение.
Не сокращай важный код.

Сначала выдай:
1. Архитектуру.
2. Структуру проекта.
3. pom.xml/build.gradle.
4. plugin.yml.
5. config.yml.
6. Основные классы ядра.
7. Систему чекеров.
8. Несколько готовых основных чекеров: Speed, Fly, Reach, AutoClicker, FastBreak, FastPlace, NoFall, BadPackets, Timer, KillAura heuristic.
9. PowerShellBanExecutor.
10. ReportManager и LogManager.
11. Базовую AdminConsole с авторизацией, ролями и audit-log.
12. Инструкцию по сборке и установке.

После первой части спроси: «Продолжить и добавить остальные чекеры, расширенную web-консоль и AI-аналитику?»

НЕ ДЕЛАЙ:
— не пиши код читов;
— не пиши bypass античита;
— не делай backdoor;
— не делай скрытые команды;
— не делай RCE через консоль;
— не храни пароли открытым текстом;
— не открывай произвольные файлы сервера через web-консоль;
— не давай обычным пользователям менять PowerShell-команды;
— не делай автоматическую отправку логов во внешние сервисы без явного включения.

Начни разработку проекта сейчас.