Tinker.
Try changing order of the command. ply:GetPrintName():GetActiveWeapon()
Try adding additional info (from wiki, I see example of GetActiveWeapon also includes GetClass, which GetPrintName supposedly will convert = ply:GetActiveWeapon():GetClass():GetPrintName()
Try command structure change. ply:GetPrintName( ply:GetActiveWeapon():GetClass() )
Are there server or game console errors?
Is this running on the server or client? (I can't tell from the wiki which it's supposed to be)
Tinker.
Sorry, I don't remember directly, and, tinkering might not only show you how "This" challenge is run, but, teach you something else that might be helpful later.
I know it usually does me when I tinker (Heck, tinkering here taught me there's a GetPrintName command, even if I don't know how to use it, I learned it tinkering)