NotEvil
d6bb030ad7
feat(D-01/E): resistance & lock system rework (E1-E7)
E1: Initialize currentResistance in NBT at equip time from
ResistanceComponent — eliminates MAX-scan fallback bug
E2: BuiltInLockComponent for organic items (already committed)
E3: canStruggle refactor — new model:
- ARMS: always struggle-able (no lock gating)
- Non-ARMS: only if locked OR built-in lock
- Removed dead isItemLocked() from StruggleState + overrides
E4: canUnequip already handled by BuiltInLockComponent.blocksUnequip()
via ComponentHolder delegation
E5: Help/assist mechanic deferred (needs UI design)
E6: Removed lock resistance from ILockable (5 methods + NBT key deleted)
- GenericKnife: new knifeCutProgress NBT for cutting locks
- StruggleAccessory: accessoryStruggleResistance NBT replaces lock resistance
- PacketV2StruggleStart: uses config-based padlock resistance
- All lock/unlock packets cleaned of initializeLockResistance/clearLockResistance
E7: Fixed 3 pre-existing bugs:
- B2: DataDrivenItemRegistry.clear() synchronized on RELOAD_LOCK
- B3: V2TyingPlayerTask validates heldStack before equip (prevents duplication)
- B5: EntityKidnapperMerchant.remove() cleans playerToMerchant map (memory leak)
2026-04-15 03:23:49 +02:00
..
2026-04-15 01:55:16 +02:00
2026-04-12 01:25:55 +02:00
2026-04-15 00:16:50 +02:00
2026-04-15 01:55:16 +02:00
2026-04-15 01:55:16 +02:00
2026-04-15 01:55:16 +02:00
2026-04-15 02:52:27 +02:00
2026-04-15 01:55:16 +02:00
2026-04-15 02:10:25 +02:00
2026-04-15 03:23:49 +02:00
2026-04-15 01:55:16 +02:00
2026-04-15 03:23:49 +02:00
2026-04-12 01:25:55 +02:00
2026-04-15 03:23:49 +02:00
2026-04-15 00:16:50 +02:00
2026-04-15 03:23:49 +02:00
2026-04-15 00:16:50 +02:00
2026-04-15 01:55:16 +02:00
2026-04-15 03:23:49 +02:00
2026-04-15 03:23:49 +02:00
2026-04-15 01:55:16 +02:00
2026-04-15 03:23:49 +02:00
2026-04-15 00:26:07 +02:00