Описание
# PrismProtect — protect your modded Minecraft server
## Requires Architectury API
**PrismProtect is a server-side(and client for hightlighting) Architectury mod for Minecraft 1.20.1–1.20.4 that brings CoreProtect-like logging and rollback to modded servers — no plugins required, built for performance.**
---
## Features
- Logs block break/place/replace with full BlockEntity NBT support
- Tracks explosions (TNT, creepers, vanilla explosion pipeline)
**Note:** some mods with fully custom explosion logic may bypass vanilla hooks and not be logged
- Logs entity deaths with full NBT snapshots for accurate restoration
- Records container and inventory changes with menu open/close diff tracking
- Logs item drops from broken blocks and crafting outputs for item rollback
- Supports blocks/entities from **any mod** (namespaced IDs are stored as-is)
- Uses optimized SQLite storage with WAL journaling and thread-safe writes
- Includes inspect mode to view block history in-game
---
## Commands
```bash
/pp inspect
```
Toggle inspect mode and click blocks to view history.
```bash
/pp lookup [u:] [t:] [r:] [a:block|entity|container]
```
Search logged actions using filters (`a:block` by default).
```bash
/pp rollback [u:] [t:] [r:] [a:entity]
```
Rollback changes in the selected scope.
Without `a:entity`, rolls back block/container/item changes.
```bash
/pp highlight [off] [u:] [t:] [r:] [w:] [d:] [l:] [p:]
```
Highlights matched block changes with in-world colored outlines for visual investigation.
Use `off` to clear active highlights immediately.
Running `/pp highlight ...` again replaces the previous highlight set for that player.
```bash
/pp restore [u:] [t:] [r:]
```
Restore previously rolled-back block/container/item changes.
```bash
/pp purge t:
```
Delete old log data (requires OP level 4).
```bash
/pp status
```
Show database counters and runtime status.
---
## Time Format
Supports `s`, `m`, `h`, `d`, `w`
Examples: `30m`, `1h30m`, `2d`, `1w`
---
## Highlight Mode
Use `/pp highlight` to render outline markers for matched block changes in-world.
Colors indicate action type, and `/pp highlight off` clears active highlights immediately.
## Entity Rollback
Entity rollback is a separate scope: add `a:entity` to rollback commands.
PrismProtect respawns entities at original coordinates using full NBT snapshots captured at death.
---
## Item Rollback
PrismProtect logs:
- item drops from broken blocks
- crafting outputs taken from result slots
During `/pp rollback`, it restores affected blocks and tries to remove logged items from the original player inventory.
If items are missing there, it also checks nearby ground drops around the original position.
---
## Storage
PrismProtect uses bundled **SQLite** (no external DB required).
Database path: `config/prismprotect/prismprotect.db`
WAL journaling provides safe concurrent access under active server load.
---
## Version Support
| Minecraft | Loader | Status |
|-----------|--------|--------|
| 1.20.1–1.20.4 | Forge 47.2.0+ | ✅ Supported |
| 1.20.1–1.20.4 | Fabric Loader 0.14.25+ + Fabric API 0.92.2+1.20.1 | ✅ Supported |
| 1.20.5+ / 1.21.x | Other builds | ⚠️ Not working(Will be added soon) |
> Server-side and optional client side. Clients do **not** need PrismProtect installed to join.
```