|
4 | 4 | using System.IO; |
5 | 5 | using System.Linq; |
6 | 6 | using System.Runtime.InteropServices; |
| 7 | +using System.Text.Json; |
7 | 8 | using System.Text.RegularExpressions; |
8 | 9 | using System.Threading; |
9 | 10 | using System.Threading.Tasks; |
|
21 | 22 | using Nitrox.Model.Serialization; |
22 | 23 | using Nitrox.Model.Server; |
23 | 24 | using Nitrox.Server.Subnautica.Models.Serialization; |
24 | | -using Nitrox.Server.Subnautica.Models.Serialization.World; |
25 | 25 |
|
26 | 26 | namespace Nitrox.Launcher.Models.Design; |
27 | 27 |
|
@@ -162,12 +162,26 @@ public bool RefreshFromDirectory(string saveDir) |
162 | 162 | Version serverVersion; |
163 | 163 | using (FileStream stream = new(saveFileVersion, FileMode.Open, FileAccess.Read, FileShare.Read)) |
164 | 164 | { |
165 | | - serverVersion = config.SerializerMode switch |
| 165 | + switch (config.SerializerMode) |
166 | 166 | { |
167 | | - ServerSerializerMode.JSON => new ServerJsonSerializer().Deserialize<SaveFileVersion>(stream)?.Version ?? NitroxEnvironment.Version, |
168 | | - ServerSerializerMode.PROTOBUF => new ServerProtoBufSerializer().Deserialize<SaveFileVersion>(stream)?.Version ?? NitroxEnvironment.Version, |
169 | | - _ => throw new NotImplementedException() |
170 | | - }; |
| 167 | + case ServerSerializerMode.JSON: |
| 168 | + SaveFileVersion versionModel; |
| 169 | + try |
| 170 | + { |
| 171 | + versionModel = JsonSerializer.Deserialize<SaveFileVersion>(stream); |
| 172 | + } |
| 173 | + catch (Exception) |
| 174 | + { |
| 175 | + versionModel = new SaveFileVersion(NitroxEnvironment.Version); |
| 176 | + } |
| 177 | + serverVersion = versionModel.Version; |
| 178 | + break; |
| 179 | + case ServerSerializerMode.PROTOBUF: |
| 180 | + serverVersion = new ServerProtoBufSerializer().Deserialize<SaveFileVersion>(stream)?.Version ?? NitroxEnvironment.Version; |
| 181 | + break; |
| 182 | + default: |
| 183 | + throw new NotImplementedException(); |
| 184 | + } |
171 | 185 | } |
172 | 186 |
|
173 | 187 | Name = Path.GetFileName(saveDir); |
|
0 commit comments