def __init__(self, ip, username='anonymous', password=''):
        """
        Initializes an FTP client to handle uploading and downloading of a Minecraft world via FTP
        
        :param ip: The IP of the FTP Server
        :type ip: str
        :param username: The Username to use to log into the server
        :type username: str
        :param password: The Password that accompanies the supplied Username
        :type password: str
        """
        try:
            os.mkdir("ftp")
        except OSError:
            pass
        try:
            self._host = ftputil.FTPHost(ip, username, password)
        except PermanentError:
            raise InvalidCreditdentialsException("Incorrect username or password")
            
        self._worldname = None
        if 'server.properties' in self._host.listdir(self._host.curdir):
            self._host.download('server.properties', os.path.join('ftp', 'server.properties'))
            with open(os.path.join('ftp', 'server.properties'), 'r') as props:
                content = props.readlines()
                if len(content) > 1:
                    for prop in content:
                        if prop.startswith("level-name"):
                            self._worldname = str(prop.split("=")[1:][0]).rstrip("\n")
                else:
                    for prop in content[0].split('\r'):
                        if prop.startswith("level-name"):
                            self._worldname = str(prop.split("=")[1:][0]).rstrip("\r")
        else:
            raise CouldNotFindPropertiesException("Could not find the server.properties file! The FTP client will not be able to download the world unless the server.properties file is in the default FTP directory")
        if self._worldname in self._host.listdir(self._host.curdir):
            try:
                os.mkdir(os.path.join('ftp', self._worldname))
            except OSError:
                pass
        else:
            raise CouldNotFindWorldFolderException("Could not find the world folder from the server.properties file")

        Initializes an FTP client to handle uploading and downloading of a Minecraft world via FTP
        
        :param ip: The IP of the FTP Server
        :type ip: str
        :param username: The Username to use to log into the server
        :type username: str
        :param password: The Password that accompanies the supplied Username
        :type password: str
        
ftp_client.py