File Details
ProtectorMod-1.5.5.jar
- R
- Mar 5, 2026
- 13.58 MB
- 34
- 1.20.1
- Fabric
File Name
ProtectorMod-1.5.5.jar
Supported Versions
- 1.20.1
Curse Maven Snippet
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! 🛡️✨

