EpicGuard
Bot protection system for Minecraft servers and proxies
EpicGuard
🛡 EpicGuard
A simple AntiBot plugin for newest Minecraft versions.
✅ Supported platforms / Latest release requirements
* 17 *(all paper forks are supported)* * %%MD1%% * 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.
📚 Commands & Permissions
To be able to use commands, give yourself the /epicguardpaper permission. On different platforms there are additional aliases available, such as /epicguardpaper or /epicguardpaper
| Command | Description | |----------------------------------------------|------------------------------------------------------------------------| | /guard help | Displays all available commands. | | /guard reload | Reloads config and messages. | | /guard whitelist <add/remove> <nick/address> | Whitelist/unwhitelist an address or nickname. | | /guard blacklist <add/remove> <nick/address> | Blacklist/unblacklist an address or nickname. | | /guard analyze <nick/address> | 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 <repositories> <!-- Only for Snapshots--> <repository> <id>sonatype-oss-snapshots1</id> <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url> </repository> </repositories> <dependencies> <dependency> <groupId>com.github.4drian3d</groupId> <artifactId>epicguard-api</artifactId> <version>[VERSION HERE]</version> <scope>provided</scope> </dependency> </dependencies> ```
Using the API
Make sure that EpicGuard is fully loaded before your plugin.
```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 (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 of EpicGuard for recent versions of Paper, Waterfall and Velocity.
