Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
DiscordStatus
For Paper / Purpur 1.21.x — Java 21 — Version 1.0.0
DiscordStatus bridges your Minecraft server's live status to Discord using a bundled bot
(JDA — no external service or webhook required). It keeps a single persistent status embed
(player count, TPS, version, IP, maintenance state), posts lifecycle messages when the server
starts, becomes ready, stops or enters maintenance, updates the bot's presence with the player
count, and answers a /status slash command in Discord.
Everything is configured from config.yml — there is no web panel.
Features
- Persistent status embed — one message that is edited in place (no channel spam) showing online/max players, TPS, server version and IP.
- Lifecycle messages — starting, ready, stopping, maintenance-on and maintenance-off events posted to your channel with customizable titles, descriptions and colors.
- Bot presence — the bot's activity text reflects the current player count on a configurable interval.
- Discord
/statusslash command — any member can request the current status embed; it only exposes information that is already public. - Maintenance awareness — reads maintenance state from a companion plugin named
MaintenancePlugin(or itsstate.yml) and posts the matching lifecycle message. - Bundled Discord bot — JDA is shaded into the jar; no extra downloads.
- Bilingual language files —
en_USandpt_PTincluded.
Commands
| Command | Description | Permission |
|---|---|---|
/discordstatus reload |
Reload the configuration and reconnect the bot. | discordstatus.admin |
/discordstatus status |
Force an update of the persistent status embed. | discordstatus.admin |
/discordstatus test |
Post a test "ready" lifecycle message. | discordstatus.admin |
Alias: /ds. The Discord-side /status slash command is registered automatically in your guild.
Permissions
| Node | Description | Default |
|---|---|---|
discordstatus.admin |
Allows managing the DiscordStatus plugin (reload, status, test). | op |
Setting up the Discord bot
This plugin requires your own Discord bot application.
- Go to https://discord.com/developers/applications and create a new application.
- Add a Bot to the application and copy its token.
- Invite the bot to your server with permission to view and send messages in the target channel.
- Enable Developer Mode in Discord (User Settings -> Advanced), then right-click your server and channel to copy their IDs.
You do not need to enable the Message Content Intent — the bot never reads message content, it only posts embeds and updates its presence. Request the minimum privileges.
Keep your token private
Your bot token grants full control of the bot. Never commit config.yml with a real token to
Git or share it publicly. If a token is ever exposed, reset it immediately in the Discord
developer portal. The plugin never logs the token and ships with a placeholder value only.
Configuration
The important keys in config.yml:
bot:
# Paste your bot token here. Keep this file private and out of version control.
token: "YOUR_BOT_TOKEN_HERE"
guildId: "" # your Discord server ID
channelId: "" # the channel ID for lifecycle + status messages
server:
ip: "play.example.com" # the IP shown in the status embed
features:
lifecycleMessages: true
statusEmbed: true
showTps: true
intervals:
presence: 30 # seconds between presence updates
embed: 30 # seconds between status embed edits
maintenancePoll: 3 # seconds between maintenance-state checks
statusMessage:
mode: "EDIT_EXISTING" # EDIT_EXISTING or DELETE_AND_REPOST
presence:
# Placeholders: {online}, {max}, {tps}, {server_ip}
template: "with {online}/{max} players"
embed:
title: "Server Status"
color: "#00FF00"
footer: "Last updated"
thumbnailUrl: ""
# Lifecycle templates (starting / ready / stopping / maintenance-on / maintenance-off)
# support the placeholders {reason}, {server_ip}, {online}, {max}.
language: "en_US"
Notes:
bot.token/guildId/channelIdare required for the bot to connect. Leaving the token as the placeholder keeps the bot offline (the rest of the server runs normally).statusMessage.mode—EDIT_EXISTINGkeeps a single message updated (recommended);DELETE_AND_REPOSTdeletes and reposts each cycle.intervals— presence and embed updates are throttled; keep them at a few seconds or more to stay within Discord's rate limits.- Titles, descriptions and colors of every embed and lifecycle message are fully customizable.
Installation
- Requires Paper or Purpur 1.21+ and Java 21.
- Create a Discord bot and copy its token (see "Setting up the Discord bot" above).
- Drop
DiscordStatus.jarinto your server'splugins/folder. - Start the server once to generate
config.yml. - Fill in
bot.token,bot.guildId,bot.channelIdandserver.ip, then run/discordstatus reload.
Dependencies
- A Discord bot application (required) — you supply the bot token; see above.
- JDA (bundled) — the Discord library is shaded into the jar; no separate install.
- MaintenancePlugin (optional) — detects a plugin literally named
MaintenancePluginexposingisMaintenanceEnabled(), or aplugins/MaintenancePlugin/state.ymlfile. Other maintenance plugins are not detected.
Support / Source
Source code: https://github.com/henriquescrrrr/carrageis-discordstatus


