DataLens

DataLens

Real-time data inspector for Minecraft

47 downloads

๐Ÿ” DataLens

Real-time data inspector for Minecraft โ€” inspect, edit, compare and export any block, entity or item.

PaperMC CodeFactor


Overview

DataLens is a Paper plugin that gives server operators and developers a powerful lens into the internal data structures of Minecraft objects. Point at any block, entity or player, and instantly explore its full data tree โ€” PDC tags, attributes, potion effects, enchantments, block states and more โ€” through both a paginated chest GUI and chat commands.

Unlike simple NBT viewers, DataLens provides a complete inspect โ†’ edit โ†’ validate โ†’ diff โ†’ export pipeline with automatic rollback on failure, a built-in changelog, and a public API for third-party schema registration.

Supported platforms: Bukkit / Spigot / Paper 1.20.x โ€“ 1.21.x ยท Java 21+


Features

๐Ÿ”Ž Deep Inspection

  • Blocks, Entities, Items & Players โ€” inspect any object via raytrace targeting or by player name.
  • Full data tree extraction โ€” PDC keys, block states, entity attributes, potion effects, equipment, enchantments, lore, and more are captured into a hierarchical DataNode tree.
  • Version-adaptive โ€” pluggable adapter layer auto-detects the server version and loads the appropriate reader/writer.

โœ๏ธ Safe In-Place Editing

  • Set / Remove any primitive value by dot-notation path (e.g. pdc.myplugin:level).
  • Type validation & coercion โ€” raw string inputs are validated against the target node's DataType before committing.
  • Atomic rollback โ€” a deep-copy snapshot is taken before every write; if persistence fails the tree is restored automatically.

๐Ÿ“Š Diff Engine

  • Compare the live data tree against your working copy to see exactly what changed โ€” additions, removals and modifications are displayed with color-coded chat output.

๐Ÿ“ค Export

  • Dump the complete data tree as JSON or YAML directly to chat.

๐Ÿ–ฅ๏ธ Inspector GUI

  • 54-slot paginated inventory with navigation breadcrumbs.
  • Click into compound/list nodes to drill down; use Back to navigate up.
  • Color-coded type indicators, pagination controls, and one-click export.

๐Ÿ“ Changelog

  • Every SET and REMOVE operation is logged to plugins/DataLens/changelog.log with timestamps, actor, path, and old/new values.
  • Configurable โ€” can be disabled entirely.

๐Ÿ” Permission System

  • Granular permission nodes (datalens.inspect, datalens.edit, datalens.admin).

๐Ÿงฉ Public API

  • Third-party plugins can register schemas for their PDC namespaces to improve labelling and validation.
  • Programmatic access to InspectorService and SessionService via DataLensPlugin.getAPI().

โšก Performance

  • Per-player sessions backed by a Caffeine LRU cache with configurable TTL and capacity.
  • Read operations are thread-safe; writes enforce main-thread execution.

Commands

Command Description Permission
/inspect Inspect the block/entity you are looking at (raytrace) datalens.inspect
/inspect <player> Inspect a named online player directly datalens.inspect
/data set <path> <value> Edit a primitive value at the given path datalens.edit
/data remove <path> Delete the node at the given path datalens.edit
/data export [json|yaml] Export the inspected data tree to chat datalens.inspect
/data diff Show differences between live data and working copy datalens.inspect

Both commands include context-aware tab completion โ€” paths are autocompleted from the live data tree, and values suggest type-appropriate options.


Permissions

Node Description Default
datalens.inspect Inspect blocks, entities and items op
datalens.edit Edit inspected data values op
datalens.admin Full administrative access (inherits inspect + edit) op

Configuration

Configuration is stored in plugins/DataLens/config.yml:

debug: false

cache:
  session-ttl-seconds: 60     # Idle timeout for player sessions
  max-sessions: 100            # Maximum concurrent inspection sessions

inspect:
  max-ray-distance: 5.0        # Raytrace distance in blocks for /inspect

changelog:
  enabled: true                # Enable/disable edit logging
  max-entries: 10000           # Maximum changelog entries

๐Ÿ“š Documentation and support

All documentation, source code, and examples are available in the official repository:
๐Ÿ‘‰ https://github.com/Parallax-Development/DataLens