If you modify Activate() to take a Tokenizer object instead of StringClass, you could write commands in a similar way to this:
void Ping::Activate(int ID, int Type, Tokenizer Msg)
{
	if (Msg.Size() > 1)
	{
		int Count = Functions::Get_Part_Names_Fixed(Msg[2]);
		if (Count < 1)
		{
			Functions::Page(ID,"Player not found.");
		}
		else if (Count > 1)
		{
			Functions::Page(ID, "Multiple players found.");
		}
		else
		{
			int OtherID = Get_Player_ID(Functions::Get_Part_Name_Fixed(Msg[2]));
			Player_t* p = Player::Get(OtherID);
			Functions::Page(ID,"%s's ping is %d.", p->Nick, Get_Ping(p->PlayerId));
		}
	}
	else
	{
		Functions::Page(ID,"Your ping is %d.", Get_Ping(ID));
	}
}