|
6 | 6 | using ColorMC.Core.Objs.Loader; |
7 | 7 | using ColorMC.Core.Objs.Minecraft; |
8 | 8 | using ColorMC.Core.Objs.OtherLaunch; |
| 9 | +using ColorMC.Core.Objs.ServerPack; |
9 | 10 | using ColorMC.Core.Utils; |
10 | 11 | using SharpCompress.Archives.Zip; |
11 | 12 |
|
@@ -1126,14 +1127,70 @@ public static GameSettingObj ToColorMC(this HMCLServerObj obj) |
1126 | 1127 | Modpack = true |
1127 | 1128 | }; |
1128 | 1129 |
|
1129 | | - if (!string.IsNullOrWhiteSpace(obj.Author)) |
| 1130 | + //if (!string.IsNullOrWhiteSpace(obj.Author)) |
| 1131 | + //{ |
| 1132 | + // game.Name += "-" + obj.Author; |
| 1133 | + //} |
| 1134 | + //if (!string.IsNullOrWhiteSpace(obj.Version)) |
| 1135 | + //{ |
| 1136 | + // game.Name += "-" + obj.Version; |
| 1137 | + //} |
| 1138 | + foreach (var item in obj.Addons) |
1130 | 1139 | { |
1131 | | - game.Name += "-" + obj.Author; |
| 1140 | + if (item.Id == "game") |
| 1141 | + { |
| 1142 | + game.Version = item.Version; |
| 1143 | + } |
| 1144 | + else if (item.Id == "forge") |
| 1145 | + { |
| 1146 | + game.Loader = Loaders.Forge; |
| 1147 | + game.LoaderVersion = item.Version; |
| 1148 | + } |
| 1149 | + else if (item.Id == "neoforge") |
| 1150 | + { |
| 1151 | + game.Loader = Loaders.NeoForge; |
| 1152 | + game.LoaderVersion = item.Version; |
| 1153 | + } |
| 1154 | + else if (item.Id == "fabric") |
| 1155 | + { |
| 1156 | + game.Loader = Loaders.Fabric; |
| 1157 | + game.LoaderVersion = item.Version; |
| 1158 | + } |
| 1159 | + else if (item.Id == "quilt") |
| 1160 | + { |
| 1161 | + game.Loader = Loaders.Quilt; |
| 1162 | + game.LoaderVersion = item.Version; |
| 1163 | + } |
1132 | 1164 | } |
1133 | | - if (!string.IsNullOrWhiteSpace(obj.Version)) |
| 1165 | + |
| 1166 | + return game; |
| 1167 | + } |
| 1168 | + |
| 1169 | + /// <summary> |
| 1170 | + /// HMCL配置转ColorMC |
| 1171 | + /// </summary> |
| 1172 | + /// <param name="obj">HMCL储存</param> |
| 1173 | + /// <returns>游戏实例</returns> |
| 1174 | + public static ServerPackObj ToServerPack(this HMCLServerObj obj) |
| 1175 | + { |
| 1176 | + var game = new ServerPackObj() |
1134 | 1177 | { |
1135 | | - game.Name += "-" + obj.Version; |
1136 | | - } |
| 1178 | + Name = obj.Name, |
| 1179 | + Loader = Loaders.Normal, |
| 1180 | + PackVersion = obj.Version, |
| 1181 | + Mod = [], |
| 1182 | + Resourcepack = [], |
| 1183 | + Config = [] |
| 1184 | + }; |
| 1185 | + |
| 1186 | + //if (!string.IsNullOrWhiteSpace(obj.Author)) |
| 1187 | + //{ |
| 1188 | + // game.Name += "-" + obj.Author; |
| 1189 | + //} |
| 1190 | + //if (!string.IsNullOrWhiteSpace(obj.Version)) |
| 1191 | + //{ |
| 1192 | + // game.Name += "-" + obj.Version; |
| 1193 | + //} |
1137 | 1194 | foreach (var item in obj.Addons) |
1138 | 1195 | { |
1139 | 1196 | if (item.Id == "game") |
@@ -1162,6 +1219,24 @@ public static GameSettingObj ToColorMC(this HMCLServerObj obj) |
1162 | 1219 | } |
1163 | 1220 | } |
1164 | 1221 |
|
| 1222 | + var url = obj.FileApi; |
| 1223 | + if (!url.EndsWith('/')) |
| 1224 | + { |
| 1225 | + url += '/'; |
| 1226 | + } |
| 1227 | + |
| 1228 | + foreach (var item in obj.Files) |
| 1229 | + { |
| 1230 | + var file1 = Path.GetFileName(item.Path); |
| 1231 | + game.Config.Add(new ConfigPackObj |
| 1232 | + { |
| 1233 | + Group = item.Path.Replace(file1, ""), |
| 1234 | + FileName = file1, |
| 1235 | + Sha1 = item.Hash, |
| 1236 | + Url = url + Names.NameOverrideDir + "/" + item.Path |
| 1237 | + }); |
| 1238 | + } |
| 1239 | + |
1165 | 1240 | return game; |
1166 | 1241 | } |
1167 | 1242 | } |
0 commit comments