π‘ EpicGuard

A simple AntiBot plugin for newest Minecraft versions.
β
Supported platforms / Latest release requirements

β¨ 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)
```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/xxneox/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 (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.