Search in sources :

Example 1 with ServerCitizenInteraction

use of com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction in project minecolonies by ldtteam.

the class CitizenDataView method deserialize.

@Override
public void deserialize(@NotNull final PacketBuffer buf) {
    name = buf.readUtf(32767);
    female = buf.readBoolean();
    entityId = buf.readInt();
    paused = buf.readBoolean();
    isChild = buf.readBoolean();
    homeBuilding = buf.readBoolean() ? buf.readBlockPos() : null;
    workBuilding = buf.readBoolean() ? buf.readBlockPos() : null;
    // Attributes
    health = buf.readFloat();
    maxHealth = buf.readFloat();
    saturation = buf.readDouble();
    happiness = buf.readDouble();
    citizenSkillHandler.read(buf.readNbt());
    job = buf.readUtf(32767);
    colonyId = buf.readInt();
    final CompoundNBT compound = buf.readNbt();
    inventory = new InventoryCitizen(this.name, true);
    final ListNBT ListNBT = compound.getList("inventory", 10);
    this.inventory.read(ListNBT);
    this.inventory.setHeldItem(Hand.MAIN_HAND, compound.getInt(TAG_HELD_ITEM_SLOT));
    this.inventory.setHeldItem(Hand.OFF_HAND, compound.getInt(TAG_OFFHAND_HELD_ITEM_SLOT));
    position = buf.readBlockPos();
    citizenChatOptions.clear();
    final int size = buf.readInt();
    for (int i = 0; i < size; i++) {
        final CompoundNBT compoundNBT = buf.readNbt();
        final ServerCitizenInteraction handler = (ServerCitizenInteraction) MinecoloniesAPIProxy.getInstance().getInteractionResponseHandlerDataManager().createFrom(this, compoundNBT);
        citizenChatOptions.put(handler.getInquiry(), handler);
    }
    sortedInteractions = citizenChatOptions.values().stream().sorted(Comparator.comparingInt(e -> e.getPriority().getPriority())).collect(Collectors.toList());
    citizenHappinessHandler.read(buf.readNbt());
    int statusindex = buf.readInt();
    statusIcon = statusindex >= 0 ? VisibleCitizenStatus.getForId(statusindex) : null;
    if (buf.readBoolean()) {
        final IColonyView colonyView = IColonyManager.getInstance().getColonyView(colonyId, Minecraft.getInstance().level.dimension());
        jobView = IJobDataManager.getInstance().createViewFrom(colonyView, this, buf);
    } else {
        jobView = null;
    }
    children.clear();
    siblings.clear();
    partner = buf.readInt();
    final int siblingsSize = buf.readInt();
    for (int i = 0; i < siblingsSize; i++) {
        siblings.add(buf.readInt());
    }
    final int childrenSize = buf.readInt();
    for (int i = 0; i < childrenSize; i++) {
        children.add(buf.readInt());
    }
    final String parentA = buf.readUtf();
    final String parentB = buf.readUtf();
    parents = new Tuple<>(parentA, parentB);
}
Also used : java.util(java.util) Suppression(com.minecolonies.api.util.constant.Suppression) CompoundNBT(net.minecraft.nbt.CompoundNBT) ITextComponent(net.minecraft.util.text.ITextComponent) MinecoloniesAPIProxy(com.minecolonies.api.MinecoloniesAPIProxy) ICitizenSkillHandler(com.minecolonies.api.entity.citizen.citizenhandlers.ICitizenSkillHandler) Tuple(com.minecolonies.api.util.Tuple) TAG_OFFHAND_HELD_ITEM_SLOT(com.minecolonies.api.util.constant.NbtTagConstants.TAG_OFFHAND_HELD_ITEM_SLOT) Minecraft(net.minecraft.client.Minecraft) IJobDataManager(com.minecolonies.api.colony.jobs.registry.IJobDataManager) IInteractionResponseHandler(com.minecolonies.api.colony.interactionhandling.IInteractionResponseHandler) Hand(net.minecraft.util.Hand) CitizenSkillHandler(com.minecolonies.coremod.entity.citizen.citizenhandlers.CitizenSkillHandler) Constants(com.minecolonies.api.util.constant.Constants) ListNBT(net.minecraft.nbt.ListNBT) IColonyView(com.minecolonies.api.colony.IColonyView) ICitizenHappinessHandler(com.minecolonies.api.entity.citizen.citizenhandlers.ICitizenHappinessHandler) IColonyManager(com.minecolonies.api.colony.IColonyManager) VisibleCitizenStatus(com.minecolonies.api.entity.citizen.VisibleCitizenStatus) ICitizenDataView(com.minecolonies.api.colony.ICitizenDataView) ChatPriority(com.minecolonies.api.colony.interactionhandling.ChatPriority) BlockPos(net.minecraft.util.math.BlockPos) Collectors(java.util.stream.Collectors) Nullable(org.jetbrains.annotations.Nullable) InventoryCitizen(com.minecolonies.api.inventory.InventoryCitizen) IJobView(com.minecolonies.api.colony.jobs.IJobView) ResourceLocation(net.minecraft.util.ResourceLocation) ServerCitizenInteraction(com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction) NotNull(org.jetbrains.annotations.NotNull) CitizenHappinessHandler(com.minecolonies.coremod.entity.citizen.citizenhandlers.CitizenHappinessHandler) PacketBuffer(net.minecraft.network.PacketBuffer) ListNBT(net.minecraft.nbt.ListNBT) CompoundNBT(net.minecraft.nbt.CompoundNBT) ServerCitizenInteraction(com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction) InventoryCitizen(com.minecolonies.api.inventory.InventoryCitizen) IColonyView(com.minecolonies.api.colony.IColonyView)

