I don't know much about Quake (it makes me ill watching the screen caroming around like that), but rather than all this sockety smickity-smack, take a look at
Net::IRC.
It's very easy to use, and fairly capable. The only issue I've found to date is that it doesn't internally implement any form of flood control, so you may have to use some sort of queueing mechanism. And, flood control is only an issue if you're running through an IRC server, as opposed to a DCC connection.
--Chris
e-mail jcwren