feat(D-01/C): consumer migration — 85 files migrated to V2 helpers
Phase 1 (state): PlayerBindState, PlayerCaptorManager, PlayerEquipment, PlayerDataRetrieval, PlayerLifecycle, PlayerShockCollar, StruggleAccessory Phase 2 (client): AnimationTickHandler, NpcAnimationTickHandler, 5 render handlers, DamselModel, 3 client mixins, SelfBondageInputHandler, SlaveManagementScreen, ActionPanel, SlaveEntryWidget, ModKeybindings Phase 3 (entities): 28 entity/AI files migrated to CollarHelper, BindModeHelper, PoseTypeHelper, createStack() Phase 4 (network): PacketSlaveAction, PacketMasterEquip, PacketAssignCellToCollar, PacketNpcCommand, PacketFurnitureForcemount Phase 5 (events): RestraintTaskTickHandler, PetPlayRestrictionHandler, PlayerEnslavementHandler, ChatEventHandler, LaborAttackPunishmentHandler Phase 6 (commands): BondageSubCommand, CollarCommand, NPCCommand, KidnapSetCommand Phase 7 (compat): MCAKidnappedAdapter, MCA mixins Phase 8 (misc): GagTalkManager, PetRequestManager, HangingCagePiece, BondageItemBlockEntity, TrappedChestBlockEntity, DispenserBehaviors, BondageItemLoaderUtility, RestraintApplicator, StruggleSessionManager, MovementStyleResolver, CampLifecycleManager Some files retain dual V1/V2 checks (instanceof V1 || V2Helper) for coexistence — V1-only branches removed in Branch D.
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
package com.tiedup.remake.entities;
|
||||
|
||||
import com.tiedup.remake.items.base.ItemCollar;
|
||||
import com.tiedup.remake.util.teleport.Position;
|
||||
import com.tiedup.remake.v2.BodyRegionV2;
|
||||
import com.tiedup.remake.v2.bondage.CollarHelper;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -31,21 +29,7 @@ public class KidnapperCollarConfig {
|
||||
this.kidnapper = kidnapper;
|
||||
}
|
||||
|
||||
// COLLAR ITEM ACCESS
|
||||
|
||||
/**
|
||||
* Get the collar item if equipped.
|
||||
* @return ItemCollar or null if no collar or not an ItemCollar
|
||||
*/
|
||||
@Nullable
|
||||
public ItemCollar getCollarItem() {
|
||||
ItemStack collar = kidnapper.getEquipment(BodyRegionV2.NECK);
|
||||
if (collar.isEmpty()) return null;
|
||||
if (collar.getItem() instanceof ItemCollar itemCollar) {
|
||||
return itemCollar;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
// COLLAR STACK ACCESS
|
||||
|
||||
/**
|
||||
* Get the collar ItemStack.
|
||||
@@ -55,30 +39,29 @@ public class KidnapperCollarConfig {
|
||||
return kidnapper.getEquipment(BodyRegionV2.NECK);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the kidnapper has a valid collar.
|
||||
*/
|
||||
private boolean hasValidCollar() {
|
||||
return kidnapper.hasCollar() && CollarHelper.isCollar(getCollarStack());
|
||||
}
|
||||
|
||||
// KIDNAPPING MODE
|
||||
|
||||
/**
|
||||
* Check if kidnapping mode is enabled via collar.
|
||||
*/
|
||||
public boolean isKidnappingModeEnabled() {
|
||||
if (!kidnapper.hasCollar()) return false;
|
||||
|
||||
ItemCollar itemCollar = getCollarItem();
|
||||
if (itemCollar == null) return false;
|
||||
|
||||
return itemCollar.isKidnappingModeEnabled(getCollarStack());
|
||||
if (!hasValidCollar()) return false;
|
||||
return CollarHelper.isKidnappingModeEnabled(getCollarStack());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if kidnapping mode is fully ready (enabled + prison set).
|
||||
*/
|
||||
public boolean isKidnappingModeReady() {
|
||||
if (!kidnapper.hasCollar()) return false;
|
||||
|
||||
ItemCollar itemCollar = getCollarItem();
|
||||
if (itemCollar == null) return false;
|
||||
|
||||
return itemCollar.isKidnappingModeReady(getCollarStack());
|
||||
if (!hasValidCollar()) return false;
|
||||
return CollarHelper.isKidnappingModeReady(getCollarStack());
|
||||
}
|
||||
|
||||
// POSITION GETTERS
|
||||
@@ -88,20 +71,16 @@ public class KidnapperCollarConfig {
|
||||
*/
|
||||
@Nullable
|
||||
public java.util.UUID getCellId() {
|
||||
ItemCollar itemCollar = getCollarItem();
|
||||
if (itemCollar == null) return null;
|
||||
|
||||
return itemCollar.getCellId(getCollarStack());
|
||||
if (!hasValidCollar()) return null;
|
||||
return CollarHelper.getCellId(getCollarStack());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if collar has a cell assigned.
|
||||
*/
|
||||
public boolean hasCellAssigned() {
|
||||
ItemCollar itemCollar = getCollarItem();
|
||||
if (itemCollar == null) return false;
|
||||
|
||||
return itemCollar.hasCellAssigned(getCollarStack());
|
||||
if (!hasValidCollar()) return false;
|
||||
return CollarHelper.hasCellAssigned(getCollarStack());
|
||||
}
|
||||
|
||||
// BEHAVIOR FLAGS
|
||||
@@ -110,20 +89,16 @@ public class KidnapperCollarConfig {
|
||||
* Check if should warn masters after capturing slave.
|
||||
*/
|
||||
public boolean shouldWarnMasters() {
|
||||
ItemCollar itemCollar = getCollarItem();
|
||||
if (itemCollar == null) return false;
|
||||
|
||||
return itemCollar.shouldWarnMasters(getCollarStack());
|
||||
if (!hasValidCollar()) return false;
|
||||
return CollarHelper.shouldWarnMasters(getCollarStack());
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if should tie slave to pole in prison.
|
||||
*/
|
||||
public boolean shouldTieToPole() {
|
||||
ItemCollar itemCollar = getCollarItem();
|
||||
if (itemCollar == null) return false;
|
||||
|
||||
return itemCollar.shouldTieToPole(getCollarStack());
|
||||
if (!hasValidCollar()) return false;
|
||||
return CollarHelper.shouldTieToPole(getCollarStack());
|
||||
}
|
||||
|
||||
// BLACKLIST/WHITELIST
|
||||
@@ -139,19 +114,18 @@ public class KidnapperCollarConfig {
|
||||
* </ul>
|
||||
*/
|
||||
public boolean isValidKidnappingTarget(Player player) {
|
||||
ItemCollar itemCollar = getCollarItem();
|
||||
if (itemCollar == null) return true; // No collar config = everyone is valid
|
||||
if (!hasValidCollar()) return true; // No collar config = everyone is valid
|
||||
|
||||
ItemStack collarStack = getCollarStack();
|
||||
UUID playerUUID = player.getUUID();
|
||||
|
||||
// If whitelist exists and is not empty, player MUST be on it
|
||||
List<UUID> whitelist = itemCollar.getWhitelist(collarStack);
|
||||
List<UUID> whitelist = CollarHelper.getWhitelist(collarStack);
|
||||
if (!whitelist.isEmpty()) {
|
||||
return whitelist.contains(playerUUID);
|
||||
}
|
||||
|
||||
// Otherwise, check blacklist (blacklisted = not a valid target)
|
||||
return !itemCollar.isBlacklisted(collarStack, playerUUID);
|
||||
return !CollarHelper.isBlacklisted(collarStack, playerUUID);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user