Discord authentication and manual client verification for NeoForge servers.
BakeryAuth links Minecraft accounts to Discord, requires approval for every login, and provides client reports for administrator review.
/link code systemEvery login must be approved through Discord DM:
After a successful login, the client can submit information about installed mods and resource packs to the server.
Players are shown a consent screen before any data is collected. Declining the consent screen disconnects the player without sending a report.
mods and resourcepacks directoriesserver.language=en or server.language=ru| Component | Version |
|---|---|
| Minecraft | 1.21.1 |
| Loader | NeoForge |
| Java | 21 |
Download the latest bakeryauth-*-all.jar release.
Place the JAR into the server's mods directory.
Start the server once.
Edit the generated configuration file:
config/bakeryauth.properties
Restart the server.
Every player must install the same BakeryAuth version as the server.
/link channel IDCommands require permission level 3.
/bakeryauth info <player>Displays account-link, Discord-role, guild-membership, and login-session information.
/bakeryauth unlink <player>Removes a player's Discord link and active login session.
/bakeryauth reloadReloads supported server configuration settings.
Data sent from the client to the server after consent:
SHA-1 hashes are submitted by the server to the Modrinth API for file identification. Reports can be sent to server administrators through a configured Discord webhook.
Before any report is collected, players are shown a consent screen explaining what is shared and why. Declining disconnects the player without sending a report.
Consent is stored locally for each server address and is requested again when the agreement version changes.
The client never receives:
BakeryAuth activates client reporting only when connected to a server running BakeryAuth and matching one of the addresses configured by that server.
Join server
|
|- BakeryAuth missing or incompatible?
| -> Connection rejected
|
|- Account not linked?
| -> Receive /link code
|
|- Missing Discord membership or role?
| -> Access denied
|
|- Login request created
| -> Discord DM sent
|
|- Approve
| -> Reconnect and join server
| -> Consent screen shown when required
| -> Client report sent after consent
|
`- Deny
-> Access denied
server.language=en
discord.token=BOT_TOKEN
discord.guildId=123456789012345678
discord.playerRoleId=987654321098765432
discord.linkChannelId=111122223333444455
bakery.webhookUrl=https://discord.com/api/webhooks/...
bakery.serverIps=play.example.net,127.0.0.1:25565
security.loginExpireMinutes=5
security.handshakeTimeoutSeconds=30
Player disconnect messages can also be customized using the message.* configuration options.
Source code is available on GitHub. Issues and contributions are welcome.
GPL-3.0-only