Because it doesn't seem to be possible to solve for $w(t)$, what you could do to obtain the plot of $w(t)$ is by numerically solving for $w$ for different values of $t$ with FindRoot. The results can then be plotted with ListLinePlot.
numberOfPoints = 300;
wStart = 1;
ts = Rest @ Subdivide[0, 3, numberOfPoints];
ws = Last @* Last /@ Table[
FindRoot[Evaluate[eqn /. t -> n], {w, wStart}],
{n, ts}
];
ListLinePlot[Transpose @ {ws, ts}]
(Note that Rest is to exclude the case in which $t = 0$.)

Update
At first I ignored the FindRoot::lstol messages, which I shouldn't have. One way of checking if each pair of numerically-obtained $(w, t)$ actually satisfies eqn is by looking at the difference between its left and right sides. The difference should be close to zero.
Trying this:
numberOfPoints = 5;
wStart = 1;
ts = Rest @ Subdivide[0, 3, numberOfPoints];
ws = Last @* Last /@ Table[
FindRoot[Evaluate[eqn /. t -> n], {w, wStart}],
{n, ts}
];
points = Transpose @ {ws, ts};
diff = Subtract @@ List @@ eqn;
diff /. {w -> First @ #, t -> Last @ #} & /@ points
we get:
{-4.72339, -14.1116, -26.7086, -41.0978, -55.888}
As they're not relatively close to zero, the numerical solutions are bad. One way of addressing this is by giving FindRoot a better wStart.
To find it, we could explore the plot of the difference at some values of t to visually identify w at which diff is zero. It appears that
Plot[Evaluate[Table[diff /. t -> n, {n, ts}]], {w, -3, 10}, PlotRange -> {-600, 50}]

which signifies that wStart should be somewhere near -2 for $t \in (0, 3]$. Let's try wStart = -3:
numberOfPoints = 5;
wStart = -3;
ts = Rest @ Subdivide[0, 3, numberOfPoints];
ws = Last @* Last /@ Table[
FindRoot[Evaluate[eqn /. t -> n], {w, wStart}],
{n, ts}
];
points = Transpose @ {ws, ts};
diff = Subtract @@ List @@ eqn;
diff /. {w -> First @ #, t -> Last @ #} & /@ points
from which we get
{2.226*10^-13, 4.9738*10^-14, 4.36984*10^-13, 7.31859*10^-13, -4.54747*10^-13}
which are all close to zero, so this wStart is good. Now, back to the code at the beginning, with the better wStart (and note that because t shouldn't be too close to zero, I let ts start at 11/100 rather than 0):
numberOfPoints = 300;
wStart = -3;
ts = Subdivide[11/100, 3, numberOfPoints];
ws = Last @* Last /@ Table[
FindRoot[Evaluate[eqn /. t -> n], {w, wStart}],
{n, ts}
];
ListLinePlot[Transpose @ {ws, ts}]
No more FindRoot::lstol messages.
