Dan's Essentials
0
First released June 22, 2020 · Last updated October 11, 2026
Downloads from this site
90 total
4 latest (v2.6.1)
Provides miscellaneous commands.
Usage
Last reported in use 3 hours ago
86 server starts in the last 30 days
Server starts per day
Versions in use, by share of server starts
2.4.0
91% · 78 starts
3.0.0-SNAPSHOT-8-8-2026
6% · 5 starts
2.5.0
3% · 3 starts
Usage reported by trace — how it works. CI and test servers are excluded.
Verified before release
Version 2.6.1 was started on real servers running Minecraft 1.19.4, 1.21.11, 26.2 and 26.3 before it was published. The jar you download is the exact one that passed. How releases work
Versions
All releases on GitHubAutomated build of master at d91f4e774b5d84546d4dc502b07166e95d8e358c.
This is not a release. It is unreleased, unreviewed code that has not been through any release check, and a broken build can stop a server from starting. Do not run it on a server you care about without a backup.
Install it with Dan's Plugin Manager:
/dpm get dansessentials --experimentalReturn to published releases with /dpm get dansessentials --stable.
2.6.1
For a server running v2.6.0, this is a drop-in update. /de clearinv works exactly as before, but it now tells people what happened instead of clearing inventories silently. It needs no config, permission or data changes.
Changes
Commands
/de clearinv <player>now confirms success to whoever ran it ("Cleared <player>'s inventory.", in green). It also tells the target player "Your inventory has been cleared." (#185)- The "That player isn't online." error from
/de clearinvis now shown in red, matching other error messages. (#185)
Version
v2.6.0 → 2.6.1 — PATCH. Mechanical floor from comparing the two jars: PATCH.
Judgment: The only functional change is in the feedback from /de clearinv. The command now confirms success to the sender and tells the target their inventory was cleared, and its offline-target error is now red. Its arguments, permissions, config and stored data are unchanged, and no new capability is added. This fixes a command that used to give no feedback at all, so I kept the patch floor. The new message to the target is the only part that could count as new behaviour, and it is not enough to justify minor.
- no interface or storage difference observed between the jars
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
- save-compatibility gate run: data written by
v2.6.0was loaded by this release across two restarts with nothing lost (16 assertions passed).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
2.6.0
For a server running v2.5.0, this is a drop-in upgrade that adds support for Minecraft 26.3. It also changes what usage reporting sends. Each usage event now includes a random server ID, so the author can count servers instead of raw events. The first time the plugin starts with reporting on, it adds this ID as a server-id: line in plugins/trace/config.yml. The ID is a random UUID. It does not identify any person, account or IP address, and nothing about players is sent. If reporting is turned off by usage-reporting.enabled: false, by enabled: false in plugins/trace/config.yml, or by TRACE_USAGE_REPORTING=off or DO_NOT_TRACK=1, no ID is created, read, written or sent.
Changes
Compatibility
- Adds support for Minecraft 26.3 (#180).
Usage reporting
- Usage events now include a random per-server ID. It is stored once as
server-id:inplugins/trace/config.ymland shared by every plugin on the server that reports to trace. Your existing text in that file is kept as it is; one commentedserver-id:line is added at the end. To get a new ID, delete that line. If the file cannot be written, the ID is kept in memory for that run only (#179). - The startup message and the comments in
config.ymlnow mention the server ID (#179). - The usage-reporting details link in the config comments and startup message now points to https://danielstephenson.dev/usage-reporting (#181).
Version
v2.5.0 → 2.6.0 — MINOR. Mechanical floor from comparing the two jars: PATCH.
Judgment: The mechanical check only saw API additions to TraceClient. It cannot see the behaviour behind them: when usage reporting is enabled, the plugin now creates a random server ID, writes it as a new server-id line in plugins/trace/config.yml, and sends it with every usage event. That is new data written to disk and new data reported, and the release also adds support for Minecraft 26.3, so it is minor. It is not major because existing config keys, commands, permissions and opt-outs work exactly as before, and the ID is appended without changing anything else in the file.
- no interface or storage difference observed between the jars
<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>
- dansplugins.dansessentials.trace.TraceClient: added public java.lang.String installId();
- dansplugins.dansessentials.trace.TraceClient: added public static java.lang.String installIdFromFile(java.io.File);
- dansplugins.dansessentials.trace.TraceClient$Builder: added public dansplugins.dansessentials.trace.TraceClient$Builder installId(java.lang.String);
- dansplugins.dansessentials.trace.TraceClient$Builder: added public dansplugins.dansessentials.trace.TraceClient$Builder installIdFile(java.io.File);
</details>
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
- save-compatibility gate run: data written by
v2.5.0was loaded by this release across two restarts with nothing lost (16 assertions passed).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
2.5.0
For a server running v2.4.0, this release makes mutes survive restarts. It also fixes several command and warp-sign problems and adds the plugin version to every usage-reporting event. Config keys, permissions and stored data from v2.4.0 all work unchanged. The only new file is the muted-player list, which the plugin creates and manages itself.
Changes
Muting
- Muted players now stay muted across server restarts. The list is saved to
muted-players.txtin the plugin's data folder when the server shuts down and is loaded again at startup./de unmuteremoves a player from the saved list. If the file can't be read at startup, a warning is logged and the file is left untouched, so the mutes stored in it are not overwritten. (#172)
Commands
/de labelno longer throws an error when your main hand is empty. It now says you must be holding an item, and it gives a clear message for items that can't be renamed. (#168)/de gmwith an unknown mode now shows the usage message instead of silently doing nothing. The usage messages for/de gmand/de flyspeednow include the/deprefix. (#168)/de helpnow shows the double quotes that/de broadcastand/de labelneed, and says that mutes last until the player is unmuted. (#168, #172)
Warp signs
- The message shown when placing a warp sign without permission now names the real permission,
de.placeWarpSign. (#167) - Clicking a warp sign with invalid coordinates now tells the player the coordinates are not valid and logs a warning with the sign's location. Before, the error was written to the console and the player saw nothing. (#167)
Usage reporting
- Every usage-reporting event now carries the plugin version. Before, only the startup event did. (#171)
plugins/trace/config.ymlnow accepts an optionaltags:block, which is added to every event reported by plugins on the server. For example,ci: "true"on a test server keeps its events out of real-installation figures. The file is only created when it is missing, so an existing file won't show the commented example. Add the block by hand if you want it. Disabling usage reporting works exactly as before. (#170, #171)
Upgrade notes
- Players who are muted when you stop the server to install this version will be unmuted after the upgrade, because v2.4.0 does not save mutes. Mute them again with
/de muteonce the new version is running. From then on, mutes are kept across restarts.
Version
v2.4.0 → 2.5.0 — MINOR. Mechanical floor from comparing the two jars: PATCH.
Judgment: The muted-player list is now saved to a new file, muted-players.txt, and loaded again at startup (#172). The plugin did not write this data before, and the mechanical check only saw the new class, so this raises the bump to minor. Usage reporting also gains a new feature: optional server-wide tags read from plugins/trace/config.yml (#170, #171). Nothing here warrants major. No existing data format, config key or permission changes meaning, and the /de gm and /de label changes only reject input that previously failed or did nothing. The mechanical check flagged the TraceClient.builder signature change as INFO only, and that class is a vendored internal client, not API that other plugins use.
- no interface or storage difference observed between the jars
<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>
- public class added: dansplugins.dansessentials.services.MutedPlayersStorage
- dansplugins.dansessentials.trace.TraceClient: removed/changed public static dansplugins.dansessentials.trace.TraceClient$Builder builder(java.lang.String, java.lang.String);
- dansplugins.dansessentials.trace.TraceClient: added public static dansplugins.dansessentials.trace.TraceClient$Builder builder(java.lang.String, java.lang.String, java.lang.String);
- dansplugins.dansessentials.trace.TraceClient: added public static final java.lang.String VERSION;
- dansplugins.dansessentials.utils.Logger: added public void warn(java.lang.String);
</details>
Verification
Verified on a real Spigot server before publication; this release carries the exact jar that was verified.
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.19.4 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 1.21.11 (11 assertions passed).
- boot gate run: booted twice on a fresh Spigot server running Minecraft 26.2 (11 assertions passed).
- save-compatibility gate run: data written by
v2.4.0was loaded by this release across two restarts with nothing lost (16 assertions passed).
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
2.4.0
Servers on 2.3.0 can drop in this release without any migration. The headline change is opt-out usage reporting: on startup and on each /de command the plugin sends its name, version and the command name to the author's trace server, off the main thread, and logs on every startup whether reporting is on and why. A usage-reporting block is added to plugins/DansEssentials/config.yml (existing settings are kept) and a server-wide switch file plugins/trace/config.yml is created if it does not exist. The rest of the release is bug fixes to /de back, /de mute, /de unmute and /de fly.
Changes
Usage reporting
- Report a startup event and one event per
/decommand to the trace server, sent from a bounded daemon thread that never blocks a tick and drops silently if the server is unreachable (#152) - Add
usage-reporting.enabled,usage-reporting.endpointandusage-reporting.keytoconfig.yml, and write the block into an existingconfig.ymlthat predates it so the switch is on disk (#152, #155) - Honour the server-wide opt-out in
plugins/trace/config.ymland theTRACE_USAGE_REPORTING=off/DO_NOT_TRACK=1environment variables, and print the reporting status and how to turn it off on every startup (#155)
Commands
/de backno longer throwsIllegalArgumentExceptionwhen there is no stored location; it now tells the player there is nothing to return to. A player's join location is recorded as their initial back location and cleared on quit, and/de backis listed in/de help(#136)/de muteand/de unmutekey the mute on the resolved player's real name rather than the typed text, so muting by a partial name now actually silences the player and unmuting finds them again (#148)/de fly <player>names the correctde.fly.otherspermission in its error message and reports "That player isn't online." instead of crashing when the target is offline (#147)
Upgrade notes
- Usage reporting is on by default. To turn it off for this plugin, set
usage-reporting.enabled: falseinplugins/DansEssentials/config.yml. To turn it off for every trace-reporting plugin on the server, setenabled: falseinplugins/trace/config.yml(created on first start). The environment variablesTRACE_USAGE_REPORTING=offorDO_NOT_TRACK=1also disable it and take precedence over both files. - If you run a hardened or read-only
plugins/directory, note that the plugin will attempt to createplugins/trace/config.yml; a failure to do so is logged at FINE and reporting stays on.
Version
2.3.0 → 2.4.0 — MINOR. Mechanical floor from comparing the two jars: MINOR.
Judgment: Nothing in the diff breaks an existing 2.3.0 server: the config gains a new usage-reporting block (written in place, other keys preserved) and a new plugins/trace/config.yml is created, both additive; no schema, command argument, or API contract changes incompatibly. The plugin.yml permission rename de.placewarpsign -> de.placeWarpSign is a no-op because Bukkit lowercases permission names, and the /de back, mute and fly changes are bug fixes that narrow behaviour rather than alter it. Usage reporting is on by default and phones home, which operators should know about, but it is new opt-out behaviour rather than a breaking change, so the minor floor stands even though the pom is labelled 3.0.0-SNAPSHOT.
- minor: default config key added: usage-reporting.enabled
- minor: default config key added: usage-reporting.endpoint
- minor: default config key added: usage-reporting.key
<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>
- public class added: dansplugins.dansessentials.listeners.QuitListener
- public class added: dansplugins.dansessentials.trace.TraceClient
- public class added: dansplugins.dansessentials.trace.TraceClient$Builder
- dansplugins.dansessentials.services.ConfigService: added public boolean isUsageReportingEnabled();
- dansplugins.dansessentials.services.ConfigService: added public java.lang.String getUsageReportingEndpoint();
- dansplugins.dansessentials.services.ConfigService: added public java.lang.String getUsageReportingKey();
- dansplugins.dansessentials.services.ConfigService: added public void saveUsageReportingDefaultsIfMissing();
</details>
Verification
Booted twice on a real Spigot server before publication — boot gate run (10 assertions passed). This release carries the exact jar that was verified.
Install with Dan's Plugin Manager: /dpm get <plugin>. How stable releases are made: Release channels.
drafted by Claude on behalf of Daniel Stephenson
Snapshot release marking Dans-Essentials's move to an AI-first development approach.
Day-to-day feature work, grooming, review and maintenance now run through AI agents working directly against this repository, with the maintainers setting direction and approving what lands. The version bump marks that change in how the project is built — it is not a compatibility break. Behaviour, configuration and stored data are unchanged, and existing installations can upgrade in place.
This is a dated snapshot, not a finished release. It follows the precedent set by Medieval
Factions' 6.0.0-SNAPSHOT-7-25-2026: the AI-first line has not yet been verified in live operation,
and the snapshot designation stays until it has.
Version changes
pom.xml:2.3.0→3.0.0-SNAPSHOT-8-8-2026
Opened as https://github.com/Dans-Plugins/Dans-Essentials/pull/140.
Drafted by Claude on behalf of Daniel Stephenson.
What's Changed
- Moving away from the Singleton pattern. by @dmccoystephenson in https://github.com/Dans-Plugins/Dans-Essentials/pull/133
- Ponder Update, No More Vanish, /de gm 2 by @dmccoystephenson in https://github.com/Dans-Plugins/Dans-Essentials/pull/134
Full Changelog: https://github.com/Dans-Plugins/Dans-Essentials/compare/2.2...2.3.0
What's Changed
- Updated Ponder to v0.13 by @dmccoystephenson in https://github.com/Dans-Plugins/Dans-Essentials/pull/130
- Updated Ponder to v1.0 by @dmccoystephenson in https://github.com/Dans-Plugins/Dans-Essentials/pull/131
Full Changelog: https://github.com/Dans-Plugins/Dans-Essentials/compare/v2.1...2.2
Changes in Dan's Essentials v2.1
- Updated Ponder to v0.8
- Refactored event handling.
- Fixed a problem with warp signs.
- Created a local config service.
- Added the debugMode config option.
- Created a Logger class.
- Added some debug logging messages.
Changes in Dan's Essentials v2.0
- Renamed the plugin to Dan's Essentials.
- Removed any persistent aspects of the plugin.
- Integrated Ponder with the plugin.
- Rewrote all of the commands.
Changes in v1.5-beta
- major code refactoring to improve coupling and cohesion
- the broadcast command can now be used by the console
Changes in Medieval Essentials v1.4
- removed minutes from /seen command output
- integrated bStats
- added a server-wide alert for when new players join the server
- removed some unnecessary print statements
Changes in Medieval Essentials v1.3
- added the /label command
- added the /back command
- added the /logins command
- added the /invsee command
- added the /clearinv command
Changes in Medieval Essentials v1.2
- added /gm 0 command as a shortcut for /gamemode survival
- added /gm 1 command as a shortcut for /gamemode creative
Changes in Medieval Essentials v1.1
- added /getpos command
- added /flyspeed (number) command.
Changes in Medieval Essentials v0.9
- Added /vanish command with permission.
- Added /mute command with permission.
- Added /nick command with permission.
Medieval Essentials v0.6 allows you to:
- view a list of helpful commands with /medievalessentials help
- toggle your flight with /fly
- toggle the flight of another player with /fly (player-name)
- broadcast a message with /broadcast
- view the message of the day with /motd (message)
- set the message of the day with /setmotd (message)
- see how long its been since a play has logged in with /seen (player-name)
In addition to the commands above, the plugin also
- presents the message of the day to players when they log in
- keeps an activity record of each player
- supports saving/loading for all aspects of the plugin
Related plugins
Tracks the activity of players.
Identifies accounts that have used the same IP address.
Lets operators download the community's plugins in-game or from the server console.
Allows players to use signs to select a custom spawn in their world.
Something wrong, or something missing?
Bugs go to the plugin's issue tracker, where they can actually be fixed and tracked. Ideas for new behaviour go to the Dev Portal, where the community can upvote them.
