mirror of
https://github.com/packwiz/packwiz.git
synced 2025-04-19 13:06:30 +02:00
Hopefully handle snapshots (or at least 20w12a) correctly
This commit is contained in:
parent
1b21b91ac2
commit
6b04aaf74d
@ -28,6 +28,14 @@ var fileIDRegexes = [...]*regexp.Regexp{
|
||||
regexp.MustCompile("^https?://(?:www\\.)?curseforge\\.com/minecraft/mc-mods/(.+)/download/(\\d+)"),
|
||||
}
|
||||
|
||||
// TODO: fix this later
|
||||
func fixThisLater(mcVersion string) string {
|
||||
if mcVersion == "20w12a" {
|
||||
return "1.16-Snapshot"
|
||||
}
|
||||
return mcVersion
|
||||
}
|
||||
|
||||
func getFileIDsFromString(mod string) (bool, int, int, error) {
|
||||
for _, v := range fileIDRegexes {
|
||||
matches := v.FindStringSubmatch(mod)
|
||||
@ -196,7 +204,7 @@ func (u cfUpdater) CheckUpdate(mods []core.Mod, mcVersion string) ([]core.Update
|
||||
// TODO: change to timestamp-based comparison??
|
||||
// TODO: manage alpha/beta/release correctly, check update channel?
|
||||
// Choose "newest" version by largest ID
|
||||
if file.GameVersion == mcVersion && file.ID > fileID {
|
||||
if file.GameVersion == fixThisLater(mcVersion) && file.ID > fileID {
|
||||
updateAvailable = true
|
||||
fileID = file.ID
|
||||
fileName = file.Name
|
||||
|
@ -268,7 +268,7 @@ func (r modResultsList) Len() int {
|
||||
func searchCurseforgeInternal(args []string, mcVersion string) (bool, modInfo) {
|
||||
fmt.Println("Searching CurseForge...")
|
||||
searchTerm := strings.Join(args, " ")
|
||||
results, err := getSearch(searchTerm, mcVersion)
|
||||
results, err := getSearch(searchTerm, fixThisLater(mcVersion))
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
@ -326,12 +326,36 @@ func searchCurseforgeInternal(args []string, mcVersion string) (bool, modInfo) {
|
||||
}
|
||||
}
|
||||
|
||||
func sliceContainsString(slice []string, elem string) bool {
|
||||
for _, a := range slice {
|
||||
if a == elem {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func getLatestFile(modInfoData modInfo, mcVersion string, fileID int) (modFileInfo, error) {
|
||||
// For snapshots, curseforge doesn't put them in GameVersionLatestFiles
|
||||
if fileID == 0 {
|
||||
var fileInfoData modFileInfo
|
||||
for _, v := range modInfoData.LatestFiles {
|
||||
// Choose "newest" version by largest ID
|
||||
if sliceContainsString(v.GameVersions, fixThisLater(mcVersion)) && v.ID > fileID {
|
||||
fileID = v.ID
|
||||
fileInfoData = v
|
||||
}
|
||||
}
|
||||
if fileID != 0 {
|
||||
return fileInfoData, nil
|
||||
}
|
||||
}
|
||||
|
||||
if fileID == 0 {
|
||||
// TODO: change to timestamp-based comparison??
|
||||
for _, v := range modInfoData.GameVersionLatestFiles {
|
||||
// Choose "newest" version by largest ID
|
||||
if v.GameVersion == mcVersion && v.ID > fileID {
|
||||
if v.GameVersion == fixThisLater(mcVersion) && v.ID > fileID {
|
||||
fileID = v.ID
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user