Plugin to send global join and leave message over a bungee network with the player's display name.

Usage

The same plugin .jar goes in the BungeeCord plugins folder as well as the spigot plugin folders, however the config will only be generated on the bungee. All other spigot servers need no configuration

Why?

Display names tend to be handled by plugins local to a specific server which cannot know on their own if a player joining it has just opened a new connection or merely switched servers through bungee.

You'd have to make a trade-off, choosing between having fancy names that include your players' rank, or global messages which don't spam the chat every time someone visits a different server in your network.

With Korobi, you can have both. Also, why not.

How?

Korobi consists of two separated instances, KouKorobi and TeiKorobi.

KouKorobi is a singular authoritative instance running on the bungee proxy itself whereas TeiKorobi is an instance running on every single separate (spigot) server connected to this bungee.

When a player joins the network, KouKorobi issues a plugin message to the specific server the player just joined to construct the join message itself. That server broadcasts the join locally, and then forwards it on to all other
TeiKorobi listeners, which will also broadcast it on their respective servers.

The result is every server getting the same join message.

When a player leaves the network, KouKorobi issues a similar plugin message to the server from which the player just left, however, because of delays the specific server, it won't have a reference to the player to fetch their display name. For this, whenever a player leaves any server (which includes switching servers within the bungee network), the server caches the player's last known display name, which will be fetched when KouKorobi confirms the player has left the network, not just this server.