← Назад к ресурсам

EpicGuard

Bot protection system for Minecraft servers and proxies

Modrinth library management technology

Описание

# 🛡 EpicGuard [![GitHub stars](https://img.shields.io/github/stars/4drian3d/EpicGuard)](https://github.com/4drian3d/EpicGuard/stargazers) [![GitHub forks](https://img.shields.io/github/forks/4drian3d/EpicGuard)](https://github.com/4drian3d/EpicGuard/network) [![GitHub issues](https://img.shields.io/github/issues/4drian3d/EpicGuard)](https://github.com/4drian3d/EpicGuard/issues) [![GitHub license](https://img.shields.io/github/license/4drian3d/EpicGuard)](https://github.com/4drian3d/EpicGuard/blob/master/LICENSE) [![Java CI](https://github.com/4drian3d/EpicGuard/actions/workflows/gradle.yml/badge.svg)](https://github.com/4drian3d/EpicGuard/actions/workflows/gradle.yml) ![](https://img.shields.io/github/downloads/4drian3d/EpicGuard/total?logo=GitHub&style=flat-square) A simple AntiBot plugin for newest Minecraft versions. ## ✅ Supported platforms / Latest release requirements * [Paper 1.20.1+](https://papermc.io/) *(all paper forks are supported)* * [Velocity 3.3+](https://papermc.io/software/velocity) * Java **17** ## ✨ Features * A total of **8** configurable antibot checks: * Geographical check - country/city blacklist or whitelist. * VPN/Proxy check - configurable services and caching. * Nickname check - block certain nickname patterns using regex. * Reconnect check - require re-joining the server with an identical pair of address and nickname. * Server list check - require pinging the server before connecting (adding it to the server list). * Settings check - make sure that player sends a settings packet after joining (vanilla client behaviour). * Lockdown - temporarily block incoming connections if there are too many of them. * Name similarity check (BETA) * Account limit. * SQLite/MySQL support. * Live actionbar statistics. * Automatic whitelisting. * Console filter. [![](https://www.bisecthosting.com/partners/custom-banners/6fa909d5-ad2b-42c2-a7ec-1c51f8b6384f.webp)](https://www.bisecthosting.com/4drian3d?r=ModEpicGuard) ## 📚 Commands & Permissions To be able to use commands, give yourself the **epicguard.admin** permission. On different platforms there are additional aliases available, such as **/guardvelocity** or **/epicguardpaper** | Command | Description | |----------------------------------------------|------------------------------------------------------------------------| | /guard help | Displays all available commands. | | /guard reload | Reloads config and messages. | | /guard whitelist | Whitelist/unwhitelist an address or nickname. | | /guard blacklist | Blacklist/unblacklist an address or nickname. | | /guard analyze | Displays detailed information about the specified address or nickname. | | /guard status | Toggles live attack information on actionbar. | | /guard save | Forces save to the database. | ## 🔧 Using EpicGuard API in your project: The api is not very advanced, and there is not much you can do with it for now. Gradle (Kotlin) ```kotlin repositories { // Snapshots maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") // Releases mavenCentral() } dependencies { compileOnly("com.github.4drian3d:epicguard-api:[VERSION HERE]") } ``` Gradle (Groovy) ```groovy repositories { maven { url = 'https://s01.oss.sonatype.org/content/repositories/snapshots/' } mavenCentral() } dependencies { compileOnly 'com.github.4drian3d:epicguard-api:[VERSION OR COMMIT ID HERE]' } ``` Maven ```xml sonatype-oss-snapshots1 https://s01.oss.sonatype.org/content/repositories/snapshots/ com.github.4drian3d epicguard-api [VERSION HERE] provided ``` Using the API Make sure that EpicGuard is fully loaded before your plugin. [Click to see the API class](https://github.com/4drian3d/EpicGuard/blob/master/core/src/main/java/me/xneox/epicguard/core/EpicGuardAPI.java) ```java // Importing the API class. import me.xneox.epicguard.core.EpicGuardAPI; import me.xneox.epicguard.core.manager.AttackManager; public class EpicGuardAPIExample { // Accessing the EpicGuardAPI instance. EpicGuardAPI api = EpicGuardAPI.INSTANCE; // Obtaining the AttackManager instance: AttackManager attackManager = api.attackManager(); // Checking if server is under attack. boolean isUnderAttack = attackManager.isUnderAttack(); // checking current connections per second. int cps = attackManager.connectionCounter(); // Checking user's country: String countryId = api.geoManager().countryCode("127.0.0.1"); } ``` ## 🕵️ Privacy disclaimers * This plugin connect to various external services, to fully work as intended. * [MaxMind's Geolite2 databases](https://dev.maxmind.com/geoip/geoip2/geolite2) (country and city) are downloaded at the first startup and updated every week. Geolocation of your users is checked locally on your server. * *In the default configuration*, IP addresses of connecting users are sent to https://proxycheck.io/ to check if they're not using a proxy or a VPN. * IPs and nicknames associated with them are stored in the local database *(as plain text(!))*. * This plugin periodically checks the latest version released in this repository. *This feature can be disabled.* * *There is no metrics system or any other kind of data collection.* This is an [updated version](https://github.com/awumii/EpicGuard#%EF%B8%8F-maintained-fork-can-be-found-at-httpsgithubcom4drian3depicguard) of EpicGuard for recent versions of Paper, Waterfall and Velocity.