Skip to content

Commit 68257e5

Browse files
committed
tried to update to read older saves && fixed error messages
1 parent f9e900f commit 68257e5

File tree

3 files changed

+27
-12
lines changed

3 files changed

+27
-12
lines changed

src/mods_handler.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -575,15 +575,15 @@ func LoadModsFromSaveHandler(w http.ResponseWriter, r *http.Request) {
575575
resp.Data, err = factorioSave.ReadHeader(SaveFileComplete)
576576

577577
if err == factorioSave.ErrorIncompatible {
578-
w.WriteHeader(500)
579-
resp.Data = fmt.Sprintf("%s", err)
578+
w.WriteHeader(http.StatusInternalServerError)
579+
resp.Data = fmt.Sprintf("%s<br>Only can read 0.16.x save files", err)
580580
if err := json.NewEncoder(w).Encode(resp); err != nil {
581581
log.Printf("Error in loadModsFromSave: %s", err)
582582
}
583583
return
584584
}
585585
if err != nil {
586-
w.WriteHeader(500)
586+
w.WriteHeader(http.StatusInternalServerError)
587587
resp.Data = fmt.Sprintf("Error in searchModPortal: %s", err)
588588
if err := json.NewEncoder(w).Encode(resp); err != nil {
589589
log.Printf("Error in loadModsFromSave: %s", err)

src/vendor/factorioSave/factorioSave.go

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,9 @@ type singleMod struct {
4949
}
5050

5151
var ErrorIncompatible = errors.New("incompatible save")
52-
52+
var data Header
5353

5454
func ReadHeader(filePath string) (Header, error) {
55-
var data Header
5655
var err error
5756

5857
datFile, err := openSave(filePath)
@@ -140,11 +139,19 @@ func ReadHeader(filePath string) (Header, error) {
140139
return data, err
141140
}
142141

143-
data.AllowNonAdminDebugOptions, err = readBool(datFile)
142+
Constraint, _ = semver.NewConstraint(">= 0.16.0")
143+
Used, err := data.FactorioVersion.CheckCompatibility(Constraint)
144144
if err != nil {
145-
log.Printf("Couldn't read allow_non_admin_debug_options: %s", err)
145+
log.Printf("Error checking if used: %s", err)
146146
return data, err
147147
}
148+
if Used {
149+
data.AllowNonAdminDebugOptions, err = readBool(datFile)
150+
if err != nil {
151+
log.Printf("Couldn't read allow_non_admin_debug_options: %s", err)
152+
return data, err
153+
}
154+
}
148155

149156
data.LoadedFrom, err = readVersionShort8(datFile)
150157
if err != nil {
@@ -180,6 +187,7 @@ func ReadHeader(filePath string) (Header, error) {
180187
data.Mods = append(data.Mods, SingleMod)
181188
}
182189

190+
log.Println(data)
183191
return data, nil
184192
}
185193

@@ -343,11 +351,19 @@ func readSingleMod(file io.ReadCloser) (singleMod, error) {
343351
return Mod, err
344352
}
345353

346-
Mod.CRC, err = readUint32(file)
354+
Constraint, _ := semver.NewConstraint("> 0.15.0")
355+
Used, err := data.FactorioVersion.CheckCompatibility(Constraint)
347356
if err != nil {
348-
log.Printf("error loading CRC: %s", err)
357+
log.Printf("Error checking used of CRC: %s", err)
349358
return Mod, err
350359
}
360+
if Used {
361+
Mod.CRC, err = readUint32(file)
362+
if err != nil {
363+
log.Printf("error loading CRC: %s", err)
364+
return Mod, err
365+
}
366+
}
351367

352368
return Mod, err
353369
}

ui/App/components/Mods/ModLoadSave.jsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,9 @@ class ModLoadSave extends React.Component {
8080
}, this.loadModsSwalHandler);
8181
},
8282
error: (jqXHR) => {
83-
let json_data = JSON.parse(jqXHR.responseJSON.data);
84-
8583
swal({
86-
title: json_data.detail,
84+
title: jqXHR.responseJSON.data,
85+
html: true,
8786
type: "error",
8887
});
8988
}

0 commit comments

Comments
 (0)