Skip to content

BotBlocker-Minecraft/BotBlocker-Fabric

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

BotBlocker

A Minecraft Bukkit/Spigot plugin and Fabric mod designed to limit bot intrusion!
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Versions of the Project
  3. Functionality
  4. Getting Started
  5. Usage
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgments

About The Project

BotBlocker is a solution for Minecraft servers designed to limit bot intrusion. It is available for both Bukkit/Spigot Minecraft servers and as a Fabric mod. If a user logs out too quickly after joining (indicating they might be a bot), the user is banned. This approach limits the number of login attempts from each UUID, effectively mitigating the consequences of a bot attack.

Built With

(back to top)

Versions of the Project

Bukkit/Spigot BotBlocker

Fabric BotBlocker

(back to top)

Functionality

Initialization

When the server starts, BotBlocker initializes its configuration files (config.yml and players.yml). The initial default time limit for joining and leaving is set to 20 seconds. A message indicating the mod has successfully loaded with the set time limit is logged to the console.

Player Join

When a player joins, if BotBlocker is enabled and the player is not already exempt from BotBlocker's checks, the mod/plugin records the player's UUID and the current time.

Player Quit

When a player quits, BotBlocker calculates the duration of their connection. If this time is less than the set time limit and BotBlocker is enabled, the player is considered a bot. They get banned and a ban entry is added to the players.yml file. A disconnect message is sent to the player and a message is logged to the console. If the player stays longer than the time limit, they are deemed a legitimate player. Their UUID is added to the players.yml file as exempt.

Commands

  • /BotBlocker enable - Enables BotBlocker.
  • /BotBlocker disable - Disables BotBlocker.
  • /BotBlocker setTimeLimit [seconds] - Sets the time limit for detecting bots.

Configuration Files

BotBlocker maintains its configuration and the list of player UUIDs in config.yml and players.yml files, respectively.

Note: Players identified as legitimate are marked as such in the players.yml file and are not checked again in the future. If BotBlocker is disabled, it stops checking players for potential bot activity.

(back to top)

Getting Started

To get this plugin up and running on your server, follow these steps:

Prerequisites

  • Java 18 or later
  • A Fabric server (1.20.1 or later)

Installation

  1. Download the latest BotBlocker .jar file from the releases page.
  2. Move the downloaded .jar file to the plugins/ directory in your server.
  3. Restart your server. This will generate a default configuration file.

(back to top)

Usage

Once installed and enabled, BotBlocker works in the background without any intervention. If needed, you can adjust the bot protection parameters in the generated config.yml file.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GNU General Public License v3.0. See LICENSE for more information.

(back to top)

Contact

Aitor Astorga Saez de Vicuña - a.astorga.sdv@gmail.com

Project Link: https://github.com/BotBlocker-Minecraft

(back to top)

Acknowledgments