
Creative Logger
Logs staff activity creative item spawning, commands, gamemode changes, punishments, and more to Discord webhooks. Per-category toggles. No embeds. In-game setup.
- Загрузки
- 234
- Подписчики
- 1
- Обновлён
- 29 июля 2026 г.
- Лицензия
- All-Rights-Reserved
Опубликован 25 мая 2026 г.
Creative Logger
See what your staff actually do — in Discord. Creative-menu grabs, commands, punishments, gamemode changes and more, each with its own channel and its own on/off switch. Set it up in-game, no restart needed.
🎁 BKHorn — Diamond Sword ×1 [Sharpness 5]
🎮 BKHorn — Survival → Creative
🔨 BKHorn — /ban Steve griefing
👁 BKHorn — Chest [world 120,64,-88]: took 12× Diamond
⌨ BKHorn (Discord) ran: /op Steve
Quick start
- Drop the JAR in
plugins/and start the server. - Run
/creativelog setup, click a category, paste a Discord webhook URL. - Done. Creative logging is on by default; everything else you switch on when you want it.
What it can log
- Creative menu — items taken, net-new only, so rearranging your inventory logs nothing
- Commands —
/give,/opand/deop, punishments (/ban,/kick,/mute,/warn, …), whitelist changes, plus anything you add to the watched-command list - Players — joins and leaves, gamemode changes, chat
- Console — mirrors the live console to Discord, with a separate audit trail of every console command whatever its origin: the Discord bridge, the real console, or RCON
- One specific player — log everything someone does, or just the parts you choose. Container visits are reported as what was taken and put back, not merely that a chest was opened
- Whatever you like — custom loggers with your own trigger, message and channel
Good to know
- Your wording — every line is a template you can rewrite, or turn into a full Discord embed
- Nothing is lost — every event is also written to a local log file, and Discord sends go through
a retry queue that handles rate limits.
/creativelog statuswhen you want to check - Webhooks are enough — a Discord bot is optional, and off unless you turn it on
- Updates keep your settings — new options are merged into your config, your values untouched
- Exempt players, per category, for anyone you don't want logged
- Proxy support, for hosts where discord.com is blocked
- Addons — other plugins can add their own placeholders, send their own lines, or rewrite and cancel yours: API docs and a buildable example
Commands
| Command | What it does |
|---|---|
/creativelog setup |
The in-game menu — categories, webhooks, watched and exempt players |
/creativelog status |
Delivery diagnostics, safe to paste when asking for help |
/creativelog reload |
Re-read the config files |
All need creativelog.admin (OP by default). To hand the menu to specific people instead of every
OP, list their names in admins.yml — once it has a name in it, nobody else can even see the command.
Requirements
- Paper or Purpur, Java 21 or newer
- Two JARs, pick one:
CreativeLogger-legacy-X.Y.Z.jarfor Minecraft 1.21.x, orCreativeLogger-X.Y.Z.jarfor 26.1+
Privacy
Logging sends player data — usernames, commands, creative-menu items, gamemode changes, and, if you enable those categories, join/leave events, chat messages and console output — to the Discord webhooks or channels you configure, and nowhere else. If you log your players, tell them.
- bStats: anonymous server and config statistics via
bStats — never player data. Opt out in
plugins/bStats/config.yml. - Update check: the plugin asks the Modrinth API whether a newer version exists. Turn it off with
update-check: false. - Console control: off by default. If you enable it, Discord users you allowlist can run server console commands from a channel you choose, using a bot token you provide.
Ченджлог
1.3.1+mc26Релиз26.1.1, 26.1.2, 26.2 · 29 июля 2026 г.
Critical fix — bot presence could take a server down
If you run 1.3.0 with bot.presence.enabled: true, please update. Not using bot presence? You are unaffected, and nothing else in the plugin changed.
The gateway connection that makes the bot appear online leaked an HTTP client every time it reconnected, and nothing stopped several connections existing at once — so one dropped connection could snowball into more. On the server that reported this, that reached ~77,000 Discord connections in 12 hours and 5,014 leaked threads, until the JVM could no longer create a thread: the server's main thread died while the process stayed up with its ports open, so it still answered pings and looked perfectly healthy, but nobody could join and even stop no longer worked. Discord separately reset that bot's token for connecting too often — which 1.3.0 then reported as "your token is invalid", sending the admin to look in the wrong place.
What changed:
- One HTTP client, reused and properly shut down. Reconnecting now costs nothing.
- One connection attempt at a time. A superseded connection is closed instead of left running.
- Real backoff — 15 seconds doubling up to 15 minutes, and only cleared once a connection has been healthy for 10 minutes, so a flapping connection backs off like any other failure.
- Presence switches itself off instead of retrying forever: after 10 failures in a row, or more than 20 attempts in an hour, it stops with one clear console line telling you logging is unaffected and that
/creativelog reloadwill try again. It is only the online indicator — it must never cost you a server. - Close codes are read properly. A rejected token stops immediately, and the message now allows for a token Discord has reset rather than one you mistyped. Rate limiting waits it out. A connection that stops answering heartbeats is recognised as dead instead of sitting there looking online.
/creativelog statusand the setup menu's Discord Bot item now show what presence is actually doing —connected,reconnecting in 60s, orstoppedand why — instead of only whether the option is ticked.
Can't update right away? Set bot.presence.enabled: false and restart. Webhook logging and bot-channel sending are unaffected; presence is purely the online indicator.
If Discord reset your bot token, generate a new one in the Discord developer portal and paste it in — no plugin version can restore the old one.
Notes
No config changes: updating is just swapping the JAR, and your existing config.yml is untouched.
Verified on Paper 1.21.11, 26.1.2 and 26.2 — full test suite green, including a new suite that drives a local stand-in gateway to prove the reconnect behaviour, and a 71-minute soak confirming presence stops itself with no thread growth.
1.3.1+mc1.21Релиз1.21.9, 1.21.10, 1.21.11 · 29 июля 2026 г.
Critical fix — bot presence could take a server down
If you run 1.3.0 with bot.presence.enabled: true, please update. Not using bot presence? You are unaffected, and nothing else in the plugin changed.
The gateway connection that makes the bot appear online leaked an HTTP client every time it reconnected, and nothing stopped several connections existing at once — so one dropped connection could snowball into more. On the server that reported this, that reached ~77,000 Discord connections in 12 hours and 5,014 leaked threads, until the JVM could no longer create a thread: the server's main thread died while the process stayed up with its ports open, so it still answered pings and looked perfectly healthy, but nobody could join and even stop no longer worked. Discord separately reset that bot's token for connecting too often — which 1.3.0 then reported as "your token is invalid", sending the admin to look in the wrong place.
Notes
No config changes: updating is just swapping the JAR, and your existing config.yml is untouched.
Verified on Paper 1.21.11, 26.1.2 and 26.2 — full test suite green, including a new suite that drives a local stand-in gateway to prove the reconnect behaviour, and a 71-minute soak confirming presence stops itself with no thread growth.
1.3.0+mc26Релиз26.1.1, 26.1.2, 26.2 · 28 июля 2026 г.
What's new
- Customize every message. Rewrite any log line in config.yml (
format:), or turn a category into a full Discord embed — title, description, colour, inline fields, thumbnail, footer, timestamp — all with the same placeholders. Plain text stays the default. - Watched players (
watch.yml). Log everything a specific player does, or just the aspects you pick (commands, chat, containers, creative, gamemode, and more), independently of the category toggles. Container visits are summarised as exactly what was taken and put back. - Console-audit category. A quiet "who ran what" trail of every console command, whatever its origin — the Discord bridge, the real console, or RCON.
- Local log file. Every event is also written to
plugins/CreativeLogger/logs/, so a Discord or network outage never loses your records. - Chest-menu setup.
/creativelog setupnow opens an inventory menu, with a Discord Bot item, a Message Format reference, and a Health/status view./creativelog setup chatkeeps the old text panel. - The bot can show as online. Optional
bot.presence— a cosmetic gateway connection with a status you choose. - Addon API. Other plugins can register their own
{placeholders}for your format lines, emit their own log lines, or rewrite/redirect/cancel anything logged. Docs and a buildable example: https://github.com/BKHornYT/creativelogger-addon-example - Config warnings go to the right people. The join-time "needs attention" notices now target whoever is listed in
admins.yml(or all OPs when it's empty), and/creativelogis hidden entirely from non-admins.
Bug fixes
- RCON commands (from management panels) were invisible to every category — now logged.
- Console bridge: transient network blips are no longer reported as configuration errors — proper backoff and accurate messages — and credentials are redacted before any console line is mirrored to Discord.
- A version-only rebuild could ship a stale version string in plugin.yml — fixed.
Notes
- Upgrading is automatic: your config.yml gains the new options with safe defaults, every setting you had is kept, and your previous file is saved as
config.yml.bak. - Two JARs —
CreativeLogger-legacy-1.3.0.jarfor Minecraft 1.21.x,CreativeLogger-1.3.0.jarfor 26.1+.
1.3.0+mc1.21Релиз1.21.9, 1.21.10, 1.21.11 · 28 июля 2026 г.
What's new
- Customize every message. Rewrite any log line in config.yml (
format:), or turn a category into a full Discord embed — title, description, colour, inline fields, thumbnail, footer, timestamp — all with the same placeholders. Plain text stays the default. - Watched players (
watch.yml). Log everything a specific player does, or just the aspects you pick (commands, chat, containers, creative, gamemode, and more), independently of the category toggles. Container visits are summarised as exactly what was taken and put back. - Console-audit category. A quiet "who ran what" trail of every console command, whatever its origin — the Discord bridge, the real console, or RCON.
- Local log file. Every event is also written to
plugins/CreativeLogger/logs/, so a Discord or network outage never loses your records. - Chest-menu setup.
/creativelog setupnow opens an inventory menu, with a Discord Bot item, a Message Format reference, and a Health/status view./creativelog setup chatkeeps the old text panel. - The bot can show as online. Optional
bot.presence— a cosmetic gateway connection with a status you choose. - Addon API. Other plugins can register their own
{placeholders}for your format lines, emit their own log lines, or rewrite/redirect/cancel anything logged. Docs and a buildable example: https://github.com/BKHornYT/creativelogger-addon-example - Config warnings go to the right people. The join-time "needs attention" notices now target whoever is listed in
admins.yml(or all OPs when it's empty), and/creativelogis hidden entirely from non-admins.
Bug fixes
- RCON commands (from management panels) were invisible to every category — now logged.
- Console bridge: transient network blips are no longer reported as configuration errors — proper backoff and accurate messages — and credentials are redacted before any console line is mirrored to Discord.
- A version-only rebuild could ship a stale version string in plugin.yml — fixed.
Notes
- Upgrading is automatic: your config.yml gains the new options with safe defaults, every setting you had is kept, and your previous file is saved as
config.yml.bak. - Two JARs —
CreativeLogger-legacy-1.3.0.jarfor Minecraft 1.21.x,CreativeLogger-1.3.0.jarfor 26.1+.
1.2.2+mc26Релиз26.1.1, 26.1.2, 26.2 · 4 июля 2026 г.
What's new
- Updates can no longer mess with your setup — config.yml now upgrades itself: when a new plugin version adds options, they are added to your existing file with safe defaults and their documentation comments. Everything you configured is kept, and your previous file is saved as
config.yml.bak. - The Discord bot is now strictly opt-in — new
bot.enabledswitch in config.yml, off by default. Webhooks are the normal way to log and need no bot. Channel-ID destinations only send after you setbot.enabled: trueand abot.token.
Notes
- Used the bot on 1.2.1? The config upgrade adds
bot.enabled: falsefor you — flip it totrueand everything works as before. Everyone else doesn't need to do anything. /creativelog status, the setup panel and the OP join warning now say clearly when a channel ID is set while the bot is off.
1.2.2+mc1.21Релиз1.21.9, 1.21.10, 1.21.11 · 4 июля 2026 г.
What's new
- Updates can no longer mess with your setup — config.yml now upgrades itself: when a new plugin version adds options, they are added to your existing file with safe defaults and their documentation comments. Everything you configured is kept, and your previous file is saved as
config.yml.bak. - The Discord bot is now strictly opt-in — new
bot.enabledswitch in config.yml, off by default. Webhooks are the normal way to log and need no bot. Channel-ID destinations only send after you setbot.enabled: trueand abot.token.
Notes
- Used the bot on 1.2.1? The config upgrade adds
bot.enabled: falsefor you — flip it totrueand everything works as before. Everyone else doesn't need to do anything. /creativelog status, the setup panel and the OP join warning now say clearly when a channel ID is set while the bot is off.
1.2.1+mc26Релиз26.1.1, 26.1.2, 26.2 · 3 июля 2026 г.
What's new
- Use your own Discord bot instead of webhooks — set
bot.tokenin config.yml, then put a Discord channel ID anywhere a webhook URL goes (built-in categories, custom loggers, the console mirror). Webhooks keep working; mix both freely. - Update notice — OPs are told on join when a new version is out (checked every 6 hours via the Modrinth API;
update-check: falseto turn off). - OP welcome — a one-line greeting on join with the plugin version and a clickable
/creativelog setup(welcome-message: falseto turn off). - bStats — anonymous usage statistics (opt out globally in
plugins/bStats/config.yml).
Notes
- One bot can serve everything: the console-control
bot-tokennow falls back to the globalbot.token, and pointing theconsolecategory at a channel ID sends the console mirror through the bot too. - The setup panel accepts channel IDs and shows
[Bot ✓];/creativelog status, the OP join warning and[Test]all clearly flag a channel ID that's missing a bot token. - Bot sends use the same retry queue, rate limiting, 429 handling, proxy, and timeouts as webhooks.
1.2.1+mc1.21Релиз1.21.9, 1.21.10, 1.21.11 · 3 июля 2026 г.
What's new
- Use your own Discord bot instead of webhooks — set
bot.tokenin config.yml, then put a Discord channel ID anywhere a webhook URL goes (built-in categories, custom loggers, the console mirror). Webhooks keep working; mix both freely. - Update notice — OPs are told on join when a new version is out (checked every 6 hours via the Modrinth API;
update-check: falseto turn off). - OP welcome — a one-line greeting on join with the plugin version and a clickable
/creativelog setup(welcome-message: falseto turn off). - bStats — anonymous usage statistics (opt out globally in
plugins/bStats/config.yml).
Notes
- One bot can serve everything: the console-control
bot-tokennow falls back to the globalbot.token, and pointing theconsolecategory at a channel ID sends the console mirror through the bot too. - The setup panel accepts channel IDs and shows
[Bot ✓];/creativelog status, the OP join warning and[Test]all clearly flag a channel ID that's missing a bot token. - Bot sends use the same retry queue, rate limiting, 429 handling, proxy, and timeouts as webhooks.
Комментарии
Загружаем…