def getAllPlayerData(self, readOptions=None):
        """
        Returns the raw NBT data of all players in the database.
        Every player is stored as player_<player-id>. The single-player player is stored as ~local_player
        :param readOptions:
        :return: dictonary key, value: key: player-id, value = player nbt data as str
        """
        with self.world_db() as db:
            allPlayers = {}
            rop = self.readOptions if readOptions is None else readOptions

            try:
                allPlayers["~local_player"] = db.Get(rop, "~local_player")
            except RuntimeError:
                pass

            it = db.NewIterator(rop)
            it.seek("player_")
            key = it.key()
            while it.Valid() and key.startswith("player_"):
                allPlayers[key] = it.value()
                it.stepForward()
                key = it.key()

            del it
            return allPlayers

        Returns the raw NBT data of all players in the database.
        Every player is stored as player_<player-id>. The single-player player is stored as ~local_player
        :param readOptions:
        :return: dictonary key, value: key: player-id, value = player nbt data as str
        
pymclevel/leveldbpocket.py