🛡 EpicGuard
A simple AntiBot plugin for newest Minecraft versions.
✅ Supported platforms / Latest release requirements
- Paper 1.20.1+ (all paper forks are supported)
- Velocity 3.3+
- 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 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 <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)
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 that 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 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.
External resources
Project members
4drian3d
Owner
Technical information
License
GPL-3.0-or-later
Project ID