diff --git a/README.md b/README.md index f0e9f8a..311f882 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,13 @@ Lightweight, accurate anti-cheat for Paper 1.21.x +## Latest Updates (v1.1.3) + +- **SpeedCheck**: `tps.min_tps_threshold` and `tps.enabled` config keys now actually work — previously hardcoded as `18.0` and always-on. +- **config.yml**: Removed orphaned `async_task_threads` key and entire `commands:` section — these were never read by the plugin. +- **PunishmentManager**: `database.enabled: false` now correctly disables SQLite punishment logging as documented. +- **PacketListener**: Removed three unreachable fallback methods (`updatePacketTiming`, `recordClick`, `recordAttack`) — dead code since v1.0.4. + ## Latest Updates (v1.1.2) - **reload**: `violation.decay_interval` changes now take effect immediately — the decay task is cancelled and recreated on every `/xac reload`. diff --git a/pom.xml b/pom.xml index 6f75965..c8804c2 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.xeroth xeroanticheat - 1.1.2 + 1.1.3 jar XeroAntiCheat 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 b4c2974..58ef5e3 100644 --- a/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpeedCheck.java +++ b/src/main/java/com/xeroth/xeroanticheat/checks/movement/SpeedCheck.java @@ -53,8 +53,12 @@ public class SpeedCheck extends Check { double speed = horizontalDistance / (timeDelta / 50.0); // Get server TPS - double tps = org.bukkit.Bukkit.getTPS()[0]; - double tpsMultiplier = 20.0 / Math.max(tps, 18.0); + double tpsMultiplier = 1.0; + if (plugin.getConfigManager().getBoolean("tps.enabled", true)) { + double tps = org.bukkit.Bukkit.getTPS()[0]; + double minTps = plugin.getConfigManager().getDouble("tps.min_tps_threshold", 18.0); + tpsMultiplier = 20.0 / Math.max(tps, minTps); + } // Calculate max speed based on player state double maxSpeed = calculateMaxSpeed(player, data); diff --git a/src/main/java/com/xeroth/xeroanticheat/manager/ConfigManager.java b/src/main/java/com/xeroth/xeroanticheat/manager/ConfigManager.java index 6321705..b584c97 100644 --- a/src/main/java/com/xeroth/xeroanticheat/manager/ConfigManager.java +++ b/src/main/java/com/xeroth/xeroanticheat/manager/ConfigManager.java @@ -27,7 +27,6 @@ public class ConfigManager { // General DEFAULTS.put("enabled", true); DEFAULTS.put("debug", false); - DEFAULTS.put("async_task_threads", 2); // Violation DEFAULTS.put("violation.decay_interval", 30); @@ -172,11 +171,6 @@ public class ConfigManager { DEFAULTS.put("alerts.staff_format", "[%time%] %message%"); DEFAULTS.put("alerts.cooldown_ms", 5000); - // Commands - DEFAULTS.put("commands.reload_permission", "xac.admin"); - DEFAULTS.put("commands.bypass_permission", "xac.bypass"); - DEFAULTS.put("commands.alerts_permission", "xac.alerts"); - // TPS DEFAULTS.put("tps.enabled", true); DEFAULTS.put("tps.min_tps_threshold", 18.0); diff --git a/src/main/java/com/xeroth/xeroanticheat/manager/PunishmentManager.java b/src/main/java/com/xeroth/xeroanticheat/manager/PunishmentManager.java index 3b12675..dab874f 100644 --- a/src/main/java/com/xeroth/xeroanticheat/manager/PunishmentManager.java +++ b/src/main/java/com/xeroth/xeroanticheat/manager/PunishmentManager.java @@ -207,7 +207,8 @@ public class PunishmentManager { } DatabaseManager db = plugin.getDatabaseManager(); - if (db != null && db.isAvailable()) { + boolean dbEnabled = plugin.getConfigManager().getBoolean("database.enabled", true); + if (db != null && db.isAvailable() && dbEnabled) { db.insertPunishment(timestamp, type, playerUuid, playerName, checkName, vl); } }); diff --git a/src/main/java/com/xeroth/xeroanticheat/protocol/PacketListener.java b/src/main/java/com/xeroth/xeroanticheat/protocol/PacketListener.java index 947cd81..3769ef0 100644 --- a/src/main/java/com/xeroth/xeroanticheat/protocol/PacketListener.java +++ b/src/main/java/com/xeroth/xeroanticheat/protocol/PacketListener.java @@ -152,56 +152,6 @@ public class PacketListener { return protocolLibAvailable; } - /** - * Update packet timing (called from event listeners when ProtocolLib unavailable) - */ - public void updatePacketTiming(Player player) { - if (protocolLibAvailable) { - return; - } - - PlayerData data = plugin.getViolationManager().getPlayerData(player); - if (data == null) return; - - long now = System.currentTimeMillis(); - data.setLastMovePacketTime(now); - - if (now - data.getLastPacketCountReset() > 1000) { - data.setPacketsThisSecond(0); - data.setLastPacketCountReset(now); - } - data.incrementPacketsThisSecond(); - } - - /** - * Record click (called from event listeners when ProtocolLib unavailable) - */ - public void recordClick(Player player) { - if (protocolLibAvailable) { - return; - } - - PlayerData data = plugin.getViolationManager().getPlayerData(player); - if (data != null) { - data.addClick(); - } - } - - /** - * Record attack (called from event listeners when ProtocolLib unavailable) - */ - public void recordAttack(Player player, java.util.UUID entityUuid) { - if (protocolLibAvailable) { - return; - } - - PlayerData data = plugin.getViolationManager().getPlayerData(player); - if (data != null) { - data.addAttack(entityUuid); - data.setLastAttackYaw(player.getLocation().getYaw()); - } - } - /** * Unregister all packet listeners */ diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d9b15e0..ec80946 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -12,9 +12,6 @@ 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) @@ -319,18 +316,6 @@ alerts: # Default: 5000ms (5 seconds). Set to 0 to disable throttling. cooldown_ms: 5000 -# ========================================== -# 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 # ========================================== diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 9b5b9cc..b363e8d 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: XeroAntiCheat -version: 1.1.2 +version: 1.1.3 main: com.xeroth.xeroanticheat.XeroAntiCheat author: Xeroth description: Lightweight, accurate anti-cheat for Paper 1.21.x