Checking for first time an entry is "published" i.e. saved with a Live status
There isn't an "event" that gets fired when an entry goes live, but you should be able to listen to the onSaveEntry event, then check the same criteria that Craft uses to determine if an entry is live or not.

As far as tracking if it's the first time the entry had a live status or not, it's kind of lame, but your plugin could have a Record/table that kept track of the entry ID and status so you'd know if it was the first time an entry ID had a status of Live or not.