MultiJoinPlugin

Provide MultiJoin plugin interface.

2

Quick challenge

How far can you run before the mobs catch you?

MultiJoinPlugin

MultiJoin

This repository is the Velocity-side companion plugin for MultiJoin. It is not the MultiJoin service itself.

MultiJoin aggregates multiple Yggdrasil `hasJoined` endpoints, maintains `multijoin` profile metadata, and exposes the binding API. This repository only connects Velocity to that service by providing in-game bind and unbind commands.

What This Repository Does

- Requests bind tokens for players. - Lets players bind and unbind in game. - Reads `multijoin` data from the player's `GameProfile` so the main service can resolve unbind targets. - Uses Velocity permissions to control access to those commands.

If you want to deploy MultiJoin itself, go to the MultiJoin repository above. Installing only this jar is not enough.

Dependency on MultiJoin

Before using this plugin, MultiJoin must already be running and reachable from Velocity.

By default, this plugin talks to:

```properties http://127.0.0.1:2268/bind ```

That means:

- MultiJoin must be started first; - both sides must use the same binding key; - if MultiJoin runs on another machine, replace `127.0.0.1` with the real host address.

Installation

1. Build or download the jar for this project. 2. Put it into Velocity's `plugins` directory. 3. Start Velocity once to generate the config file. 4. Edit `config.properties` in the plugin data directory. 5. Restart Velocity.

Default configuration:

```properties api=http://127.0.0.1:2268/bind key= ```

Fields:

- `api`: the binding endpoint exposed by MultiJoin. - `key`: must match the binding key configured in MultiJoin's `config.toml`.

Commands

```text /mj bind /mj bind <token> /mj unbind ```

- `/mj bind`: requests a bind token from MultiJoin and returns a clickable copy-to-clipboard result in chat. - `/mj bind <token>`: binds the current player to the profile represented by that token. - `/mj unbind`: removes the current player's existing MultiJoin binding.

Permissions

```text multijoin.bind multijoin.unbind ```

Requirements and Caveats

- This is a Velocity plugin, not a Bukkit, Spigot, or Paper backend plugin. - MultiJoin must already be configured and running, otherwise all commands will fail. - `api` and `key` must not be empty. - Unbind depends on an existing `multijoin` property in the player's `GameProfile`. - Request parameters are appended directly to the URL, so `api`, `key`, and `token` should use URL-safe characters.

License

This project is licensed under the MIT License.

ADS