Espial - A grief prevention plugin supporting block lookups, rollbacks, restores, and more

This is a discussion topic for the Ore project, Espial. View the full project on Ore for downloads and more information.


Espial

Requires a SQL loader plugin. Tested with SqliteLoader and MySQLDriver. (MySQL/MariaDB is recommended)

Espial is a plugin for querying and fixing grief. It supports lookups, rollbacks, restores, and more.

Requirements

  • Java 21
  • SpongeAPI 12 or higher (Minecraft 1.21+)

Command Usage

  • /espial | /es
    • Permission: espial.command.base
    • Base command. If no subcommand is specified, defaults to an info screen (/espial info)
    • lookup | l
      • Permission: espial.command.lookup
      • Look up a block. Defaults to the block you are looking at.
      • Flags:
        • [–spread | -s] - Do not group outputs
        • Everything from query command flags (below).
    • near
      • Permission: espial.command.lookup
      • Look up within 5 blocks of you. Basically an alias for /es l -r 5
      • Flags:
        • Everything from query command flags (below).
    • rollback | rb
      • Permission: espial.command.rollback
      • Roll back a block or a range. Defaults to the block you are looking at
      • Flags:
        • Everything from query command flags (below).
    • restore | rs
      • Permission: espial.command.restore
      • Restore a block or a range. Defaults to the block you are looking at
      • Flags:
        • Everything from query command flags (below).
    • interactive | i
      • Permission: espial.command.interactive
      • Enter an interactive inspector mode where you can break or place blocks to query.
    • undo
      • Permission: espial.command.undo
      • Revert you previous action(s).
    • redo
      • Permission: espial.command.redo
      • Revert your previous undoals.
    • nearbysigns | signsnear | signs
      • Permission: espial.command.signs
      • Lookup nearby signs
      • Can also be used as a base command (/nearbysigns)
      • Flags:
        • [–range | -r <range>] - Lookup a cuboid range
    • isthisblockmine | isthismyblock | myblock
      • Permission: espial.command.myblock
      • Check if a block was placed by you
      • Can also be used as a base command (/isthisblockmine)
    • whoplacedthis
      • Permission: espial.command.whoplacedthis
      • Show the player who placed a block and nothing more.
      • Can also be used as a base command (/whoplacedthis)

Query command flags

Aliases Description
[–worldedit | -w] Use a WorldEdit range
[–range | -r <range>] Lookup a cuboid range
[–player | -p <player name>] Only look at actions from a specific player
[–block | -b <block id>] Only look at a specific block type

Issues

You are encouraged to report any issues to the issue tracker

A new version has been released for Espial, it is available for download here.


Plugin for logging and viewing block actions

Lots of additions, including:

  • Ability to rollback blocks
  • Undo and redo commands
  • Many more commands under /espial
    • /es near
    • /es interactive | i
    • /nearbysigns
    • /isthisblockmine

…and more!

A new version has been released for Espial, it is available for download here.


Espial Version 1.2

Changes:

  • Colour scheme changes
  • Internal refactors
  • API for other plugins to interact with the plugin
  • Hanging deaths are logged (like item frames)
    • Can be rolled back (sometimes)
  • Item frame contents are tracked when removed
    • No rollbacks on this yet
  • Hanging signs and wall signs will now be recognized as sign NBT-compatible
  • Modification actions will only be tracked on select blocks (such as signs, end portal frames, and more)

A new version has been released for Espial, it is available for download here.


A plugin for looking up blocks and fixing grief

Version 1.2.1

Changes

  • Plugin descriptions updated
  • New API methods
    • Event listeners
    • BLock owner method exposed in EspialService
  • Leash Knots are once again tracked
  • /whoplacedthis output updated
  • /help now uses a pagination list
  • Timestamp parsing improved

Full Changelog: Comparing 1.2...1.2.1 · MrSlimeDiamond/Espial · GitHub

A new version has been released for Espial, it is available for download here.


Version 1.2.2

Changes

  • Command system refactor: try any espial command followed by ? or help for help!
  • Multiversion by @MrSlimeDiamond in Multiversion by MrSlimeDiamond · Pull Request #4 · MrSlimeDiamond/Espial · GitHub
    • Supports multiple Sponge versions: API 12 and API 14
    • Therefore API 12 compatibility is fixed
    • @mosemister helped with this
  • Blocks placed on anything other than air (such as snow or grass) will now rollback correctly.
  • Get block owner will fallback on Sponge’s default if it can’t find one
  • EspialActor#isPlayer fixed when retrieving a record from the database
  • Ability to configure default range (-r) or time (-t), continues to default to -r 5 and -t 3d, but can now be changed in the config.

Full Changelog: Comparing 1.2.1...1.2.2 · MrSlimeDiamond/Espial · GitHub

A new version has been released for Espial, it is available for download here.


Version 1.2.3

The next release of Espial will contain major changes and might not come out for a bit

  • Cross out rolled back changes in grouped outputs
  • Tracking of block growth states
  • Removed non-living logging entirely
  • Water/lava is logged properly now

Full Changelog: Comparing 1.2.2...1.2.3 · MrSlimeDiamond/Espial · GitHub

A new version has been released for Espial, it is available for download here.


Fix block change events where the cause is from a command.

(before this, rollbacks would be added to the log as block changes)

and 1.2.3 changelogs are below because I removed it from Ore (:

The next release of Espial will contain major changes and might not come out for a bit

  • Cross out rolled back changes in grouped outputs
  • Tracking of block growth states
  • Removed non-living logging entirely
  • Water/lava is logged properly now

Full Changelog: Comparing 1.2.2...1.2.3 · MrSlimeDiamond/Espial · GitHub