Turns out the getOfflinePlayer() methods never return null, but will create a player object for any player you care to name. Handy for us!