private void loadRequiredFilesIfNecessary() {
        if (!new File("./data/ids.json").isFile()) {
            Util.createDirectoryIfNeeded("./data");
            try {
                Resources.copyFileResource("ids.json", "./data/ids.json");
            } catch (IOException ex) {
                Logger.error("MainForm.loadRequiredFilesIfNecessary", "Failed to copy 'ids.json' from resource!", false, ex);
            }
        }
        
        if (!new File("./packs").isDirectory()) {
            loadDirectoryFromResource("packs");
        }
        
        if (!new File("./update/version.json").isFile()) {
            Util.createDirectoryIfNeeded("./update");
            try {
                Resources.copyFileResource("version.json", "./update/version.json");
            } catch (IOException ex) {
                Logger.error("MainForm.loadRequiredFilesIfNecessary", "Failed to copy 'version.json' from resource!", false, ex);
            }
        }
    }