Example 2 with ServerCitizenInteraction

use of com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction in project minecolonies by ldtteam.

the class CitizenData method deserializeNBT.

@Override
public void deserializeNBT(final CompoundNBT nbtTagCompound) {
    name = nbtTagCompound.getString(TAG_NAME);
    female = nbtTagCompound.getBoolean(TAG_FEMALE);
    paused = nbtTagCompound.getBoolean(TAG_PAUSED);
    isChild = nbtTagCompound.getBoolean(TAG_CHILD);
    textureId = nbtTagCompound.getInt(TAG_TEXTURE);
    if (nbtTagCompound.getAllKeys().contains(TAG_SUFFIX)) {
        textureSuffix = nbtTagCompound.getString(TAG_SUFFIX);
    } else {
        textureSuffix = SUFFIXES.get(random.nextInt(SUFFIXES.size()));
    }
    lastPosition = BlockPosUtil.read(nbtTagCompound, TAG_POS);
    if (nbtTagCompound.contains(TAG_RESPAWN_POS)) {
        nextRespawnPos = BlockPosUtil.read(nbtTagCompound, TAG_RESPAWN_POS);
    }
    citizenSkillHandler.read(nbtTagCompound.getCompound(TAG_NEW_SKILLS));
    saturation = nbtTagCompound.getDouble(TAG_SATURATION);
    if (nbtTagCompound.getAllKeys().contains("job")) {
        setJob(IJobDataManager.getInstance().createFrom(this, nbtTagCompound.getCompound("job")));
    }
    if (nbtTagCompound.getAllKeys().contains(TAG_INVENTORY)) {
        final ListNBT nbttaglist = nbtTagCompound.getList(TAG_INVENTORY, 10);
        this.inventory.read(nbttaglist);
        this.inventory.setHeldItem(Hand.MAIN_HAND, nbtTagCompound.getInt(TAG_HELD_ITEM_SLOT));
        this.inventory.setHeldItem(Hand.OFF_HAND, nbtTagCompound.getInt(TAG_OFFHAND_HELD_ITEM_SLOT));
    }
    if (name.isEmpty()) {
        name = generateName(random, isFemale(), getColony());
    }
    if (nbtTagCompound.getAllKeys().contains(TAG_ASLEEP)) {
        bedPos = BlockPosUtil.read(nbtTagCompound, TAG_BEDS);
        isAsleep = nbtTagCompound.getBoolean(TAG_ASLEEP);
    }
    if (nbtTagCompound.getAllKeys().contains(TAG_JUST_ATE)) {
        justAte = nbtTagCompound.getBoolean(TAG_JUST_ATE);
    }
    // Citizen chat options.
    if (nbtTagCompound.getAllKeys().contains(TAG_CHAT_OPTIONS)) {
        final ListNBT handlerTagList = nbtTagCompound.getList(TAG_CHAT_OPTIONS, Constants.NBT.TAG_COMPOUND);
        for (int i = 0; i < handlerTagList.size(); ++i) {
            final ServerCitizenInteraction handler = (ServerCitizenInteraction) MinecoloniesAPIProxy.getInstance().getInteractionResponseHandlerDataManager().createFrom(this, handlerTagList.getCompound(i).getCompound(TAG_CHAT_OPTION));
            citizenChatOptions.put(handler.getInquiry(), handler);
        }
    }
    this.citizenHappinessHandler.read(nbtTagCompound);
    this.citizenMournHandler.read(nbtTagCompound);
    if (nbtTagCompound.getAllKeys().contains(TAG_LEVEL_MAP) && !nbtTagCompound.getAllKeys().contains(TAG_NEW_SKILLS)) {
        citizenSkillHandler.init((int) citizenHappinessHandler.getHappiness(getColony()));
        final Map<String, Integer> levels = new HashMap<>();
        final ListNBT levelTagList = nbtTagCompound.getList(TAG_LEVEL_MAP, Constants.NBT.TAG_COMPOUND);
        for (int i = 0; i < levelTagList.size(); ++i) {
            final CompoundNBT levelExperienceAtJob = levelTagList.getCompound(i);
            final String jobName = levelExperienceAtJob.getString(TAG_NAME);
            final int level = Math.min(levelExperienceAtJob.getInt(TAG_LEVEL), MAX_CITIZEN_LEVEL);
            levels.put(jobName, level);
        }
        for (final Map.Entry<String, Integer> entry : levels.entrySet()) {
            final Skill primary = Skill.values()[random.nextInt(Skill.values().length)];
            final Skill secondary = Skill.values()[random.nextInt(Skill.values().length)];
            citizenSkillHandler.incrementLevel(primary, entry.getValue() / 2);
            citizenSkillHandler.incrementLevel(secondary, entry.getValue() / 4);
        }
    }
    this.idle = nbtTagCompound.getBoolean(TAG_IDLE);
    final String parentA = nbtTagCompound.getString(TAG_PARENT_A);
    final String parentB = nbtTagCompound.getString(TAG_PARENT_B);
    this.parents = new Tuple<>(parentA, parentB);
    @NotNull final ListNBT siblingsNBT = nbtTagCompound.getList(TAG_SIBLINGS, Constants.NBT.TAG_INT);
    for (int i = 0; i < siblingsNBT.size(); i++) {
        siblings.add(siblingsNBT.getInt(i));
    }
    @NotNull final ListNBT childrenNBT = nbtTagCompound.getList(TAG_CHILDREN, Constants.NBT.TAG_INT);
    for (int i = 0; i < childrenNBT.size(); i++) {
        children.add(childrenNBT.getInt(i));
    }
    partner = nbtTagCompound.getInt(TAG_PARTNER);
    this.isWorking = nbtTagCompound.getBoolean(TAG_ACTIVE);
}
Also used : CompoundNBT(net.minecraft.nbt.CompoundNBT) NotNull(org.jetbrains.annotations.NotNull) ListNBT(net.minecraft.nbt.ListNBT) Skill(com.minecolonies.api.entity.citizen.Skill) ServerCitizenInteraction(com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction)

