DuckyAC

轻量级、模块化且完全可配置的 Minecraft 服务器防作弊插件。

资源图片
# 🦆 DuckyAC **DuckyAC** 是一个轻量级、模块化且完全可配置的 Spigot/Paper Minecraft 服务器反作弊插件。 它检测玩家在放置方块、移动和其他互动中的不自然行为,以有效防止作弊。 > ✅ **推荐**: 建议将 **DuckyAC** 与 **[Vulcan](https://www.spigotmc.org/resources/vulcan-anti-cheat-advanced-cheat-detection-1-8-1-21-5.83626/)** 和 **[GrimAC](https://modrinth.com/plugin/lightning-grim-anticheat)** 结合使用,以获得最大的作弊检测覆盖范围。 --- ## ⚙️ 功能 - 🔍 **检查列表**: - `AirJumpA`: 检测空跳 - `AirPlaceA`: 检测玩家在空中建造 - `AutoTotemA`: 检测可疑的信标植入 (beta 检查) - `ElytraAimA`: 检测玩家在飞行 elytra 时速度过快 - `ElytraCriticalsA`: 检测玩家在极短时间内飞行 elytra 时造成过多的暴击伤害 - `GroundSpoofA`: 检测玩家发送虚假位置信息 - `FastClimbA`: 检测玩家爬梯子、藤蔓等速度过快 - `FastPlaceA`: 检测玩家同时放置过多的方块 - `FlyA`: 检测玩家飞行 *基础飞行* - `InvalidPlaceA`: 检测玩家以错误角度放置方块 - `NoSlowDownA-G`: 玩家在某些活动中行走过快的一系列功能 - `NoWebA`: 检测玩家在蛛网中移动速度过快 - `ReachA-B`: 检测玩家与实体/方块互动距离过远 - `ThruBlocksA-B`: 检测玩家穿墙攻击其他玩家 - `TimerA-D`: 检测玩家发送过多的数据包 - 📉 违规等级 (VL) 系统,用于跟踪重复违规行为 - 🔧 完全可配置的阈值、惩罚和启用检查 - 🛡 基于权限的绕过支持(例如,管理员) - 🔔 聊天和控制台中发送给授权人员 (`duckyac.alerts`) 的警报 - 📩 发送日志和惩罚的 Discord webhook 支持 - 🧠 配置设置缓存,用于性能优化 - 🔄 可选命令重新加载配置 (`/duckyac reload`) --- ## 🧪 示例配置 (`config.yml`) ```yaml # === DUCKY ANTICHEAT CONFIGURATION === # 所有检查按字母顺序排列。每个检查在其上方都有一个简短的英文描述。 # 玩家违规行为重置的时间(以秒为单位)。 # 例如:如果一个玩家对某个检查有 2 个报告,则在超时后,他的计数器将重置为 0。 alert-timeout: 300 # === VIOLATION ALERT MESSAGE TEMPLATE === # 用于广播给工作人员/控制台的警报消息格式。 alert-message: "&d&lDuckyAC &8» &fPlayer &7»&f %player% &7»&6 %check% &7(&c%vl%VL&7)" # === CHECKS (alphabetically ordered) === # AIR JUMP A # Detects jumping in the air air-jump-a: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting ignore-external-velocity: true min-upward-velocity-y: 0.25 detect-pressure-plates: true jumppad-plate-grace-ms: 450 min-horizontal: 0.02 external-velocity-grace-ms: 700 vertical-threshold: 0.3 damage-ignore-millis: 500 detect-wind-charge: true wind-charge-grace-ms: 900 ignore-potion-boost: false # Keep it false; it's a disabling player checking when player has Jump Boost effect max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Unnatural air jump detected (AirJumpA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # AIR PLACE A # Detects block placements in midair (no supporting blocks nearby). air-place-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-alerts: 3 # Number of reports after which the command is executed command: "kick %player% Invalid block placement (AirPlaceA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # AUTO TOTEM A # Detects extremely fast totem swaps (auto totem macros). auto-totem-a: enabled: true # Function to enable/disable check min-delay: 150 # Minimum allowed swap interval in ms tick-interval: 3 max-ping: -1 max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Too fast totem swap (AutoTotemA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # ELYTRA AIM A # Detects abnormal aiming/targeting while using an Elytra (aim assistance). elytra-aim-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-firework-delay: 200 # Time in milliseconds when a player hits another player a second time within the set time will be reported max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Cheating with Elytra (ElytraAimA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # ELYTRA CRITICALS A # Detects repeated "critical" hits while using Elytra that may indicate cheats. elytra-criticals-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting critical-hits-required: 3 # The number of critical hits a player can land in a time frame to report the player. timeframe: 700 # Timeframe in milliseconds to count critical hits max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Cheating with Elytra (ElytraCriticalsA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # FAST CLIMB A # Detects unnatural fast ladder/climb movement. fast-climb-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-climb-speed: 0.15 max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% You climbed too fast (FastClimbA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # FAST PLACE A # Detects placing blocks too quickly (anti-fast-place). fast-place-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-per-tick: 4 max-alerts: 3 # Number of reports after which the command is executed command: "kick %player% Too fast block placement (FastPlaceA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # FLY A fly-a: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting ignore-jump-boost: true ping-threshold: 250 hover-delta: 0.01 hover-ticks: 15 ascend-delta: 0.42 ascend-ticks: 8 damage-ignore-millis: 1500 teleport-ignore-millis: 2000 detect-wind-charge: true wind-charge-grace-ms: 900 max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Flying (FlyA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # GROUND SPOOF A # Heuristic check for clients that lie about being "on ground". # Conservative defaults chosen to minimise false positives. ground-spoof-a: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting ping-threshold: 300 check-depth: 3.0 min-ground-distance: 0.50 vertical-tolerance: 0.02 damage-ignore-millis: 300 teleport-ignore-millis: 500 max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Suspected ground spoof (GroundSpoofA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # HITBOX A # Detects attackers that appear to hit targets outside reasonable hitbox angles/distances. hitbox-a: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-angle: 40.0 max-distance: 3.5 max-tolerance: 0.2 ping-threshold: 300 max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Too large hitboxes (HitboxA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # INVALID PLACE A # Detects block placements with an invalid looking angle (player not plausibly looking at placement). invalid-place-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-angle: 50 # Maximum angle allowed between a look direction and placed block max-alerts: 3 # Number of reports after which the command is executed command: "kick %player% Invalid block placement (InvalidPlaceA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # NO WEB A # Detects suspicious movement while in cobwebs (NoWeb cheats). no-web-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-alerts: 3 # Number of reports after which the command is executed command: "kick %player% Suspicious movement in cobwebs (NoWebA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # NO SLOWDOWN B / C / D # NoSlowDown checks for different situations (bow, crossbow, shield). no-slowdown-max-distance: 1.0 # ignore distance used by multiple NoSlowDown checks no-slowdown-a: # Detects walking too fast while eating. enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-eating-speed: 0.20 max-distance: 1.0 ignored-speeds: - 0.5072 - 0.3024 - 0.2933 - 0.4822 - 0.5013 - 0.5014 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% Player was walking too fast while eating (NoSlowDownA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) no-slowdown-b: # Detects walking too fast with a drawn bow. enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-bow-speed: 0.20 ignored-speeds: - 0.5072 - 0.3024 - 0.2933 - 0.4822 - 0.5013 - 0.5014 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% Player was walking too fast with a drawn bow (NoSlowDownB)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) no-slowdown-c: # Detects walking too fast while drawing a crossbow. enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-speed: 0.20 ignored-speeds: - 0.5072 - 0.3024 - 0.2933 - 0.4822 - 0.5013 - 0.5014 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% Player walked too fast while drawing the crossbow (NoSlowDownC)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) no-slowdown-d: # Detects walking too fast while holding a shield. enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-speed: 0.20 ignored-speeds: - 0.5072 - 0.3024 - 0.2933 - 0.4822 - 0.5013 - 0.5014 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% Player was walking too fast while holding a shield (NoSlowDownD)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) no-slowdown-e: # Detects walking too fast on honey blocks. enabled: true # Function to enable/disable check max-speed: 0.170 max-alerts: 5 command: "kick %player% Player was walking too fast on honey block (NoSlowDownE)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) no-slowdown-f: # Detects walking too fast on soul sand. enabled: true # Function to enable/disable check max-speed: 0.170 max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Player was walking too fast on soul sand (NoSlowDownF)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) no-slowdown-g: # Detects walking too fast while sneaking. enabled: true # Function to enable/disable check max-speed: 0.135 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% Player was walking too fast while sneaking (NoSlowDownG)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) no-slowdown-h: # Detects walking too fast while drinking; includes an "ignore-after-speed" threshold. enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-speed: 0.20 ignore-after-speed: 1.0 # The player is unable to go faster than a value of 1, so any value above that will be false, this feature prevents false reports max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% Player was walking too fast while drinking (NoSlowDownH)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # REACH A # Detects interacting with (placing or breaking) a block from an impossible distance. # Takes into account per-player block_interaction_range attribute where available, plus tolerance and ping adjustments. reach-a: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting base-range: 3.0 # Default base reach (used when player attribute is not available) tolerance: 0.2 # Extra tolerance added to reach checks ping-threshold: 300 # If player's ping exceeds this, the check will grant an extra 0.5 block tolerance for player max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Interacting with distant block (ReachA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # REACH B # Detects attacking players/mobs from an impossible (too far) distance. # Uses configurable base range, tolerance, and ping threshold. reach-b: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting base-range: 3.0 # Default base reach (used when player attribute is not available) tolerance: 0.2 # Extra tolerance added to reach checks ping-threshold: 300 # If player's ping exceeds this, the check will grant an extra 0.5 block tolerance for player max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Interacting with distant player (ReachB)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # THRU BLOCKS A # Detects hitting entities through blocks (A variant). thru-blocks-a: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Hitting through blocks (ThruBlocksA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # THRU BLOCKS B # Detects hitting entities through blocks (B variant). thru-blocks-b: enabled: true # Function to enable/disable check cancel-event: false # Enabling this feature will take you back to the position before reporting max-alerts: 5 # Number of reports after which the command is executed command: "kick %player% Hitting through blocks (ThruBlocksB)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # TIMER checks (A.D) # Detects abnormal packet timing / fast-clicking / timer manipulation. timer-a: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-packets-per-second: 24 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% You send too many packets (TimerA)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) timer-b: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-packets-per-second: 24 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% You send too many packets (TimerB)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) timer-c: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-packets-per-second: 24 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% You send too many packets (TimerC)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) timer-d: enabled: true # Function to enable/disable check cancel-event: true # Enabling this feature will take you back to the position before reporting max-packets-per-second: 30 max-alerts: 10 # Number of reports after which the command is executed command: "kick %player% You send too many packets (TimerD)" # The command that will be executed when the maximum number of reports is reached debug: false # Enable verbose debugging (may cause log spam / lag) # === DISCORD / MESSAGES / MISC === # Discord integration settings (optional). discord: enabled: false discord-webhook-url: "https://discord.com/api/webhooks/your-webhook-id" username: "DuckyAntiCheat" avatar-url: "https://i.imgur.com/ahbEPVO.png" violation-message-template: "**AntiCheatSystem**\nPlayer: **%player%**\nCheck: **%check%**\nViolation: **%vl%**" punishment-message-template: "**Punishment Executed**\nPlayer: **%player%**\nCommand: `%command%`" # Misc messages and labels used by plugin commands. no-permission: "&d&lDuckyAC &8» &cNo Permission!" incorrect-usage: '&d&lDuckyAC &8» &cUsage: /duckyac reload' update-available: "&d&lDuckyAC &8» &eA new version is available: &c%version%" update-download: "&d&lDuckyAC &8» &eDownload: &a%url%" update-check-failed: "&d&lDuckyAC &8» &cCould not check for updates." player-only: "&d&lDuckyAC &8» &cOnly Players can use this command." config-reloaded: '&d&lDuckyAC &8» &aConfiguration reloaded.' plugin-reloaded: '&d&lDuckyAC &8» &aPlugin successfully reloaded.' ``` --- ## 🔐 权限 | 权限 | 描述 | |------------|-------------| | `duckyac.bypass` | 完全禁用此玩家的检查 | | `duckyac.bypass.-` | 仅禁用定义检查,适用于此玩家 | | `duckyac.*` | 完全访问(绕过 + 管理员权限) | | `duckyac.alerts` | 在聊天中收到警报消息 | | `duckyac.update` | 收到有关可用更新的消息 | --- ## 🚀 安装 1. 将 `DuckyAC-x.x.x.jar` 放入服务器的 `plugins/` 文件夹中。 2. 启动你的服务器。 3. 在 `plugins/DuckyAC/config.yml` 中配置插件。 4. 使用 `/duckyac reload` 重新加载插件。 5. 完成! --- ## 🛠 计划中的功能 - 添加更多战斗检查! --- ## 🤝 贡献/支持 发现了漏洞或有建议? 通过 Discord 联系或在 GitHub 存储库中打开问题! --- ## 📜 许可证 DuckyAC 使用 GPL-3.0 许可证。 您可以在许可证条款下自由使用、修改和重新分发它。 --- ## 💡 建议 为获得最佳的防现代作弊客户端保护,强烈建议运行 **DuckyAC 旁边 [Vulcan](https://www.spigotmc.org/resources/vulcan-anti-cheat-advanced-cheat-detection-1-8-1-21-5.83626/)** 和 **[GrimAC](https://modrinth.com/plugin/lightning-grim-anticheat)**。 每个插件都涵盖不同类型的漏洞,它们结合在一起形成强大的防御。 ---