Skip to content
This repository was archived by the owner on Aug 29, 2025. It is now read-only.

4drian3d/EpicGuard

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,264 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›‘ EpicGuard GitHub stars GitHub forks GitHub issues GitHub license Java CI

A simple AntiBot plugin for newest Minecraft versions.

Important

This version of EpicGuard has been discontinued; the last published version will be 7.6.1. I don't feel that I am the developer this project needs. Any other developer can take over the project, just as I did when I forked the original project.

βœ… 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
/epicguard help Displays all available commands.
/epicguard reload Reloads config and messages.
/epicguard whitelist <add/remove> <nick/address> Whitelist/unwhitelist an address or nickname.
/epicguard blacklist <add/remove> <nick/address> Blacklist/unblacklist an address or nickname.
/epicguard analyze <nick/address> Displays detailed information about the specified address or nickname.
/epicguard status Toggles live attack information on actionbar.
/epicguard 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 'io.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>io.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.

Click to see the API class

// 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.

About

πŸ›‘ Bot protection system for Minecraft servers and proxies.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors

Languages

  • Java 100.0%