promotional bannermobile promotional banner

ProtectionCore

Works to protect areas on servers

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

Fabric

modImplementation "curse.maven:protectioncore-1413366:7712700"
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

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
  • 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 usage
      • MixinBucketItem.emptyContents() - Blocks fluid placement
      • UseBlockCallback - Blocks interactions
      • PlayerBlockBreakEvents.BEFORE - Blocks block breaking
  • Strict Player Verification
    • Added ServerPlayer type check in marking logic
    • Added FakePlayer detection check before marking
    • Ensures only real players can mark blocks

🐛 Bug Fixes

  • Fixed: Blocks placed with /setblock command 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 system
    • MixinBlockItem.java - Strict real player verification
    • MixinItemStack.java - Explicit FakePlayer blocking
    • MixinBucketItem.java - Explicit FakePlayer blocking
    • MixinLevelBlockModification.java - Simplified cleanup, removed auto-marking
    • ModEvents.java - Explicit event blocking, no logging
    • ProtectionCoreBlock.java - Drop fix for both halves
  • Dependencies:
    • SQLite JDBC: org.xerial:sqlite-jdbc:3.45.1.0 (bundled)

🎯 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! 🛡️✨