
Net::Msmgr::Command

use Net::Msmgr::Command;
my $connection = new Net::Msmgr::Connection( .... );
my $command = new Net::Msmgr::Command;
$command->type(Net::Msmgr::Command::Async); # there are other types
$command->cmd('XYZ'); # one of the MSNP messages
$command->params( [ param1, param2, ... ] );
$command->send($connection);

Net::Msmgr::Command is the encapsulation for an MSNP command. They come in four types, and this library provides manifest constants for each type.
This is a normal command. It will have a TRID and no payload.
This is used to instantiate async commands, which are commands that have no TRID.
These are commands with payload data (e.g. MSG), and a TRID.
These are unused in the current version of the library, but are placeholders to associate with user handlers.

my $command = new Net::Msmgr::Command ( type => ... ); or my $command = Net::Msmgr::Command->new( type => ...); Constructor parameters are:
One of Net::Msmgr::Command::Async, Payload, Normal, or Pseudo
A MSNP Command (e.g. MSG, USR, XFR)
A listref of optional parameters. Each command type has a fixed list of parameters.
The payload data for Net::Msmgr::Command::Payload messages.

$command->as_text;
Human readable representation of only the command and parameters (excluding payload data) for debugging.
$command->send( $connection );
Associate a command with a Net::Msmgr::Connection stream and transmit it.

Read or set the type.
Read or set the cmd.
Read or set the parameter list.
Set or change the connection stream associated with this command. Probably not a good idea.
Read or set the body.