promotional bannermobile promotional banner

ProtectionCore

Works to protect areas on servers
Back to Files

ProtectorMod-1.5.5.jar

File nameProtectorMod-1.5.5.jar
Uploader
ChristemDcChristemDc
Uploaded
Mar 5, 2026
Downloads
44
Size
13.6 MB
Mod Loaders
Fabric
File ID
7712700
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Fabric

modImplementation "curse.maven:protectioncore-1413366:7712700"

Learn more aboutΒ Curse Maven

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
  • 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! πŸ›‘οΈβœ¨

This mod has no additional files