mirror of
https://github.com/packwiz/packwiz.git
synced 2025-04-19 21:16:30 +02:00
Improve error messages when unable to find a CF file/addon
This commit is contained in:
parent
f1eb34d444
commit
e29c3022b3
@ -334,12 +334,14 @@ func searchCurseforgeInternal(args []string, mcVersion string, packLoaderType in
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getLatestFile(modInfoData modInfo, mcVersion string, fileID int, packLoaderType int) (modFileInfo, error) {
|
func getLatestFile(modInfoData modInfo, mcVersion string, fileID int, packLoaderType int) (modFileInfo, error) {
|
||||||
|
anyFileObtained := false
|
||||||
// For snapshots, curseforge doesn't put them in GameVersionLatestFiles
|
// For snapshots, curseforge doesn't put them in GameVersionLatestFiles
|
||||||
if fileID == 0 {
|
if fileID == 0 {
|
||||||
var fileInfoData modFileInfo
|
var fileInfoData modFileInfo
|
||||||
fileInfoObtained := false
|
fileInfoObtained := false
|
||||||
|
|
||||||
for _, v := range modInfoData.LatestFiles {
|
for _, v := range modInfoData.LatestFiles {
|
||||||
|
anyFileObtained = true
|
||||||
// Choose "newest" version by largest ID
|
// Choose "newest" version by largest ID
|
||||||
if matchGameVersions(mcVersion, v.GameVersions) && v.ID > fileID && matchLoaderTypeFileInfo(packLoaderType, v) {
|
if matchGameVersions(mcVersion, v.GameVersions) && v.ID > fileID && matchLoaderTypeFileInfo(packLoaderType, v) {
|
||||||
fileID = v.ID
|
fileID = v.ID
|
||||||
@ -349,6 +351,7 @@ func getLatestFile(modInfoData modInfo, mcVersion string, fileID int, packLoader
|
|||||||
}
|
}
|
||||||
// TODO: change to timestamp-based comparison??
|
// TODO: change to timestamp-based comparison??
|
||||||
for _, v := range modInfoData.GameVersionLatestFiles {
|
for _, v := range modInfoData.GameVersionLatestFiles {
|
||||||
|
anyFileObtained = true
|
||||||
// Choose "newest" version by largest ID
|
// Choose "newest" version by largest ID
|
||||||
if matchGameVersion(mcVersion, v.GameVersion) && v.ID > fileID && matchLoaderType(packLoaderType, v.Modloader) {
|
if matchGameVersion(mcVersion, v.GameVersion) && v.ID > fileID && matchLoaderType(packLoaderType, v.Modloader) {
|
||||||
fileID = v.ID
|
fileID = v.ID
|
||||||
@ -360,6 +363,10 @@ func getLatestFile(modInfoData modInfo, mcVersion string, fileID int, packLoader
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !anyFileObtained {
|
||||||
|
return modFileInfo{}, fmt.Errorf("addon %d has no files", modInfoData.ID)
|
||||||
|
}
|
||||||
|
|
||||||
if fileID == 0 {
|
if fileID == 0 {
|
||||||
return modFileInfo{}, errors.New("mod not available for the configured Minecraft version(s) (use the acceptable-game-versions option to accept more) or loader")
|
return modFileInfo{}, errors.New("mod not available for the configured Minecraft version(s) (use the acceptable-game-versions option to accept more) or loader")
|
||||||
}
|
}
|
||||||
|
@ -168,6 +168,9 @@ func getModInfo(modID int) (modInfo, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return modInfo{}, err
|
return modInfo{}, err
|
||||||
}
|
}
|
||||||
|
if resp.StatusCode != 200 {
|
||||||
|
return modInfo{}, fmt.Errorf("failed to request addon ID %d: %s", modID, resp.Status)
|
||||||
|
}
|
||||||
|
|
||||||
err = json.NewDecoder(resp.Body).Decode(&infoRes)
|
err = json.NewDecoder(resp.Body).Decode(&infoRes)
|
||||||
if err != nil && err != io.EOF {
|
if err != nil && err != io.EOF {
|
||||||
@ -175,7 +178,7 @@ func getModInfo(modID int) (modInfo, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if infoRes.ID != modID {
|
if infoRes.ID != modID {
|
||||||
return modInfo{}, fmt.Errorf("unexpected addon ID in CurseForge response: %d/%d", modID, infoRes.ID)
|
return modInfo{}, fmt.Errorf("unexpected addon ID in CurseForge response: %d (expected %d)", infoRes.ID, modID)
|
||||||
}
|
}
|
||||||
|
|
||||||
return infoRes, nil
|
return infoRes, nil
|
||||||
@ -303,6 +306,9 @@ func getFileInfo(modID int, fileID int) (modFileInfo, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return modFileInfo{}, err
|
return modFileInfo{}, err
|
||||||
}
|
}
|
||||||
|
if resp.StatusCode != 200 {
|
||||||
|
return modFileInfo{}, fmt.Errorf("failed to request file ID %d for addon %d: %s", fileID, modID, resp.Status)
|
||||||
|
}
|
||||||
|
|
||||||
err = json.NewDecoder(resp.Body).Decode(&infoRes)
|
err = json.NewDecoder(resp.Body).Decode(&infoRes)
|
||||||
if err != nil && err != io.EOF {
|
if err != nil && err != io.EOF {
|
||||||
@ -310,7 +316,7 @@ func getFileInfo(modID int, fileID int) (modFileInfo, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if infoRes.ID != fileID {
|
if infoRes.ID != fileID {
|
||||||
return modFileInfo{}, fmt.Errorf("unexpected file ID in CurseForge response: %d/%d", modID, infoRes.ID)
|
return modFileInfo{}, fmt.Errorf("unexpected file ID for addon %d in CurseForge response: %d (expected %d)", modID, infoRes.ID, fileID)
|
||||||
}
|
}
|
||||||
|
|
||||||
return infoRes, nil
|
return infoRes, nil
|
||||||
|
Loading…
x
Reference in New Issue
Block a user