From daccfedae6506c44b010ef2261391abea892f38e Mon Sep 17 00:00:00 2001 From: Axel Date: Sun, 15 Mar 2026 03:39:39 -0300 Subject: [PATCH] XeroAntiCheat v1.0.8 bug fixes - SpiderCheck: fixed Location mutation bug - bodyBlock was reading y-1 (same as feetBlock) and headBlock was reading y instead of y+1. Now uses block coordinates directly. - ConfigManager: decay task no longer reads YamlConfiguration from background thread. decayRate is now volatile and refreshed on reload from main thread only. - JesusCheck, SpeedCheck, NoFallCheck: loc.subtract() now uses .clone() to prevent silent Location mutation. - VelocityCheck: decrementVelocityCheckTicks() moved past the minExpected threshold check to avoid consuming a tick on packets that are immediately discarded. --- .classpath | 57 +++ .factorypath | 52 +++ .idea/.gitignore | 3 + .project | 34 ++ .settings/org.eclipse.core.resources.prefs | 4 + .settings/org.eclipse.jdt.apt.core.prefs | 4 + .settings/org.eclipse.jdt.core.prefs | 9 + .settings/org.eclipse.m2e.core.prefs | 4 + dependency-reduced-pom.xml | 82 +++++ pom.xml | 2 +- .../xeroth/xeroanticheat/XeroAntiCheat.java | 2 + .../checks/combat/VelocityCheck.java | 4 +- .../checks/movement/JesusCheck.java | 2 +- .../checks/movement/NoFallCheck.java | 2 +- .../checks/movement/SpeedCheck.java | 2 +- .../checks/movement/SpiderCheck.java | 21 +- .../manager/ViolationManager.java | 8 +- src/main/resources/plugin.yml | 2 +- target/classes/config.yml | 339 ++++++++++++++++++ target/classes/plugin.yml | 185 ++++++++++ target/maven-archiver/pom.properties | 3 + .../compile/default-compile/createdFiles.lst | 37 ++ .../compile/default-compile/inputFiles.lst | 30 ++ 23 files changed, 866 insertions(+), 22 deletions(-) create mode 100644 .classpath create mode 100644 .factorypath create mode 100644 .idea/.gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.apt.core.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 dependency-reduced-pom.xml create mode 100644 target/classes/config.yml create mode 100644 target/classes/plugin.yml create mode 100644 target/maven-archiver/pom.properties create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..4e7f670 --- /dev/null +++ b/.classpath @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.factorypath b/.factorypath new file mode 100644 index 0000000..ba48460 --- /dev/null +++ b/.factorypath @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.project b/.project new file mode 100644 index 0000000..57e2765 --- /dev/null +++ b/.project @@ -0,0 +1,34 @@ + + + xeroanticheat + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + + + 1773547794034 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..dfa4f3a --- /dev/null +++ b/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=true +org.eclipse.jdt.apt.genSrcDir=target/generated-sources/annotations +org.eclipse.jdt.apt.genTestSrcDir=target/generated-test-sources/test-annotations diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..29f57ea --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,9 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=21 +org.eclipse.jdt.core.compiler.compliance=21 +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=enabled +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=21 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml new file mode 100644 index 0000000..b51f2bd --- /dev/null +++ b/dependency-reduced-pom.xml @@ -0,0 +1,82 @@ + + + 4.0.0 + com.xeroth + xeroanticheat + XeroAntiCheat + 1.0.8 + Lightweight, accurate anti-cheat for Paper 1.21.x + + + + true + src/main/resources + + + ${project.name} + + + maven-compiler-plugin + 3.13.0 + + 21 + 21 + UTF-8 + + + + maven-shade-plugin + 3.6.0 + + + package + + shade + + + + + net.kyori.adventure + com.xeroth.xeroanticheat.adventure + + + org.sqlite + com.xeroth.xeroanticheat.sqlite + + + + + + + + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + dmulloy2-repo + https://repo.dmulloy2.net/repository/public/ + + + + + io.papermc.paper + paper-api + 1.21.1-R0.1-SNAPSHOT + provided + + + com.comphenix.protocol + ProtocolLib + 5.3.0 + provided + + + + 21 + 21 + UTF-8 + + diff --git a/pom.xml b/pom.xml index fcffbd4..ed15152 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.xeroth xeroanticheat - 1.0.7 + 1.0.8 jar XeroAntiCheat diff --git a/src/main/java/com/xeroth/xeroanticheat/XeroAntiCheat.java b/src/main/java/com/xeroth/xeroanticheat/XeroAntiCheat.java index 6bd903f..83e6a90 100644 --- a/src/main/java/com/xeroth/xeroanticheat/XeroAntiCheat.java +++ b/src/main/java/com/xeroth/xeroanticheat/XeroAntiCheat.java @@ -231,6 +231,8 @@ public final class XeroAntiCheat extends JavaPlugin { public void reload() { configManager.loadConfig(); violationManager.clearAll(); + violationManager.setDecayRate( + configManager.getDouble("violation.decay_rate", 0.5)); getLogger().info("Configuration reloaded!"); } diff --git a/src/main/java/com/xeroth/xeroanticheat/checks/combat/VelocityCheck.java b/src/main/java/com/xeroth/xeroanticheat/checks/combat/VelocityCheck.java index 6c46a7b..7cf3b84 100644 --- a/src/main/java/com/xeroth/xeroanticheat/checks/combat/VelocityCheck.java +++ b/src/main/java/com/xeroth/xeroanticheat/checks/combat/VelocityCheck.java @@ -34,8 +34,6 @@ public class VelocityCheck extends Check { Vector expected = data.getLastServerVelocity(); if (expected == null || data.getVelocityCheckTicks() <= 0) return; - data.decrementVelocityCheckTicks(); - double expectedHorizontal = Math.sqrt( expected.getX() * expected.getX() + expected.getZ() * expected.getZ()); @@ -45,6 +43,8 @@ public class VelocityCheck extends Check { return; } + data.decrementVelocityCheckTicks(); + PlayerData.PositionSnapshot curr = data.getLastPosition(); PlayerData.PositionSnapshot prev = data.getSecondLastPosition(); if (curr == null || prev == null) return; diff --git a/src/main/java/com/xeroth/xeroanticheat/checks/movement/JesusCheck.java b/src/main/java/com/xeroth/xeroanticheat/checks/movement/JesusCheck.java index 7966899..0a52a52 100644 --- a/src/main/java/com/xeroth/xeroanticheat/checks/movement/JesusCheck.java +++ b/src/main/java/com/xeroth/xeroanticheat/checks/movement/JesusCheck.java @@ -37,7 +37,7 @@ public class JesusCheck extends Check { // Get block below player Location loc = player.getLocation(); - Material blockBelow = loc.subtract(0, 1, 0).getBlock().getType(); + Material blockBelow = loc.clone().subtract(0, 1, 0).getBlock().getType(); // Check if player is on water or lava boolean onWater = blockBelow == Material.WATER; diff --git a/src/main/java/com/xeroth/xeroanticheat/checks/movement/NoFallCheck.java b/src/main/java/com/xeroth/xeroanticheat/checks/movement/NoFallCheck.java index f73511f..90b82a9 100644 --- a/src/main/java/com/xeroth/xeroanticheat/checks/movement/NoFallCheck.java +++ b/src/main/java/com/xeroth/xeroanticheat/checks/movement/NoFallCheck.java @@ -54,7 +54,7 @@ public class NoFallCheck extends Check { // Check for damage-reducing blocks Location loc = player.getLocation(); - Material blockBelow = loc.subtract(0, 1, 0).getBlock().getType(); + Material blockBelow = loc.clone().subtract(0, 1, 0).getBlock().getType(); // Blocks that reduce/cancel fall damage if (blockBelow == Material.WATER || diff --git a/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpeedCheck.java b/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpeedCheck.java index 1c24d00..b4c2974 100644 --- a/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpeedCheck.java +++ b/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpeedCheck.java @@ -130,7 +130,7 @@ public class SpeedCheck extends Check { // Soul sand slows Location loc = player.getLocation(); - Material blockBelow = loc.subtract(0, 1, 0).getBlock().getType(); + Material blockBelow = loc.clone().subtract(0, 1, 0).getBlock().getType(); if (blockBelow == Material.SOUL_SAND || blockBelow == Material.SOUL_SOIL) { baseSpeed *= 0.75; } diff --git a/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpiderCheck.java b/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpiderCheck.java index e6bf532..18224f0 100644 --- a/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpiderCheck.java +++ b/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpiderCheck.java @@ -3,7 +3,6 @@ package com.xeroth.xeroanticheat.checks.movement; import com.xeroth.xeroanticheat.XeroAntiCheat; import com.xeroth.xeroanticheat.check.Check; import com.xeroth.xeroanticheat.data.PlayerData; -import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -47,17 +46,15 @@ public class SpiderCheck extends Check { return; } - // Get blocks around player - Location loc = player.getLocation(); - - // Check block at feet - Material feetBlock = loc.subtract(0, 1, 0).getBlock().getType(); - - // Check block at body level - Material bodyBlock = loc.getBlock().getType(); - - // Check block above head - Material headBlock = loc.add(0, 1, 0).getBlock().getType(); + // Get blocks around player using block coordinates (no Location mutation) + org.bukkit.World world = player.getWorld(); + int blockX = player.getLocation().getBlockX(); + int blockY = player.getLocation().getBlockY(); + int blockZ = player.getLocation().getBlockZ(); + + Material feetBlock = world.getBlockAt(blockX, blockY - 1, blockZ).getType(); + Material bodyBlock = world.getBlockAt(blockX, blockY, blockZ).getType(); + Material headBlock = world.getBlockAt(blockX, blockY + 1, blockZ).getType(); // Check if any of these blocks are climbable boolean feetClimbable = isClimbable(feetBlock); diff --git a/src/main/java/com/xeroth/xeroanticheat/manager/ViolationManager.java b/src/main/java/com/xeroth/xeroanticheat/manager/ViolationManager.java index ddb660f..cc5fd55 100644 --- a/src/main/java/com/xeroth/xeroanticheat/manager/ViolationManager.java +++ b/src/main/java/com/xeroth/xeroanticheat/manager/ViolationManager.java @@ -22,13 +22,17 @@ public class ViolationManager { private final Map playerDataCache = new ConcurrentHashMap<>(); private final MiniMessage miniMessage = MiniMessage.miniMessage(); - private double decayRate; + private volatile double decayRate; public ViolationManager(XeroAntiCheat plugin) { this.plugin = plugin; this.decayRate = plugin.getConfigManager().getDouble("violation.decay_rate", 0.5); } + public void setDecayRate(double rate) { + this.decayRate = rate; + } + /** * Get or create player data for a player */ @@ -89,8 +93,6 @@ public class ViolationManager { * Decay all violation levels for all players */ public void decayAll() { - decayRate = plugin.getConfigManager().getDouble("violation.decay_rate", 0.5); - for (PlayerData data : playerDataCache.values()) { for (String checkName : data.getViolationLevels().keySet()) { data.decayViolation(checkName, decayRate); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 087ec92..2d173c3 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: XeroAntiCheat -version: 1.0.7 +version: 1.0.8 main: com.xeroth.xeroanticheat.XeroAntiCheat author: Xeroth description: Lightweight, accurate anti-cheat for Paper 1.21.x diff --git a/target/classes/config.yml b/target/classes/config.yml new file mode 100644 index 0000000..003bfea --- /dev/null +++ b/target/classes/config.yml @@ -0,0 +1,339 @@ +# XeroAntiCheat Configuration File +# Version: 1.0.0 +# Target: Paper 1.21.x (compatible with 1.20-1.22) + +# ========================================== +# GENERAL SETTINGS +# ========================================== + +# Enable or disable the anti-cheat +enabled: true + +# Enable debug mode (logs additional information) +debug: false + +# Number of async threads for background tasks +async_task_threads: 2 + +# Database settings +database: + # Set to false to disable SQLite logging (flat-file log always active) + enabled: true + +# ========================================== +# VIOLATION SYSTEM +# ========================================== + +violation: + # Time in seconds between violation level decay + decay_interval: 30 + + # Amount to reduce VL by each decay interval + decay_rate: 0.5 + +# ========================================== +# CHECK CONFIGURATION +# ========================================== + +# Movement Checks +checks: + # ---------------------------------------- + # SPEED CHECK + # Detects horizontal movement faster than possible + # ---------------------------------------- + speed: + enabled: true + # Base maximum speed (blocks per tick) + max_speed: 0.56 + # Ping compensation factor (scales latency leniency) + ping_factor: 1.0 + # Number of ticks to buffer for rolling average + buffer_ticks: 5 + # VL thresholds + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # FLY CHECK + # Detects flying without elytra/creative/spectator + # ---------------------------------------- + fly: + enabled: true + # Number of ticks to allow for stepping/slabs + fall_buffer: 10 + # Maximum ground desync ticks before flagging + ground_desync_threshold: 3 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # JESUS CHECK (NoWaterWalk) + # Detects walking on water without Frost Walker + # ---------------------------------------- + jesus: + enabled: true + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # NOFALL CHECK + # Detects no fall damage after falling >3 blocks + # ---------------------------------------- + nofall: + enabled: true + # Minimum fall distance to track + min_fall_distance: 3 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # TIMER CHECK (Blink/Packet Timer) + # Detects packet timing anomalies + # ---------------------------------------- + timer: + enabled: true + # Maximum packets per second allowed + max_packets_per_second: 22 + # Milliseconds of no packets before flagging blink + blink_threshold_ms: 500 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # SPIDER CHECK + # Detects climbing non-climbable blocks + # ---------------------------------------- + spider: + enabled: true + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # GLIDE CHECK (ElytraHack) + # Detects glide-like movement without elytra + # ---------------------------------------- + glide: + enabled: true + # Minimum horizontal speed for glide detection + min_horizontal_speed: 0.5 + # Maximum Y decrease per tick for glide curve + max_y_decrease: 0.1 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # KILLAURA CHECK + # Detects impossible combat angles/rotations + # ---------------------------------------- + killaura: + enabled: true + # Maximum angle in degrees from look direction + max_angle: 100 + # Maximum rotation change between attacks + max_rotation_change: 45 + # Window for multi-target detection (ms) + multitarget_window_ms: 100 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # REACH CHECK + # Detects attacking beyond reach + # ---------------------------------------- + reach: + enabled: true + # Maximum reach in blocks (survival) + max_reach: 3.2 + # Maximum reach in blocks (creative) + creative_max_reach: 5.0 + # Ping compensation factor + ping_factor: 1.0 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # CRITICAL CHECK + # Detects critical hits without being airborne + # ---------------------------------------- + critical: + enabled: true + # Allow legitimate jump-crits + allow_jump_crits: true + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # AUTOCLICKER CHECK + # Detects excessive CPS or perfect patterns + # ---------------------------------------- + autoclicker: + enabled: true + # Maximum clicks per second + max_cps: 20 + # Minimum variance (lower = more suspicious) + min_variance: 2.0 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # FASTPLACE CHECK + # Detects block placement too fast + # ---------------------------------------- + fastplace: + enabled: true + # Maximum blocks per second + max_blocks_per_second: 20 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # PHASE CHECK + # Detects players clipping through solid blocks + # ---------------------------------------- + phase: + enabled: true + # Minimum movement distance before ray-cast runs (blocks) + min_distance: 0.5 + # Maximum movement delta — larger values are treated as teleports + max_distance: 5.0 + warn_vl: 5 + kick_vl: 15 + tempban_vl: 30 + permban_vl: 60 + + # ---------------------------------------- + # VELOCITY CHECK + # Detects players ignoring server-sent knockback (requires ProtocolLib) + # ---------------------------------------- + velocity: + enabled: true + # Minimum server-sent velocity magnitude to check + min_expected_velocity: 0.15 + # Player must move at least 20% of expected knockback + min_displacement_ratio: 0.2 + warn_vl: 8 + kick_vl: 20 + tempban_vl: 40 + permban_vl: 80 + + # ---------------------------------------- + # SCAFFOLD CHECK + # Detects automated scaffolding + # ---------------------------------------- + scaffold: + enabled: true + # Minimum pitch angle for suspicious placement + min_pitch: 75 + # Number of signals required to flag + signals_required: 2 + # Signal 4: Max yaw change (degrees) between placements + rotation_lock_threshold: 2.0 + # Signal 4: Min horizontal speed (blocks/tick) required + min_move_speed: 0.15 + # Signal 5: StdDev below this triggers signal (too-perfect timing) + min_placement_variance_ms: 30.0 + # Signal 5: Min blocks/sec before signal 5 is evaluated + min_bps_for_variance_check: 5 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # FASTEAT CHECK + # Detects eating faster than possible + # ---------------------------------------- + fasteat: + enabled: true + # Maximum eating duration in ticks (32 = 1.6s) + max_eat_ticks: 32 + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + + # ---------------------------------------- + # INVENTORYMOVE CHECK + # Detects movement while inventory open + # ---------------------------------------- + inventorymove: + enabled: true + warn_vl: 10 + kick_vl: 25 + tempban_vl: 50 + permban_vl: 100 + +# ========================================== +# PUNISHMENT SETTINGS +# ========================================== + +punishments: + # Commands to execute for each punishment level + # Use %player% for player name, %reason% for reason + kick_command: "kick %player% &c[XAC] Illegal activity detected" + tempban_command: "tempban %player% 30d %reason%" + permban_command: "ban %player% %reason%" + + # Default reason for bans + default_reason: "[XeroAntiCheat] Suspicious activity" + +# ========================================== +# ALERT SYSTEM +# ========================================== + +alerts: + # Enable or disable alert broadcasts + enabled: true + + # Alert format (MiniMessage) + # Available placeholders: %player%, %check%, %vl% + format: "[XAC] %player% failed %check% (VL: %vl%)" + + # Staff-only alert format + staff_format: "[%time%] %message%" + +# ========================================== +# COMMANDS +# ========================================== + +commands: + # Permission required for admin commands + reload_permission: "xac.admin" + # Permission to bypass all checks + bypass_permission: "xac.bypass" + # Permission to receive alerts + alerts_permission: "xac.alerts" + +# ========================================== +# TPS COMPENSATION +# ========================================== + +tps: + # Enable TPS-based threshold scaling + enabled: true + # Minimum TPS to apply compensation + min_tps_threshold: 18.0 diff --git a/target/classes/plugin.yml b/target/classes/plugin.yml new file mode 100644 index 0000000..2d173c3 --- /dev/null +++ b/target/classes/plugin.yml @@ -0,0 +1,185 @@ +name: XeroAntiCheat +version: 1.0.8 +main: com.xeroth.xeroanticheat.XeroAntiCheat +author: Xeroth +description: Lightweight, accurate anti-cheat for Paper 1.21.x +api-version: 1.21 +softdepend: + - ProtocolLib + +commands: + xac: + description: XeroAntiCheat main command + usage: /xac + permission: xac.command.version + aliases: [xeroanticheat, anticheat] + +permissions: + + # ── Wildcards ──────────────────────────────────────────────────────────── + + xac.*: + description: Grants all XeroAntiCheat permissions including bypass + default: false + children: + xac.admin: true + xac.bypass: true + + xac.admin: + description: Grants all staff commands and alert access (does NOT grant bypass) + default: op + children: + xac.command.reload: true + xac.command.status: true + xac.command.punish: true + xac.command.clearviolations: true + xac.command.verbose: true + xac.command.alerts: true + xac.command.version: true + xac.alerts: true + + # ── Commands ───────────────────────────────────────────────────────────── + + xac.command.reload: + description: Reload XAC configuration + default: op + + xac.command.status: + description: View a player's violation levels and ping + default: op + + xac.command.punish: + description: Manually trigger a punishment for a player + default: op + + xac.command.clearviolations: + description: Clear all violation levels for a player + default: op + + xac.command.verbose: + description: Toggle verbose per-flag output for a specific player + default: op + + xac.command.alerts: + description: Toggle receiving anti-cheat alerts in chat + default: op + + xac.command.version: + description: Show the plugin version + default: true + + # ── Alerts ─────────────────────────────────────────────────────────────── + + xac.alerts: + description: Receive alerts for all checks + default: op + children: + xac.alerts.movement: true + xac.alerts.combat: true + xac.alerts.misc: true + + xac.alerts.movement: + description: Receive alerts for movement checks only + default: false + + xac.alerts.combat: + description: Receive alerts for combat checks only + default: false + + xac.alerts.misc: + description: Receive alerts for misc checks only + default: false + + # ── Bypass ─────────────────────────────────────────────────────────────── + + xac.bypass: + description: Bypass all anti-cheat checks + default: false + children: + xac.bypass.movement: true + xac.bypass.combat: true + xac.bypass.misc: true + + xac.bypass.movement: + description: Bypass all movement checks + default: false + children: + xac.bypass.speed: true + xac.bypass.fly: true + xac.bypass.jesus: true + xac.bypass.nofall: true + xac.bypass.timer: true + xac.bypass.spider: true + xac.bypass.glide: true + xac.bypass.phase: true + + xac.bypass.combat: + description: Bypass all combat checks + default: false + children: + xac.bypass.killaura: true + xac.bypass.reach: true + xac.bypass.critical: true + xac.bypass.autoclicker: true + xac.bypass.velocity: true + + xac.bypass.misc: + description: Bypass all miscellaneous checks + default: false + children: + xac.bypass.fastplace: true + xac.bypass.scaffold: true + xac.bypass.fasteat: true + xac.bypass.inventorymove: true + + xac.bypass.speed: + description: Bypass SpeedCheck + default: false + xac.bypass.fly: + description: Bypass FlyCheck + default: false + xac.bypass.jesus: + description: Bypass JesusCheck + default: false + xac.bypass.nofall: + description: Bypass NoFallCheck + default: false + xac.bypass.timer: + description: Bypass TimerCheck + default: false + xac.bypass.spider: + description: Bypass SpiderCheck + default: false + xac.bypass.glide: + description: Bypass GlideCheck + default: false + xac.bypass.phase: + description: Bypass PhaseCheck + default: false + xac.bypass.killaura: + description: Bypass KillAuraCheck + default: false + xac.bypass.reach: + description: Bypass ReachCheck + default: false + xac.bypass.critical: + description: Bypass CriticalCheck + default: false + xac.bypass.autoclicker: + description: Bypass AutoClickerCheck + default: false + xac.bypass.velocity: + description: Bypass VelocityCheck (requires ProtocolLib) + default: false + xac.bypass.fastplace: + description: Bypass FastPlaceCheck + default: false + xac.bypass.scaffold: + description: Bypass ScaffoldCheck + default: false + xac.bypass.fasteat: + description: Bypass FastEatCheck + default: false + xac.bypass.inventorymove: + description: Bypass InventoryMoveCheck + default: false diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..43bf534 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,3 @@ +artifactId=xeroanticheat +groupId=com.xeroth +version=1.0.8 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..94be6ae --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,37 @@ +com/xeroth/xeroanticheat/command/XACCommand$1Cmd.class +com/xeroth/xeroanticheat/data/PlayerData$PositionSnapshot.class +com/xeroth/xeroanticheat/check/Check.class +com/xeroth/xeroanticheat/listener/CombatListener.class +com/xeroth/xeroanticheat/XeroAntiCheat.class +com/xeroth/xeroanticheat/data/PlayerData$RotationSnapshot.class +com/xeroth/xeroanticheat/manager/DatabaseManager.class +com/xeroth/xeroanticheat/checks/misc/ScaffoldCheck.class +com/xeroth/xeroanticheat/protocol/PacketListener$2.class +com/xeroth/xeroanticheat/command/XACCommand.class +com/xeroth/xeroanticheat/manager/PunishmentManager.class +com/xeroth/xeroanticheat/checks/combat/VelocityCheck.class +com/xeroth/xeroanticheat/listener/MovementListener.class +com/xeroth/xeroanticheat/checks/movement/SpiderCheck.class +com/xeroth/xeroanticheat/checks/combat/AutoClickerCheck.class +com/xeroth/xeroanticheat/checks/movement/PhaseCheck.class +com/xeroth/xeroanticheat/protocol/PacketListener$1.class +com/xeroth/xeroanticheat/manager/ViolationManager.class +com/xeroth/xeroanticheat/checks/misc/FastEatCheck.class +com/xeroth/xeroanticheat/checks/misc/InventoryMoveCheck.class +com/xeroth/xeroanticheat/protocol/PacketListener.class +com/xeroth/xeroanticheat/checks/movement/JesusCheck.class +com/xeroth/xeroanticheat/manager/ConfigManager.class +com/xeroth/xeroanticheat/checks/movement/SpeedCheck.class +com/xeroth/xeroanticheat/checks/movement/GlideCheck.class +com/xeroth/xeroanticheat/checks/movement/FlyCheck.class +com/xeroth/xeroanticheat/data/PlayerData$VelocitySnapshot.class +com/xeroth/xeroanticheat/manager/CheckManager.class +com/xeroth/xeroanticheat/checks/movement/NoFallCheck.class +com/xeroth/xeroanticheat/protocol/PacketListener$3.class +com/xeroth/xeroanticheat/listener/MiscListener.class +com/xeroth/xeroanticheat/data/PlayerData.class +com/xeroth/xeroanticheat/checks/combat/ReachCheck.class +com/xeroth/xeroanticheat/checks/misc/FastPlaceCheck.class +com/xeroth/xeroanticheat/checks/movement/TimerCheck.class +com/xeroth/xeroanticheat/checks/combat/CriticalCheck.class +com/xeroth/xeroanticheat/checks/combat/KillAuraCheck.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..15403aa --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,30 @@ +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/XeroAntiCheat.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/check/Check.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/combat/AutoClickerCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/combat/CriticalCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/combat/KillAuraCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/combat/ReachCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/combat/VelocityCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/misc/FastEatCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/misc/FastPlaceCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/misc/InventoryMoveCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/misc/ScaffoldCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/FlyCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/GlideCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/JesusCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/NoFallCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/PhaseCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpeedCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpiderCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/checks/movement/TimerCheck.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/command/XACCommand.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/data/PlayerData.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/listener/CombatListener.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/listener/MiscListener.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/listener/MovementListener.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/manager/CheckManager.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/manager/ConfigManager.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/manager/DatabaseManager.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/manager/PunishmentManager.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/manager/ViolationManager.java +/home/axel/Músicas/Java/src/main/java/com/xeroth/xeroanticheat/protocol/PacketListener.java