When a player leaves the channel in mid-game, and particularly when there's nobody in the queue to join in their place, kills are broken. Any attempted kill afterwards in that game tells the wolf that he has to choose a valid player.
I believe the error is in this bit of code in the kill function:
for\(inti=0; i < players.size\(\) ; i++\)\{
if\(\(\(String\)players.get\(i\)\).equalsIgnoreCase\(victim\)\)if\(dead\[i\]\)isDead=true;\}
When a player leaves the player name is set to null. Thus players.get(i) returns null and calling this on equalsIgnoreCast gives rise to an exception giving the "invalid player" message. The fix is just to check for the null case, as is done in other such loops (which should probably be audited).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I believe the error is in this bit of code in the kill function:
When a player leaves the player name is set to null. Thus players.get(i) returns null and calling this on equalsIgnoreCast gives rise to an exception giving the "invalid player" message. The fix is just to check for the null case, as is done in other such loops (which should probably be audited).