Example 3 with ServerCitizenInteraction

use of com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction in project minecolonies by Minecolonies.

the class CitizenData method deserializeNBT.

@Override
public void deserializeNBT(final CompoundNBT nbtTagCompound) {
    name = nbtTagCompound.getString(TAG_NAME);
    female = nbtTagCompound.getBoolean(TAG_FEMALE);
    paused = nbtTagCompound.getBoolean(TAG_PAUSED);
    isChild = nbtTagCompound.getBoolean(TAG_CHILD);
    textureId = nbtTagCompound.getInt(TAG_TEXTURE);
    if (nbtTagCompound.getAllKeys().contains(TAG_SUFFIX)) {
        textureSuffix = nbtTagCompound.getString(TAG_SUFFIX);
    } else {
        textureSuffix = SUFFIXES.get(random.nextInt(SUFFIXES.size()));
    }
    lastPosition = BlockPosUtil.read(nbtTagCompound, TAG_POS);
    if (nbtTagCompound.contains(TAG_RESPAWN_POS)) {
        nextRespawnPos = BlockPosUtil.read(nbtTagCompound, TAG_RESPAWN_POS);
    }
    citizenSkillHandler.read(nbtTagCompound.getCompound(TAG_NEW_SKILLS));
    saturation = nbtTagCompound.getDouble(TAG_SATURATION);
    if (nbtTagCompound.getAllKeys().contains("job")) {
        setJob(IJobDataManager.getInstance().createFrom(this, nbtTagCompound.getCompound("job")));
    }
    if (nbtTagCompound.getAllKeys().contains(TAG_INVENTORY)) {
        final ListNBT nbttaglist = nbtTagCompound.getList(TAG_INVENTORY, 10);
        this.inventory.read(nbttaglist);
        this.inventory.setHeldItem(Hand.MAIN_HAND, nbtTagCompound.getInt(TAG_HELD_ITEM_SLOT));
        this.inventory.setHeldItem(Hand.OFF_HAND, nbtTagCompound.getInt(TAG_OFFHAND_HELD_ITEM_SLOT));
    }
    if (name.isEmpty()) {
        name = generateName(random, isFemale(), getColony());
    }
    if (nbtTagCompound.getAllKeys().contains(TAG_ASLEEP)) {
        bedPos = BlockPosUtil.read(nbtTagCompound, TAG_BEDS);
        isAsleep = nbtTagCompound.getBoolean(TAG_ASLEEP);
    }
    if (nbtTagCompound.getAllKeys().contains(TAG_JUST_ATE)) {
        justAte = nbtTagCompound.getBoolean(TAG_JUST_ATE);
    }
    // Citizen chat options.
    if (nbtTagCompound.getAllKeys().contains(TAG_CHAT_OPTIONS)) {
        final ListNBT handlerTagList = nbtTagCompound.getList(TAG_CHAT_OPTIONS, Constants.NBT.TAG_COMPOUND);
        for (int i = 0; i < handlerTagList.size(); ++i) {
            final ServerCitizenInteraction handler = (ServerCitizenInteraction) MinecoloniesAPIProxy.getInstance().getInteractionResponseHandlerDataManager().createFrom(this, handlerTagList.getCompound(i).getCompound(TAG_CHAT_OPTION));
            citizenChatOptions.put(handler.getInquiry(), handler);
        }
    }
    this.citizenHappinessHandler.read(nbtTagCompound);
    this.citizenMournHandler.read(nbtTagCompound);
    if (nbtTagCompound.getAllKeys().contains(TAG_LEVEL_MAP) && !nbtTagCompound.getAllKeys().contains(TAG_NEW_SKILLS)) {
        citizenSkillHandler.init((int) citizenHappinessHandler.getHappiness(getColony()));
        final Map<String, Integer> levels = new HashMap<>();
        final ListNBT levelTagList = nbtTagCompound.getList(TAG_LEVEL_MAP, Constants.NBT.TAG_COMPOUND);
        for (int i = 0; i < levelTagList.size(); ++i) {
            final CompoundNBT levelExperienceAtJob = levelTagList.getCompound(i);
            final String jobName = levelExperienceAtJob.getString(TAG_NAME);
            final int level = Math.min(levelExperienceAtJob.getInt(TAG_LEVEL), MAX_CITIZEN_LEVEL);
            levels.put(jobName, level);
        }
        for (final Map.Entry<String, Integer> entry : levels.entrySet()) {
            final Skill primary = Skill.values()[random.nextInt(Skill.values().length)];
            final Skill secondary = Skill.values()[random.nextInt(Skill.values().length)];
            citizenSkillHandler.incrementLevel(primary, entry.getValue() / 2);
            citizenSkillHandler.incrementLevel(secondary, entry.getValue() / 4);
        }
    }
    this.idle = nbtTagCompound.getBoolean(TAG_IDLE);
    final String parentA = nbtTagCompound.getString(TAG_PARENT_A);
    final String parentB = nbtTagCompound.getString(TAG_PARENT_B);
    this.parents = new Tuple<>(parentA, parentB);
    @NotNull final ListNBT siblingsNBT = nbtTagCompound.getList(TAG_SIBLINGS, Constants.NBT.TAG_INT);
    for (int i = 0; i < siblingsNBT.size(); i++) {
        siblings.add(siblingsNBT.getInt(i));
    }
    @NotNull final ListNBT childrenNBT = nbtTagCompound.getList(TAG_CHILDREN, Constants.NBT.TAG_INT);
    for (int i = 0; i < childrenNBT.size(); i++) {
        children.add(childrenNBT.getInt(i));
    }
    partner = nbtTagCompound.getInt(TAG_PARTNER);
    this.isWorking = nbtTagCompound.getBoolean(TAG_ACTIVE);
}
Also used : CompoundNBT(net.minecraft.nbt.CompoundNBT) NotNull(org.jetbrains.annotations.NotNull) ListNBT(net.minecraft.nbt.ListNBT) Skill(com.minecolonies.api.entity.citizen.Skill) ServerCitizenInteraction(com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction)

