QuoteIt'd also be nice if there was a way to check if they have any states
$game_party.actors[ID].states.size > 0
Replace ID with the actor's party index, starting with 0.
An enemy's name is
$game_troop.enemies[ID].name
Again, replace ID with troop index, starting with 0. You can store that into a game variable (
$game_variables[ID] = ENEMY NAME) which you can then use in a Show Message event.
Things get trickier with checking when a state is added or removed. The scripting-route would require adding a new variable and aliasing the
add_state and
remove_state methods.
Personally, I'm not a fan of having a giant text window pop-up in battle to tell me that I have a status ailment and having to destroy my keyboard to cycle through all the messages every turn.