Would it still be considered bad practice if the class that is contained within still has it's members encapsulated?
Typically, you don't "hide" the members of the class behind the facade of private just to be a bully. You do it to preserve invariants.
Say you have a class Foo with a member bar_. bar_ has to be in the range of 14 and 76. The invariant here, then, is that 14>=bar_>=76. In order to preserve that invariant, you need to strictly control access to bar_. Setting it public, and allowing outside code to modify bar_ willy-nilly, can possibly lead to the invariant being violated, and the behavior of Foo being adversely affected as a result. So you specify that bar_ can only be accessed through methods designed to preserve the invariant (in this case, bounds checking the input and either correcting/clamping to range, or throwing an exception).
If allowing backpack to be exposed to the general public can't possibly violate any invariants of Player, then there is no harm in having it be public, and in fact setting it behind trivial accessor functions out of some misguided need to make all members private is making unnecessary work for yourself. But if the proper operation of Player relies upon strictly controlling access to backpack, then it should be walled away and protected behind a proper access interface so that the outside world doesn't meddle with things they don't understand.