Example 4 with ServerCitizenInteraction

use of com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction in project minecolonies by Minecolonies.

the class CitizenDataView method deserialize.

@Override
public void deserialize(@NotNull final PacketBuffer buf) {
    name = buf.readUtf(32767);
    female = buf.readBoolean();
    entityId = buf.readInt();
    paused = buf.readBoolean();
    isChild = buf.readBoolean();
    homeBuilding = buf.readBoolean() ? buf.readBlockPos() : null;
    workBuilding = buf.readBoolean() ? buf.readBlockPos() : null;
    // Attributes
    health = buf.readFloat();
    maxHealth = buf.readFloat();
    saturation = buf.readDouble();
    happiness = buf.readDouble();
    citizenSkillHandler.read(buf.readNbt());
    job = buf.readUtf(32767);
    colonyId = buf.readInt();
    final CompoundNBT compound = buf.readNbt();
    inventory = new InventoryCitizen(this.name, true);
    final ListNBT ListNBT = compound.getList("inventory", 10);
    this.inventory.read(ListNBT);
    this.inventory.setHeldItem(Hand.MAIN_HAND, compound.getInt(TAG_HELD_ITEM_SLOT));
    this.inventory.setHeldItem(Hand.OFF_HAND, compound.getInt(TAG_OFFHAND_HELD_ITEM_SLOT));
    position = buf.readBlockPos();
    citizenChatOptions.clear();
    final int size = buf.readInt();
    for (int i = 0; i < size; i++) {
        final CompoundNBT compoundNBT = buf.readNbt();
        final ServerCitizenInteraction handler = (ServerCitizenInteraction) MinecoloniesAPIProxy.getInstance().getInteractionResponseHandlerDataManager().createFrom(this, compoundNBT);
        citizenChatOptions.put(handler.getInquiry(), handler);
    }
    sortedInteractions = citizenChatOptions.values().stream().sorted(Comparator.comparingInt(e -> e.getPriority().getPriority())).collect(Collectors.toList());
    citizenHappinessHandler.read(buf.readNbt());
    int statusindex = buf.readInt();
    statusIcon = statusindex >= 0 ? VisibleCitizenStatus.getForId(statusindex) : null;
    if (buf.readBoolean()) {
        final IColonyView colonyView = IColonyManager.getInstance().getColonyView(colonyId, Minecraft.getInstance().level.dimension());
        jobView = IJobDataManager.getInstance().createViewFrom(colonyView, this, buf);
    } else {
        jobView = null;
    }
    children.clear();
    siblings.clear();
    partner = buf.readInt();
    final int siblingsSize = buf.readInt();
    for (int i = 0; i < siblingsSize; i++) {
        siblings.add(buf.readInt());
    }
    final int childrenSize = buf.readInt();
    for (int i = 0; i < childrenSize; i++) {
        children.add(buf.readInt());
    }
    final String parentA = buf.readUtf();
    final String parentB = buf.readUtf();
    parents = new Tuple<>(parentA, parentB);
}
Also used : java.util(java.util) Suppression(com.minecolonies.api.util.constant.Suppression) CompoundNBT(net.minecraft.nbt.CompoundNBT) ITextComponent(net.minecraft.util.text.ITextComponent) MinecoloniesAPIProxy(com.minecolonies.api.MinecoloniesAPIProxy) ICitizenSkillHandler(com.minecolonies.api.entity.citizen.citizenhandlers.ICitizenSkillHandler) Tuple(com.minecolonies.api.util.Tuple) TAG_OFFHAND_HELD_ITEM_SLOT(com.minecolonies.api.util.constant.NbtTagConstants.TAG_OFFHAND_HELD_ITEM_SLOT) Minecraft(net.minecraft.client.Minecraft) IJobDataManager(com.minecolonies.api.colony.jobs.registry.IJobDataManager) IInteractionResponseHandler(com.minecolonies.api.colony.interactionhandling.IInteractionResponseHandler) Hand(net.minecraft.util.Hand) CitizenSkillHandler(com.minecolonies.coremod.entity.citizen.citizenhandlers.CitizenSkillHandler) Constants(com.minecolonies.api.util.constant.Constants) ListNBT(net.minecraft.nbt.ListNBT) IColonyView(com.minecolonies.api.colony.IColonyView) ICitizenHappinessHandler(com.minecolonies.api.entity.citizen.citizenhandlers.ICitizenHappinessHandler) IColonyManager(com.minecolonies.api.colony.IColonyManager) VisibleCitizenStatus(com.minecolonies.api.entity.citizen.VisibleCitizenStatus) ICitizenDataView(com.minecolonies.api.colony.ICitizenDataView) ChatPriority(com.minecolonies.api.colony.interactionhandling.ChatPriority) BlockPos(net.minecraft.util.math.BlockPos) Collectors(java.util.stream.Collectors) Nullable(org.jetbrains.annotations.Nullable) InventoryCitizen(com.minecolonies.api.inventory.InventoryCitizen) IJobView(com.minecolonies.api.colony.jobs.IJobView) ResourceLocation(net.minecraft.util.ResourceLocation) ServerCitizenInteraction(com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction) NotNull(org.jetbrains.annotations.NotNull) CitizenHappinessHandler(com.minecolonies.coremod.entity.citizen.citizenhandlers.CitizenHappinessHandler) PacketBuffer(net.minecraft.network.PacketBuffer) ListNBT(net.minecraft.nbt.ListNBT) CompoundNBT(net.minecraft.nbt.CompoundNBT) ServerCitizenInteraction(com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction) InventoryCitizen(com.minecolonies.api.inventory.InventoryCitizen) IColonyView(com.minecolonies.api.colony.IColonyView)

