code: function parseUserlistEntry(nickWithFlags) {
  	const userlistEntry = new UserlistEntry();
  	for (let i of indices(nickWithFlags.length)) {
  		switch (nickWithFlags.charAt(i)) {
  			case '~':
  				userlistEntry.owner = true;
  				break;
  			case '&':
  				userlistEntry.admin = true;
  				break;
  			case '@':
  				userlistEntry.op = true;
  				break;
  			case '%':
  				userlistEntry.halfop = true;
  				break;
  			case '+':
  				userlistEntry.voice = true;
  				break;
  			default:
  				userlistEntry.nick = nickWithFlags.substring(i);
  				return userlistEntry;
  		}
  	}
  
  	// if here, we got an empty name
  	return null;
  }
docs: ~owner, &admin, @op, %halfop, +voice, regular combinations possible, e.g. &@name