v1.4 — Visual management GUI (chest-menu for admins and users)
New — /image gui
•
Chest-based management menu unified for everyone. Opens with
/image gui (alias
/imagen menu). No more traveling to each image to click-delete, and no more digging through the audit log to find "who placed what" — everything is one click away.
•
User quick actions — the top row has a
Create image button (green emerald) and a
Delete image button (red TNT) so regular players can create and delete without knowing chat commands. Create prompts for a URL + scale in chat; Delete puts the player in right-click-to-delete mode with an actionbar hint, cancellable by sneaking. Designed for Java and Bedrock — including Bedrock mobile, where everyone already has a sneak button on screen.
•
Role-aware layout — the top rows always show the viewer's own images; the bottom row of admin shortcuts (Browse all, Filter, Hidden, Banned, Orphan scan, Leaderboard, Export CSV) only appears to holders of
images.gui.admin. Regular users see decorative crystals instead. Titles differentiate scope: "Your Images" vs "Manage" so staff always know whether they're acting on their own content or the full server.
Moderation
•
Hide / Ban / Unhide / Unban — brand-new persistent states alongside delete. Hide un-renders the image without destroying the metadata (reversible). Ban is a harder moderation flag that records
admin + reason + timestamp and cannot be lifted by the creator. Both ride the existing save format — backward-compatible with v1.2/v1.3 saves.
•
Move (true relocate) — keeps the same database id, creator,
placedAt, and flags. Admin clicks Move → confirms → right-clicks the new destination block. No delete + recreate orphan audit trail.
•
Bulk actions — toggle bulk-select, click multiple images, then apply Bulk Delete / Ban / Hide with one confirmation. Cuts repetitive moderation work to one step.
•
Context-aware buttons — ban/hide/move never show up on your own images; admins see the full toolbox only on
others' images, keeping the menu uncluttered.
Discovery and housekeeping
•
Image finder — type a keyword in chat to filter by name or URL. Admin search covers everything; regular players search their own.
•
Orphan scan — finds images whose item-frames were destroyed but whose metadata is still in the database. Flags them with a red marker; one click bulk-deletes the leftovers.
•
Owner leaderboard — top players by image count and storage used. Helps catch hoarders on big servers.
•
CSV export — dump the full registry to
plugins/ImagesPlus/exports/images-<timestamp>.csv (17 columns including world, coords, source, URL, flags, sections, alias).
Personalization
•
Image alias — users can set a personal label on their own images (max 32 chars) so the GUI lists
Living Room instead of
IMG_20250412_091541.png. The original filename stays untouched in the lore. Admins can override for any image.
•
Safe teleport — the TP button computes a 2–3 block viewing position perpendicular to the image and snaps to a safe floor. No falling into lava, no clipping into walls.
•
Confirmation dialog on every destructive action — short clear title plus the full prompt on a paper item inside the menu, so destructive clicks require two deliberate steps.
Audit
• New
images.log action tags:
HIDE,
UNHIDE,
BAN,
UNBAN,
MOVE,
BULK_DELETE,
GUI_TP (optional, off by default). GUI-driven deletes add
via=GUI /
via=BULK so you can tell them apart from chat commands.
• New "History" button inside the detail menu surfaces the last 5 log entries for that image without leaving the GUI.
Plugin identity
•
Renamed from Images to ImagesPlus in
/pl and logs — avoids confusion with the original Custom Images plugin and matches the download name. On first boot the data folder
plugins/Images/ is automatically migrated to
plugins/ImagesPlus/ — no manual step, no data loss.
Localization
•
100% translatable. Every GUI title, button, lore line, click hint, message and audit line reads from
lang/en.yml /
lang/es.yml. Drop a
pt.yml /
fr.yml / any language code and run
/image reload. Hot-reload works for all GUI text — no server restart needed.
•
Sticky Spanish selection — once a player uses
/imagen their session stays in Spanish even if the GUI internally runs
/image delete on their behalf. Previously any internal English-aliased call flipped them back to English mid-session.
•
Fixed:
language: es in config now actually renders the GUI in Spanish regardless of which command alias the player used.
• 170+ new message keys for the GUI, including unified color palette across all buttons (green = positive, red = destructive, gold = highlight, aqua = tool).
Quality of life
• Tab-complete for
/images create now correctly filters to image extensions only — no more
WIKI.md or
images.db showing up as suggestions.
• Config auto-migration adds the new
gui: block without touching existing settings.
New permissions
Code (Text):
images.command.gui — Open the menu [true]
images.gui.admin — Admin rows + server-wide scope [op]
images.gui.teleport — Teleport to any image [op]
images.gui.move — Move an image to a new block [op]
images.gui.hide — Hide / unhide [op]
images.gui.ban — Ban / unban with reason [op]
images.gui.delete.any — Delete any image [op]
images.gui.delete.own — Delete your own images [true]
images.gui.delete.distance — Delete own from any distance [true]
images.gui.bulk — Bulk-select mode [op]
images.gui.search — Text search [op]
images.gui.export — CSV export [op]
images.gui.leaderboard — Owner leaderboard [op]
images.gui.orphan-scan — Orphan detection [op]
Backward compatibility
• Existing v1.2/v1.3 images deserialize cleanly with hidden/banned/alias defaulting to the intuitive values. No database migration required.
• If you have an existing
plugins/Images/ directory the plugin renames it to
plugins/ImagesPlus/ on first boot. All your images, config and lang customizations survive.
• Old chat commands (
/images create,
/images who, etc.) keep working unchanged; the GUI is strictly additive.
Thanks
Special thanks to every admin that pushed back on v1.3 to make the UX tighter — the unified "Your Images" view, the short confirm titles with wrapped prompts, the contextual button visibility, and the full-translation pass are all direct consequences of that feedback.