Gerben Put Nederlands

← Back to the overview

BanShare

A shared ban register for Minecraft servers

A central service and Paper plugin that let connected Minecraft servers register their own bans. Each server chooses how many active bans from different servers are still allowed. Above that threshold, the plugin denies the player at login.

Node.js · Express · PostgreSQL · Java 21 · Paper 1.21.4 · Maven · Docker

BanShare: Screenshot of the live site
Scroll: this is the real site

The story

The idea

A server can decide who is welcome, but does not automatically know what other communities encounter. The Vonk idea behind BanShare is a shared register with a configurable limit. The count uses distinct connected servers, so repeated reports from one server do not carry extra weight.

The exact rule

With a maximum of two, zero, one and two active server bans are allowed; from three onwards the player is denied. An unban only withdraws that server's own record. The plugin supplements existing moderation: registering in BanShare does not change the vanilla ban list and existing bans are not imported automatically.

From register to plugin

The central Express API stores records in PostgreSQL and identifies servers by their own token. The dashboard sits behind a login. The Java plugin for Paper 1.21.4 checks player UUIDs off the main thread and lets the administrator choose what happens during a service failure. The website provides the built JAR and installation instructions.

In detail

Count distinct servers
Each server/UUID pair contributes at most one active count; registering again does not add another vote.
Your own threshold
Set how many active server bans the plugin allows before denying a join.
Ban and unban
Register a ban for a UUID or withdraw your own server's record through the plugin or dashboard.
Protected administration
A dashboard behind login for counts, recent records, UUID checks and ban actions.
A token for each server
The API requires an individual server token; a server can only write on its own behalf.
Choose failure behaviour
Configure the timeout and fail-open or fail-closed behaviour for the additional BanShare check.
Next project DroneAI A pre-flight briefing for your drone