Aggregations

ServerCitizenInteraction (com.minecolonies.coremod.colony.interactionhandling.ServerCitizenInteraction)4 CompoundNBT (net.minecraft.nbt.CompoundNBT)4 ListNBT (net.minecraft.nbt.ListNBT)4 NotNull (org.jetbrains.annotations.NotNull)4 MinecoloniesAPIProxy (com.minecolonies.api.MinecoloniesAPIProxy)2 ICitizenDataView (com.minecolonies.api.colony.ICitizenDataView)2 IColonyManager (com.minecolonies.api.colony.IColonyManager)2 IColonyView (com.minecolonies.api.colony.IColonyView)2 ChatPriority (com.minecolonies.api.colony.interactionhandling.ChatPriority)2 IInteractionResponseHandler (com.minecolonies.api.colony.interactionhandling.IInteractionResponseHandler)2 IJobView (com.minecolonies.api.colony.jobs.IJobView)2 IJobDataManager (com.minecolonies.api.colony.jobs.registry.IJobDataManager)2 Skill (com.minecolonies.api.entity.citizen.Skill)2 VisibleCitizenStatus (com.minecolonies.api.entity.citizen.VisibleCitizenStatus)2 ICitizenHappinessHandler (com.minecolonies.api.entity.citizen.citizenhandlers.ICitizenHappinessHandler)2 ICitizenSkillHandler (com.minecolonies.api.entity.citizen.citizenhandlers.ICitizenSkillHandler)2 InventoryCitizen (com.minecolonies.api.inventory.InventoryCitizen)2 Tuple (com.minecolonies.api.util.Tuple)2 Constants (com.minecolonies.api.util.constant.Constants)2 TAG_OFFHAND_HELD_ITEM_SLOT (com.minecolonies.api.util.constant.NbtTagConstants.TAG_OFFHAND_HELD_ITEM_SLOT)2