🛡 EpicGuard
A simple and effective bot protection system for modern Minecraft versions, providing comprehensive server security.
✅ Compatibility and Requirements
- Paper 1.20.1+ (including all Paper forks)
- Velocity 3.3+
- Java 17
🔧 Main Features
The system offers 8 configurable checks for bot protection:
- Geographical check - black and white lists for countries and cities
- VPN/Proxy detection - configurable verification services with caching
- Nickname check - blocking based on patterns using regular expressions
- Reconnection - requirement to reconnect with the same address and nickname
- Server list - mandatory server ping before connection
- Settings check - confirmation of settings packet transmission after login
- Lockdown mode - temporary connection restrictions during high load
- Name similarity (BETA) - detection of similar nicknames
- Account limit - limitation on the number of accounts
Additional Features
- SQLite and MySQL support
- Real-time statistics on action bar
- Automatic whitelisting
- Console filtering
📋 Commands and Permissions
To use commands, the epicguard.admin permission is required. On different platforms, additional command aliases are available, such as /guardvelocity or /epicguardpaper.
| Command | Description |
|---|---|
/guard help |
Displays all available commands |
/guard reload |
Reloads configuration and messages |
/guard whitelist <add/remove> <nick/address> |
Add/remove from whitelist |
/guard blacklist <add/remove> <nick/address> |
Add/remove from blacklist |
/guard analyze <nick/address> |
Detailed information about address or nickname |
/guard status |
Toggle attack information on action bar |
/guard save |
Force save to database |
🔌 Using EpicGuard API in Your Project
The API is not very advanced yet, but already provides basic integration capabilities.
Gradle (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)
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
<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 EpicGuard is fully loaded before your plugin.
// 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 Policy
The plugin connects to various external services for full functionality:
- MaxMind's Geolite2 databases (countries and cities) are downloaded at first startup and updated weekly. User geolocation is checked locally on your server.
- In the default configuration IP addresses of connecting users are sent to https://proxycheck.io/ to check for proxy or VPN usage.
- IP addresses and associated nicknames are stored in the local database as plain text.
- The plugin periodically checks for the latest version in this repository. This feature can be disabled.
- There is no metrics system or any other data collection.
This is an updated version of EpicGuard for the latest versions of Paper, Waterfall and Velocity.