ProtectorMod-1.5.5.jar
Curse Maven Snippet
What's new
Version 1.5.5 - Production Ready Update
β New Features
- SQLite Persistence System
- Marked blocks are now saved to disk using SQLite database
- Database location:
world_folder/protector_marked_blocks.db - Marks survive server restarts
- In-memory cache for performance + automatic disk synchronization
- Smart FakePlayer Detection
- Automatic identification of machine-driven actions vs real players
- Multi-point verification across all interaction handlers
- Core Drop Fix
- Protection cores now correctly drop 1 item when broken from either half (top/bottom)
- No duplication issues
π‘οΈ Improvements
- Production Server Optimization
- Removed all debug logging from hot paths
- Zero console spam β safe for servers with 100+ players
- Only essential one-time startup messages are logged (database initialization)
- Significantly reduced overhead from protection checks
- Stricter Auto-marking Prevention
- Blocks placed with commands (
/setblock,/fill) are NOT auto-marked - Blocks placed by FakePlayers (Create machines, etc.) are NOT marked
- Only blocks placed manually by trusted members are marked
- Removed "pending restoration" system that caused unwanted auto-marking
- Blocks placed with commands (
- Bypass Radius Optimization
- Search radius reduced from 5 blocks β 1 block
- Prevents unmarked machines from gaining bypass through proximity
- Only allows bypass if exact or adjacent block is marked
- Better precision for multi-block machines
- Explicit FakePlayer Blocking
- FakePlayers without bypass are now immediately blocked in all handlers
- Multi-point verification:
MixinItemStack.useOn()- Blocks item/tool usageMixinBucketItem.emptyContents()- Blocks fluid placementUseBlockCallback- Blocks interactionsPlayerBlockBreakEvents.BEFORE- Blocks block breaking
- Strict Player Verification
- Added
ServerPlayertype check in marking logic - Added FakePlayer detection check before marking
- Ensures only real players can mark blocks
- Added
π Bug Fixes
- Fixed: Blocks placed with
/setblockcommand no longer marked incorrectly - Fixed: Unmarked drills now properly blocked in protected zones (consistent first-attempt blocking)
- Fixed: Core item duplication when breaking from different halves
- Fixed: Inconsistent bypass behavior for nearby machines
- Fixed: Machines could sometimes work on 3rd attempt despite being unmarked
- Fixed: Console log spam flooding server output on high-population servers
π§ Technical Changes
- New Files:
ProtectedBlockDatabase.java- SQLite persistence layer
- Modified Files:
ProtectedBlockMarker.java- Zero-log cache + bypass systemMixinBlockItem.java- Strict real player verificationMixinItemStack.java- Explicit FakePlayer blockingMixinBucketItem.java- Explicit FakePlayer blockingMixinLevelBlockModification.java- Simplified cleanup, removed auto-markingModEvents.java- Explicit event blocking, no loggingProtectionCoreBlock.java- Drop fix for both halves
- Dependencies:
- SQLite JDBC:
org.xerial:sqlite-jdbc:3.45.1.0(bundled)
- SQLite JDBC:
π― Expected Behavior
Dispensers and Redstone Machines
- β Marked dispenser β Works in protected zone
- β Unmarked dispenser β Doesn't work in protected zone
Create Machines
- β Marked drill β Works in protected zone
- β Unmarked drill β Blocked in protected zone
- β Multi-block machines β Work if any adjacent block is marked
Block Marking
- β Real player + trusted member + manual placement β Block marked
- β Command
/setblockβ NOT marked - β FakePlayer/Create β NOT marked
- β Outside protected zone β NOT marked
β οΈ Migration Notes
- Existing worlds are fully compatible
- Previously marked blocks may need to be re-marked if they weren't saved in SQLite database
- New database file will be automatically created at
world_folder/protector_marked_blocks.db - It's recommended to backup your world before updating
Production-ready protection with smart machine support! π‘οΈβ¨
This mod has no additional files

