Skip to content

Releases: SomeOneDay01/VoidAC

VAC v1.0.3

Choose a tag to compare

@SomeOneDay01 SomeOneDay01 released this 16 Jul 12:13

Changelog — VAC v1.0.3

New Features

  • PlayerProfiler — per-player statistical profiling with rolling baselines (mean + stddev after 5 minutes), anomaly detection (>3σ deviation), and trajectory prediction (velocity-based next-position extrapolation). Tracks CPS, reach, aim deviation, yaw/pitch deltas, jump frequency.
  • AimAnalyzer — aim pattern analysis with 4 distinct checks: snap (aim lands exactly on hitbox edge), grid (aim stops at 0.0/0.5 multiples), noise (lack of natural mouse jitter), lock-on (consistent aim behind walls)
  • ReplayRecorder — rolling buffer of 200 snapshots (~20 seconds). Save to JSON: /vac replay <player> save. Admin playback with teleport: /vac replay <player>
  • New commands/vac update (manual update check), /vac version (plugin version), /vac replay (recorded data playback)
  • New permissionsvac.command.update, vac.command.version, vac.command.replay

Multi-Version Compatibility

  • VersionUtil — rewritten: unversioned CraftServer detection for 1.20.5+ (Mojang-mapped classnames). Full fallback tables for 1.16–1.20.4.
  • PacketUtils — multi-version constructors: SetSlot (3/4 params), OpenSignEditor (1/2 params), Explosion (8 params), DataWatcher/SynchedEntityData reflection.
  • LagManagersendBlockChange reflective bridge: 2-param → 3-param fallback.
  • BanAnimationParticle reflection lookup (NEW/OLD enum names) for cross-version compatibility.

Bug Fixes

  • AntiXray — fixed NullPointerException on startup. ORES is now static final with static {} initializer.
  • GrimAC listener — dynamic Proxy-based registration probes addListener/registerListener/subscribe/addEventHandler. On failure, grimacEnabled correctly set to false.
  • Web Dashboard — fully removed (code, files, config).

VAC v1.0.2

Choose a tag to compare

@SomeOneDay01 SomeOneDay01 released this 16 Jul 11:48

Changelog — VAC v1.0.2

New Features

  • ColorUtils&#RRGGBB (hex), <gradient:#start:#end>text</gradient>, and & legacy color codes in all plugin messages
  • Language system — two languages: en (English) and ru (Russian). Switch via config.ymllanguage: en / language: ru. All messages are editable under messages.en.* and messages.ru.*. Full dictionaries are auto-generated on first launch.
  • New crash method/vac crash <player> flood (packet flood: 1600+ packets in 2 seconds)
  • Enhanced /vac crash all — simultaneous book + explosion + sign + position + particle flood (80 ticks)

Optimizations

  • Confidence decay — fixed formula (was avalanche-like, now linear: decay_per_second × check_interval per tick)
  • decay_min_confidence (default 5.0%) — confidence never drops below this threshold
  • Spike protectionspike_window_seconds: 10 + spike_multiplier: 2.5: >5 violations within 10 seconds triggers x2.5 multiplier on increment
  • Faster accumulation — repeated violations no longer incorrectly reset lastViolationTime; spike detection works correctly
  • New config keys: confidence.decay_min_confidence, confidence.spike_window_seconds, confidence.spike_multiplier

Fixes

  • GrimAC listener — dynamic method detection (probes addListener, registerListener, subscribe, addEventHandler with any parameter type via Proxy). If registration fails, grimacEnabled = false (previously set to true even on failure)
  • Removed legacy messages: block from config.yml — messages are now in messages.en and messages.ru

Config Changes (new keys)

language: en

confidence:
  decay_min_confidence: 5.0
  spike_window_seconds: 10
  spike_multiplier: 2.5

VAC v1.0.1

Choose a tag to compare

@SomeOneDay01 SomeOneDay01 released this 16 Jul 11:30

Changelog — VAC v1.0.1

Fixes

  • AntiXray NPE — fixed race condition in getOres() (now static final + static {} initializer)
  • AntiXray sendOreHides — replaced NMS PacketPlayOutBlockChange with Bukkit sendBlockChange(Material) for 1.20.5+ compatibility
  • LagManager — deprecated sendBlockChange(Location, Material, byte) replaced with reflective bridge (2-param → fallback 3-param)
  • BanAnimation — removed Particle enum constants (1.20.5+) replaced with reflective fallback lookup (CRIT_MAGIC→ENCHANTED_HIT, EXPLOSION_HUGE→EXPLOSION, LAVA→LANDING_LAVA/DRIPPING_LAVA, REDSTONE→DUST)

Multi-Version Compatibility (1.16–1.21)

  • VersionUtil — detect unversioned CraftServer (1.20.5+), complete MOJANG_MAP + MOJANG_ALT for Mojang mappings
  • PacketUtils.initNMS() — search for playerConnection/connection field and sendPacket/send method by both names
  • createPacketPlayOutSetSlot — 1.16-1.17 (3 param) / 1.18+ (4 param, added stateId)
  • createPacketPlayOutOpenSignEditor — 1.16-1.19 (1 param) / 1.20+ (2 param, added isFrontText)
  • createPacketPlayOutExplosion — 1.16-1.20.4 (float,float,float) / 1.20.5+ (Optional, ParticleOptions, SoundEvent)
  • createPacketPlayOutWorldParticles — tries both old and new constructor
  • createPacketPlayOutEntityMetadata — tries DataWatcher, SynchedEntityData, and new (int, List) constructor
  • createPacketPlayOutBlockChangeBlock.getByCombinedId() replaced with Bukkit BlockData → CraftBlockData

Removed

  • Web Dashboard — fully removed (WebDashboard.java, HTML/CSS/JS, config section, all references)

Misc

  • AntiXray TRANSPARENT set: GRASS/TALL_GRASS + SHORT_GRASS (1.20.3+) loaded via reflection
  • Removed unused java.util.concurrent.TimeUnit import