▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/SentinelCore - AntyCheat
SentinelCore - AntyCheat

SentinelCore - AntyCheat

An adaptive, confidence-based anti-cheat foundation for Paper. SentinelCore uses historical evidence and behavioral baselines for reliable, high-performance detection without NMS injections.

Оцените первым
89
1
Все версииSentinelCore - AntyCheat 1.2.3

SentinelCore - AntyCheat 1.2.3

Release25.07.2026

Список изменений

SentinelCore - Changelog

🐛 Critical Fix

  • Fixed a NullPointerException spamming the console on nearly every PlayerMoveEvent. FlightCheck's motion-curve vector returned null instead of a "no evidence" result in three of its clean-movement branches (active upward impulse, deviation within tolerance, not enough mismatch samples yet). That null was passed straight up through evaluate() into AbstractEvidenceCheck.handle(), which unconditionally calls .evidence() on it - throwing on effectively every ordinary movement tick where nothing suspicious was happening. This was a pre-existing bug, unrelated to any other recent change; it now correctly returns a pass result instead.

✨ New Features / Calibration Changes

  • Active calibration duration is now config-driven. Previously the 1-hour session length was hardcoded (MAX_CALIBRATION_TICKS = 72_000 in ActiveCalibrationManager) and completely ignored config.yml. Added a new key, active-calibration.session-duration-ticks (default 72000), which now actually controls how long a player's active calibration session runs.
    • Note: this is distinct from calibration.interval-ticks, which only governs the background population-baseline recalibration cycle and was never meant to control per-player session length - that distinction is now also clarified in the config comments.
  • Full Survival gameplay during calibration. Players being actively calibrated are no longer locked into a restricted ADVENTURE-mode, no-PvP, peaceful-difficulty sandbox:
    • Calibration subjects are now placed in GameMode.SURVIVAL instead of ADVENTURE.
    • Removed the quarantine rules blocking item drops and environmental damage (fall, fire, drowning, etc.) - combat damage was never blocked to begin with.
    • The calibration world itself now runs with normal difficulty, PvP enabled, and the day/weather cycle and mob spawning turned on, instead of being frozen and peaceful.
    • The plugin still collects heuristic data silently in the background throughout - none of the sampling/telemetry pipeline was touched, only the restrictions placed on the player.

⚙️ Configuration Changes

  • Added active-calibration.session-duration-ticks (default 72000 = 1 hour).
  • Added settings.language (default "en") - global default language for console messages and any player who hasn't picked their own via /ac language <code>.
  • Raised default noise-reduction thresholds to cut false positives:
    • general.action-confidence: 0.860.95
    • general.action-violations: 8.015.0
    • checks.movement.alert-confidence: 0.960.98
    • checks.flight.alert-confidence: 0.860.95
  • active-calibration.database.enabled and active-calibration.ai.enabled now default to true (both still safely no-op without valid credentials configured).
  • Added messages.calibration-reset and new language-bundle keys (commands.language-usage, {available} placeholder in errors.unsupported-language) — every player-facing string in these flows is config/language-file driven now, no hardcoded text left in the command handler.

🌐 Language System

  • New /ac language <code> command lets a player switch their own message language on the fly (e.g. /ac language pl) — no restart or /ac reload required.
  • Both short ISO codes (en, pl, de, es, fr, pt, ru, it, tr, zh, ja, ko, ar) and full locale codes (en_US, pl_PL, ...) are accepted.
  • Fixed /ac language <code> silently failing for two-letter codes — the validator previously only accepted the full xx_XX form.
  • Console and any player who hasn't chosen a language now correctly follow the configured settings.language default instead of always falling back to English internally.

🛠 Other Fixes & Stability

  • sentinel_calibration_world creation, chunk loading, and slot assignment are guaranteed to run on the main thread — eliminates async-Bukkit-API crashes during calibration.
  • Player calibration baselines default safely to a neutral multiplier when no history exists, instead of risking a NullPointerException.
  • Database connection loss no longer spams stack traces to console: a single warning is logged on disconnect, data queues into local JSON automatically, and the plugin quietly retries the connection in the background every 15s until it recovers.
  • Added exponential backoff (2s → 4s → 8s → capped at 16s) for AI API requests on rate-limiting (HTTP 429) or transient errors, so calibration data is never lost due to a temporary outage.

📋 Notes

  • All new subsystems (AI scoring, SQL storage) remain opt-in and safe to leave disabled; this update flips the packaged config defaults to enabled: true — review active-calibration.* in your config.yml after updating if you want to keep them off.
  • No breaking changes to existing check behavior; only default confidence thresholds were raised (see above), plus the flight-check crash fix.

Compatible with Paper 1.21.1+ (tested against 1.21.11).

Файлы

SentinelCore-1.2.3.jar(1.20 MiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.2.3

Загрузчики

Bukkit
Paper
Purpur
Spigot

Версии игры

1.17–1.21.11

Загрузок

68

Дата публикации

25.07.2026

Загрузил

ID версии

Главная