mirror of
				https://github.com/packwiz/packwiz.git
				synced 2025-11-04 12:04:31 +01:00 
			
		
		
		
	Improve Modrinth command errors
This commit is contained in:
		@@ -144,7 +144,7 @@ func installMod(mod Mod, pack core.Pack) error {
 | 
			
		||||
 | 
			
		||||
	latestVersion, err := getLatestVersion(mod.ID, pack)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
		return fmt.Errorf("failed to get latest version: %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	if latestVersion.ID == "" {
 | 
			
		||||
		return errors.New("mod is not available for this Minecraft version (use the acceptable-game-versions option to accept more) or mod loader")
 | 
			
		||||
@@ -249,12 +249,12 @@ func installVersion(mod Mod, version Version, pack core.Pack) error {
 | 
			
		||||
func installVersionById(versionId string, pack core.Pack) error {
 | 
			
		||||
	version, err := fetchVersion(versionId)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
		return fmt.Errorf("failed to fetch version %s: %v", versionId, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	mod, err := fetchMod(version.ModID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
		return fmt.Errorf("failed to fetch mod %s: %v", version.ModID, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return installVersion(mod, version, pack)
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ package modrinth
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"github.com/spf13/viper"
 | 
			
		||||
	"golang.org/x/exp/slices"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
@@ -194,7 +195,11 @@ func getLatestVersion(modID string, pack core.Pack) (Version, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if resp.StatusCode == 404 {
 | 
			
		||||
		return Version{}, errors.New("couldn't find mod: " + modID)
 | 
			
		||||
		return Version{}, fmt.Errorf("mod not found (for URL %v)", baseUrl)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if resp.StatusCode != 200 {
 | 
			
		||||
		return Version{}, fmt.Errorf("invalid response status %v for URL %v", resp.Status, baseUrl)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
@@ -253,7 +258,11 @@ func fetchMod(modID string) (Mod, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if resp.StatusCode == 404 {
 | 
			
		||||
		return mod, errors.New("couldn't find mod: " + modID)
 | 
			
		||||
		return mod, fmt.Errorf("mod not found (for URL %v)", modrinthApiUrl+"mod/"+modID)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if resp.StatusCode != 200 {
 | 
			
		||||
		return mod, fmt.Errorf("invalid response status %v for URL %v", resp.Status, modrinthApiUrl+"mod/"+modID)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
@@ -283,7 +292,11 @@ func fetchVersion(versionId string) (Version, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if resp.StatusCode == 404 {
 | 
			
		||||
		return version, errors.New("couldn't find version: " + versionId)
 | 
			
		||||
		return version, fmt.Errorf("version not found (for URL %v)", modrinthApiUrl+"version/"+versionId)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if resp.StatusCode != 200 {
 | 
			
		||||
		return version, fmt.Errorf("invalid response status %v for URL %v", resp.Status, modrinthApiUrl+"version/"+versionId)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	defer resp.Body.Close()
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ package modrinth
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/mitchellh/mapstructure"
 | 
			
		||||
	"github.com/packwiz/packwiz/core"
 | 
			
		||||
@@ -45,7 +46,7 @@ func (u mrUpdater) CheckUpdate(mods []core.Mod, mcVersion string, pack core.Pack
 | 
			
		||||
 | 
			
		||||
		newVersion, err := getLatestVersion(data.ModID, pack)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			results[i] = core.UpdateCheck{Error: err}
 | 
			
		||||
			results[i] = core.UpdateCheck{Error: fmt.Errorf("failed to get latest version: %v", err)}
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user