I understand it, I thought it only synchronized what's in the read and write.
@Nullable
@Override
public SUpdateTileEntityPacket getUpdatePacket() {
CompoundNBT tag = new CompoundNBT();
tag.putInt(ANGLE_TAG,this.angle);
return new SUpdateTileEntityPacket(this.pos,0,tag);
}
@Override
public CompoundNBT getUpdateTag() {
return write(new CompoundNBT());
}
@Override
public void onDataPacket(NetworkManager net, SUpdateTileEntityPacket pkt) {
super.onDataPacket(net, pkt);
BlockState state = this.world.getBlockState(this.pos);
this.angle = pkt.getNbtCompound().getInt(ANGLE_TAG);
this.world.notifyBlockUpdate(this.pos, state, state, 3);
}