Update handler.js

This commit is contained in:
Artemy 2023-06-19 17:25:17 +03:00
parent 4a6c340180
commit b856fb0f7f

View file

@ -697,49 +697,78 @@ class Handler {
}); });
} }
async downloadToDirectory (directory, libraries, eventName) { async downloadToDirectory(directory, libraries, eventName) {
const libs = [] const libs = [];
await Promise.all(libraries.map(async library => { await Promise.all(
if (!library) return libraries.map(async (library) => {
if (this.parseRule(library)) return if (!library) return;
const lib = library.name.split(':') if (this.parseRule(library)) return;
const lib = library.name.split(":");
let jarPath let jarPath;
let name let name;
if (library.downloads && library.downloads.artifact && library.downloads.artifact.path) { if (
name = library.downloads.artifact.path.split('/')[library.downloads.artifact.path.split('/').length - 1] library.downloads &&
jarPath = path.join(directory, this.popString(library.downloads.artifact.path)) library.downloads.artifact &&
library.downloads.artifact.path
) {
name =
library.downloads.artifact.path.split("/")[
library.downloads.artifact.path.split("/").length - 1
];
jarPath = path.join(
directory,
this.popString(library.downloads.artifact.path)
);
} else { } else {
name = `${lib[1]}-${lib[2]}${lib[3] ? '-' + lib[3] : ''}.jar` name = `${lib[1]}-${lib[2]}${lib[3] ? "-" + lib[3] : ""}.jar`;
jarPath = path.join(directory, `${lib[0].replace(/\./g, '/')}/${lib[1]}/${lib[2]}`) jarPath = path.join(
directory,
`${lib[0].replace(/\./g, "/")}/${lib[1]}/${lib[2]}`
);
} }
const downloadLibrary = async library => { const downloadLibrary = async (library) => {
if (library.url) { if (library.url) {
const url = `${library.url}${lib[0].replace(/\./g, '/')}/${lib[1]}/${lib[2]}/${name}` const url = `${library.url}${lib[0].replace(/\./g, "/")}/${
await this.downloadAsync(url, jarPath, name, true, eventName) lib[1]
}/${lib[2]}/${name}`;
await this.downloadAsync(url, jarPath, name, true, eventName);
} else if (library.downloads && library.downloads.artifact) { } else if (library.downloads && library.downloads.artifact) {
await this.downloadAsync(library.downloads.artifact.url, jarPath, name, true, eventName) await this.downloadAsync(
} library.downloads.artifact.url,
jarPath,
name,
true,
eventName
);
} }
};
if (!fs.existsSync(path.join(jarPath, name))) downloadLibrary(library) if (!fs.existsSync(path.join(jarPath, name))) downloadLibrary(library);
else if (library.downloads && library.downloads.artifact) { else if (library.downloads && library.downloads.artifact) {
if (!this.checkSum(library.downloads.artifact.sha1, path.join(jarPath, name))) downloadLibrary(library) if (
!this.checkSum(
library.downloads.artifact.sha1,
path.join(jarPath, name)
)
)
downloadLibrary(library);
} }
counter++ counter++;
this.client.emit('progress', { this.client.emit("progress", {
type: eventName, type: eventName,
task: counter, task: counter,
total: libraries.length total: libraries.length,
});
libs.push(`${jarPath}${path.sep}${name}`);
}) })
libs.push(`${jarPath}${path.sep}${name}`) );
})) counter = 0;
counter = 0
return libs return libs;
} }
async getClasses(classJson) { async getClasses(classJson) {