Skip to main content
Dan's Plugins Community
HomeNewsGuidesLeaderboardAboutRoad MapCommissionsDev PortalAccount
All plugins
Bookshelves You Can Use icon

Bookshelves You Can Use

0

Latest: v0.2.0
17 downloads on GitHub

First released August 8, 2026 · Last updated October 13, 2026

Downloads from this site

27 total

9 latest (v0.2.0)

Turns bookshelves into usable storage: right-click one to open a small inventory.

survival
utility
DownloadUser guideSource

Verified before release

Version 0.2.0 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 GitHub
Development build
Pre-release
October 13, 2026· 2 downloads

Automated build of main at 1f5b124d8079b710e1f23e4446353ed9042df04b.

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 bookshelvesyoucanuse --experimental

Return to published releases with /dpm get bookshelvesyoucanuse --stable.

BookshelvesYouCanUse-0.2.1-SNAPSHOT.jar (533.7 KB)

0.2.0

For a server running v0.1.0, this is a drop-in upgrade. Bookshelves work the same way, and the release adds declared support for Minecraft 26.3. The change you can see is in usage reporting. When reporting is on, the plugin creates a random server ID once, stores it as a server-id line in plugins/trace/config.yml and sends it with each event. This lets plugin usage be counted per server rather than per event. The ID is a random UUID and identifies no person, account or IP address. If reporting is turned off (in this plugin's config.yml, in plugins/trace/config.yml, or with the DO_NOT_TRACK / TRACE_USAGE_REPORTING environment variables), no ID is created or written.

Changes

Compatibility

  • Minecraft 26.3 is now supported, and the supported versions are declared as 1.19.4, 1.21.11, 26.2 and 26.3 (#39, #31).

Usage reporting

  • Each usage event now carries a random per-server ID, stored as server-id in plugins/trace/config.yml. If the plugin can't write it there, it uses a temporary ID for that run only. Delete the line to get a new ID (#37).
  • The startup message and the comments in config.yml now mention the server ID (#38).
  • Each event, including command events, now carries the plugin version, not only the startup event (#33).
  • plugins/trace/config.yml can now hold a tags: block that is added to every event from plugins on the server. For example, ci: "true" on a test server keeps its events out of real-installation figures. Invalid entries are skipped and never cause reports to be rejected (#32).
  • The plugins/trace/config.yml file created on first start now includes a commented-out example of the tags: block (#32).

Version

v0.1.0 → 0.2.0 — MINOR. Mechanical floor from comparing the two jars: PATCH. Judgment: The jar comparison only saw changes to the vendored TraceClient class. This release also writes new data and changes what gets sent: on first start, an enabled client appends a random server-id line to plugins/trace/config.yml, and every usage event now carries that ID as an install tag, plus the plugin version and any server-wide tags. Nothing that already works breaks: no command, permission or plugin config key changes meaning, and existing switch files are only appended to. New behaviour plus new data written on disk calls for minor, not major.

  • no interface or storage difference observed between the jars

<details><summary>Java API changes (informational — nothing depends on this plugin)</summary>

  • dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient: removed/changed public static dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient$Builder builder(java.lang.String, java.lang.String);
  • dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient: added public java.lang.String installId();
  • dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient: added public static dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient$Builder builder(java.lang.String, java.lang.String, java.lang.String);
  • dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient: added public static final java.lang.String VERSION;
  • dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient$Builder: added public dmccoystephenson.bookshelvesyoucanuse.trace.TraceClient$Builder installId(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).
  • boot gate run: booted twice on a fresh Spigot server running Minecraft 26.3 (11 assertions passed).
  • save-compatibility gate run: data written by v0.1.0 was 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

0.1.0

Bookshelves You Can Use turns ordinary bookshelf blocks into storage: a player right-clicks a bookshelf and gets an inventory to keep items in. It is aimed at survival and roleplay servers on Spigot/Paper 1.13 or newer that want a light, no-setup way to make bookshelves useful without adding new blocks or items.

What it adds

  • /bookshelvesyoucanuse and its alias /bycu — with no arguments, prints the plugin's default output; /bycu help lists the available commands. Neither command declares a permission node in plugin.yml, so any player can run them.
  • bycu.help — permission for the help subcommand; defaults to true for everyone.
  • Right-click on a bookshelf opens its inventory (no command or permission involved). Interactions are rate-limited by a short cooldown.
  • usage-reporting.enabled (default true) — on startup and on each command use, the plugin sends its name, version and the command name to the author's trace server. Nothing about players or the server is sent; it runs off the main thread and is dropped silently if unreachable. Set to false to opt out for this plugin.
  • usage-reporting.endpoint and usage-reporting.key — where reports go and the (non-secret) key that attributes them to this plugin. An empty key disables reporting regardless of the enabled switch.
  • Server-wide opt-out: enabled: false in plugins/trace/config.yml (created on first start), or the environment variables TRACE_USAGE_REPORTING=off / DO_NOT_TRACK=1, turn reporting off for every plugin that uses trace. The plugin logs one line on every startup saying whether reporting is on, and why not if it is off.
  • version and debugMode are added to config.yml by the plugin itself on first start; debugMode toggles debug output.

What it writes

  • plugins/BookshelvesYouCanUse/config.yml — created from the bundled defaults on first start; on later starts, missing keys (including the usage-reporting block) are filled in and the file is otherwise left alone.
  • plugins/trace/config.yml — the server-wide usage-reporting switch, created if missing and never switched back on by the plugin.
  • Bookshelf contents are held in memory only (TemporaryData / BookshelfInventory); the source shows no save file or database, so items stored in bookshelves do not survive a restart. Treat them as temporary storage.

Requirements

  • Spigot/Paper with api-version: 1.13 or newer.
  • No plugin dependencies are declared in plugin.yml; the Ponder framework the plugin is built on is not listed as a separate plugin.
  • Outbound HTTPS to https://trace.danielstephenson.dev if usage reporting is left enabled; not needed otherwise.

Since the last prerelease

  • Bookshelves now open on right-click only, so left-clicking (breaking) a shelf no longer opens it; a wrong config path was also corrected (#13).
  • Usage reporting added: a small event on startup and per command, sent off the main thread, with the usage-reporting.enabled opt-out (#21).
  • Usage reporting is disclosed on every startup with a console notice, and can be turned off server-wide via plugins/trace/config.yml or the TRACE_USAGE_REPORTING / DO_NOT_TRACK environment variables (#23).
  • /bycu help now lists /bycu itself in its output (#19).
  • Command output no longer shows leftover "ExamplePonderPlugin" template text (#4).

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 (10 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

Snapshot release marking Bookshelves-You-Can-Use'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: 0.0.1 → 0.1.0-SNAPSHOT-8-8-2026

Opened as https://github.com/Dans-Plugins/Bookshelves-You-Can-Use/pull/11.


Drafted by Claude on behalf of Daniel Stephenson.

Easy Links

Lets players view relevant links with simple commands.

FoodSpoilage

Makes food items turn into rotten flesh after a certain period of time.

KDR Tracker

Keeps track of players' kill/death ratios.

NoMoreCreepers

Prevents creepers from spawning.

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.

v0.15.2
Source CodeReport a BugKnowledge BaseFree Server Hosting

More by Daniel Stephenson → danielstephenson.dev · Play his games in your browser