Синхронизация сущности в двух местах одновременно

Версия Minecraft
1.16.5
API
Forge
Всем привет.
Я пишу мод, в котором мне необходимо создать что-то вроде голограммы сущности(именно LivingEntity). Т.е взять рендер ванильной/модовой сущности и перенести его на свою.
С этим проблем нет, но дело в том, что если эта сущность будет находится далеко от голограммы, то клиенту не будут слаться пакеты синхронизации.
Такой вопрос, как сделать так, чтобы помимо ванильной синхронизации сущности с клиентом на позицию где она находится, пакеты синхронизации слались и на позицию голограммы.

Если что, позиция на которой должна находиться голограмма просто хранится в капе самой сущности.

Вот код самой сущности-голограммы:
Java:
public class EntityHologram extends LivingEntity
{
    private static final DataParameter<Optional<UUID>> UUID = EntityDataManager.defineId(EntityHologram.class, DataSerializers.OPTIONAL_UUID);
    private final NonNullList<ItemStack> handItems = NonNullList.withSize(2, ItemStack.EMPTY);
    private final NonNullList<ItemStack> armorItems = NonNullList.withSize(4, ItemStack.EMPTY);

    public EntityHologram(EntityType<? extends LivingEntity> type, World level)
    {
        super(type, level);
    }

    @Override
    public boolean attackable() {
        return false;
    }

    @Override
    protected void defineSynchedData()
    {
        super.defineSynchedData();
        this.entityData.define(UUID, Optional.empty());
    }

    public static AttributeModifierMap.MutableAttribute createAttributes()
    {
        return LivingEntity.createLivingAttributes()
                .add(Attributes.ATTACK_DAMAGE, 1.0D)
                .add(Attributes.MOVEMENT_SPEED, 0.1F).add(Attributes.ATTACK_SPEED)
                .add(Attributes.LUCK)
                .add(net.minecraftforge.common.ForgeMod.REACH_DISTANCE.get())
                .add(Attributes.ATTACK_KNOCKBACK)
                .add(Attributes.MAX_HEALTH, 20f);
    }

    @Override
    public void knockback(float p_233627_1_, double p_233627_2_, double p_233627_4_) {}


    @Override
    public PushReaction getPistonPushReaction()
    {
        return PushReaction.IGNORE;
    }

    @Override
    public float getEyeHeightAccess(Pose pose, EntitySize size)
    {
        return size.height*0.35F;
    }

    @Override
    public Iterable<ItemStack> getArmorSlots()
    {
        return this.armorItems;
    }

    @Override
    public boolean canChangeDimensions() {
        return false;
    }
    
    @Override
    public boolean isPushable() {
        return false;
    }

    @Override
    public void push(double p_70024_1_, double p_70024_3_, double p_70024_5_) {}

    @Override
    public boolean isPushedByFluid() {
        return false;
    }

    @Override
    public void readAdditionalSaveData(CompoundNBT nbt)
    {
        super.readAdditionalSaveData(nbt);

        if (nbt.contains("HandItems", 9))
        {
            ListNBT nbtList = nbt.getList("HandItems", 10);

            for(int j = 0; j < this.handItems.size(); ++j) this.handItems.set(j, ItemStack.of(nbtList.getCompound(j)));

        }

        if (nbt.contains("ArmorItems", 9))
        {
            ListNBT nbtList = nbt.getList("ArmorItems", 10);

            for(int i = 0; i < this.armorItems.size(); ++i) this.armorItems.set(i, ItemStack.of(nbtList.getCompound(i)));

        }
    }
    
    @Override
    public void addAdditionalSaveData(CompoundNBT nbt)
    {
        super.addAdditionalSaveData(nbt);

        ListNBT listnbt = new ListNBT();
        for(ItemStack itemstack : this.armorItems) {
            CompoundNBT compoundnbt = new CompoundNBT();
            if (!itemstack.isEmpty()) itemstack.save(compoundnbt);
            listnbt.add(compoundnbt);
        }

        nbt.put("ArmorItems", listnbt);
        ListNBT listnbt1 = new ListNBT();

        for(ItemStack itemstack1 : this.handItems) {
            CompoundNBT compoundnbt1 = new CompoundNBT();
            if (!itemstack1.isEmpty()) itemstack1.save(compoundnbt1);
            listnbt1.add(compoundnbt1);
        }
    }

    @Override
    protected boolean canRide(Entity entity)
    {
        return false;
    }

    @Override
    public ItemStack getItemBySlot(EquipmentSlotType type)
    {
        switch(type.getType())
        {
            case HAND:
                return this.handItems.get(type.getIndex());
            case ARMOR:
                return this.armorItems.get(type.getIndex());
            default:
                return ItemStack.EMPTY;
        }
    }

    @Override
    public void setItemSlot(EquipmentSlotType type, ItemStack stack)
    {
        switch(type.getType()) {
            case HAND:
                this.handItems.set(type.getIndex(), stack);
                break;
            case ARMOR:
                this.armorItems.set(type.getIndex(), stack);
        }
    }

    @Override
    public HandSide getMainArm() {
        return HandSide.RIGHT;
    }
}
 
Сверху