package infinitecraft import ( "compress/gzip" "context" "encoding/json" "fmt" "os" "time" ) func (m *Merger) Write(ctx context.Context, g Game) (out string, err error) { base := fmt.Sprintf("%s - %s", time.Now().Local().Format("2006-01-02T15_04_05"), g.Name) out = base + ".ic" var f *os.File if f, err = os.Create(out); err != nil { return } defer f.Close() gz := gzip.NewWriter(f) defer gz.Close() gz.Name = base gz.ModTime = time.Unix(g.Updated/1000, g.Updated%1000) gz.Comment = "merge by ic-merge" if g.Instances == nil { g.Instances = make([]any, 0) } enc := json.NewEncoder(gz) err = enc.Encode(g) return }