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
- 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
A new version has been released for Espial, it is available for download here.
Espial v2.0-SNAPSHOT
Espial has drastically changed since the previous release, and this is just a snapshot release. Things could be unstable.
At this point in time, it is not backwards compatible with older versions of Espial.
Changes
- Entire plugin rewrite
- Added preview modes
- /es preview | p and use a transaction command as normal to preview it, and use /es p apply | a or /es p cancel | c to action on your preview
- Added wands
- More focus on asynchronous querying and application (this version is a lot faster)
- Added purge command
- Added configuration value to disable certain events
- Massively improved database structure (hence lack of backwards compatibility)
- Lossless support of block data
- Accidental feature: containers will retain storage contents when broken. TODO config value
- Major user interface changes
- Support for tracking entities other than living (like TNT). Can be disabled in config
- And more that I probably forgot and will add later when I inevitably edit this
Your homework when using this snapshot release
The table names were changed, so they shouldn’t conflict with the old ones. As a reminder, at this point in time your data will be held you can revert to an older version, but the logs won’t be visible.
The configuration path has changed to be in a directory, most likely under config/espial/espial.conf (as opposed to config/espial.conf where it was previously)