diff --git a/.gitignore b/.gitignore
index 5d381cc..91df70d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -160,3 +160,8 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
+
+*~
+./srv*/*
+*.jar
+*.jar.pack.xz
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/HeliosDistributionGenerator.iml b/.idea/HeliosDistributionGenerator.iml
new file mode 100644
index 0000000..74d515a
--- /dev/null
+++ b/.idea/HeliosDistributionGenerator.iml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..048feb7
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..1b96c86
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/distribution.json b/distribution.json
new file mode 100644
index 0000000..93fb435
--- /dev/null
+++ b/distribution.json
@@ -0,0 +1,417 @@
+{
+ "version": "1.0.0",
+ "discord": {
+ "clientId": "1.0.0",
+ "smallImageText": "Skirda",
+ "smallImageKey": "seal-circle"
+ },
+ "java": {
+ "oracle": "http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html"
+ },
+ "rss": "heh.mda",
+ "servers": [
+ {
+ "id": "SkirdaTesting-1.12.2",
+ "name": "Skirda Test Server",
+ "description": "Сплошные баги блять",
+ "icon": "https://skirda.gregbrzezinski.com/skirda-test-server-icon.jpg",
+ "version": "4.6.5",
+ "address": "skirda.gregbrzezinski.com:45002",
+ "minecraftVersion": "1.12.2",
+ "discord_shortId": "Skirda Minecraft Server",
+ "discord_largeImageText": "Skirda 1.12.2 Minecraft Server",
+ "discord_largeImageKey": "skirda-testing",
+ "mainServer": "false",
+ "autoconnect": "true",
+ "modules": [
+ {
+ "id": "net.minecraftforge:forge:1.12.2-14.23.5.2847",
+ "name": "Minecraft Forge",
+ "type": "ForgeHosted",
+ "artifact": {
+ "size": 4884700,
+ "MD5": "90734a5a713e24902d24c45c15caa42c",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/forge/forge-1.12.2-14.23.5.2859-universal.jar"
+ },
+ "subModules": [
+ {
+ "id": "net.minecraft:launchwrapper:1.12",
+ "name": "Mojang (LaunchWrapper)",
+ "type": "Library",
+ "artifact": {
+ "size": 32999,
+ "MD5": "934b2d91c7c5be4a49577c9e6b40e8da",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/launchwrapper-1.12.jar"
+ }
+ },
+ {
+ "id": "org.ow2.asm:asm-all:5.2",
+ "name": "Mojang (ASM)",
+ "type": "Library",
+ "artifact": {
+ "size": 247787,
+ "MD5": "f5ad16c7f0338b541978b0430d51dc83",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/asm-all-5.2.jar"
+ }
+ },
+ {
+ "id": "jline:jline:2.13",
+ "name": "Mojang (jline)",
+ "type": "Library",
+ "artifact": {
+ "size": 248566,
+ "MD5": "f251ba666cccb260ff7215b2cbeee8d4",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jline-2.13.jar"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-library:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-library)",
+ "type": "Library",
+ "artifact": {
+ "size": 1474672,
+ "MD5": "379c15c4f724421c6d5d7aecedaf87a6",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-library-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-compiler:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-compiler)",
+ "type": "Library",
+ "artifact": {
+ "size": 3076920,
+ "MD5": "7d89e952f2d5c74577310cd2c28e3f20",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-compiler-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-actors-migration_2.11:1.1.0@jar.pack.xz",
+ "name": "Minecraft Forge (scala-actors-migration)",
+ "type": "Library",
+ "artifact": {
+ "size": 21324,
+ "MD5": "04e3428b2600ace33c7ae2bf1f6c0a4c",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-actors-migration_2.11-1.1.0.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-continuations-library)",
+ "type": "Library",
+ "artifact": {
+ "size": 7956,
+ "MD5": "ed9b1d27aba8ac4090a3749c4dfc895a",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-library_2.11-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-continuations-plugin)",
+ "type": "Library",
+ "artifact": {
+ "size": 46140,
+ "MD5": "a8232db22a72a981de6b1399eb86dff7",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-plugin_2.11.1-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-parser-combinators_2.11:1.0.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-parser-combinators)",
+ "type": "Library",
+ "artifact": {
+ "size": 85568,
+ "MD5": "2e50a7df17680daadacca69f07f8a16d",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-parser-combinators_2.11-1.0.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-reflect:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-reflect)",
+ "type": "Library",
+ "artifact": {
+ "size": 1070312,
+ "MD5": "84e5dc81c10e2bd74c579c9d0332fdd9",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-reflect-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-swing_2.11:1.0.1",
+ "name": "Minecraft Forge (scala-swing)",
+ "type": "Library",
+ "artifact": {
+ "size": 736795,
+ "MD5": "1d360289e697022a3f57abaad344b28f",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-swing_2.11-1.0.1.jar"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-xml_2.11:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-xml)",
+ "type": "Library",
+ "artifact": {
+ "size": 217812,
+ "MD5": "cc891b094a4c32dedc56bfefe9b072ff",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-xml_2.11-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "com.typesafe.akka:akka-actor_2.11:2.3.3@jar.pack.xz",
+ "name": "Minecraft Forge (akka-actor)",
+ "type": "Library",
+ "artifact": {
+ "size": 746612,
+ "MD5": "25cb22c3078e9fb3f7a861c912924862",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/akka-actor_2.11-2.3.3.jar.pack.xz"
+ }
+ },
+ {
+ "id": "com.typesafe:config:1.2.1@jar.pack.xz",
+ "name": "Minecraft Forge (typesafe-config)",
+ "type": "Library",
+ "artifact": {
+ "size": 56636,
+ "MD5": "10ec4ccabc4e68aac9cf87165ead5d7d",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/config-1.2.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "lzma:lzma:0.0.1",
+ "name": "Mojang (LZMA)",
+ "type": "Library",
+ "artifact": {
+ "size": 5762,
+ "MD5": "a3e3c3186e41c4a1a3027ba2bb23cdc6",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/lzma-0.0.1.jar"
+ }
+ },
+ {
+ "id": "net.sf.trove4j:trove4j:3.0.3",
+ "name": "Trove4J",
+ "type": "Library",
+ "artifact": {
+ "size": 2523218,
+ "MD5": "8fc4d4e0129244f9fd39650c5f30feb2",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/trove4j-3.0.3.jar"
+ }
+ },
+ {
+ "id": "java3d:vecmath:1.5.2",
+ "name": "Vecmath",
+ "type": "Library",
+ "artifact": {
+ "size": 318956,
+ "MD5": "e5d2b7f46c4800a32f62ce75676a5710",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/vecmath-1.5.2.jar"
+ }
+ },
+ {
+ "id": "net.sf.jopt-simple:jopt-simple:5.0.3",
+ "name": "Jopt-simple",
+ "type": "Library",
+ "artifact": {
+ "size": 78175,
+ "MD5": "0a5ec84e23df9d7cfb4063bc55f2744c",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jopt-simple-5.0.3.jar"
+ }
+ },
+ {
+ "id": "org.apache.maven:maven-artifact:3.5.3",
+ "name": "maven-artifact",
+ "type": "Library",
+ "artifact": {
+ "size": 54961,
+ "MD5": "7741ebf29690ee7d9dde9cf4376347fc",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/maven-artifact-3.5.3.jar"
+ }
+ },
+ {
+ "id": "net.minecraftforge:MercuriusUpdater:1.12.2",
+ "name": "MercuriusUpdater",
+ "type": "Library",
+ "artifact": {
+ "size": 15098,
+ "MD5": "6eb9e61097bee3103a2fdc42746b76a4",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/MercuriusUpdater-1.12.2.jar"
+ }
+ }
+ ]
+ },
+ {
+ "id": "none:IndustrialCraft2:2.8.170",
+ "name": "Industrialcraft 2",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 8356436,
+ "MD5": "d4f952c94cacdd280abbb73f072b2424",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:IndustrialCraft2:2.8.170.jar"
+ }
+ },
+ {
+ "id": "none:ImmersiveVehicles:21.3.0",
+ "name": "Immersive Vehicles",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 4346535,
+ "MD5": "320da7aea4ccea568e8d9ad3c0a48133",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:ImmersiveVehicles:21.3.0.jar"
+ }
+ },
+ {
+ "id": "none:MTSOfficialPack:23",
+ "name": "IV Official pack",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 4496217,
+ "MD5": "e84bddb501c139c3a4977587d597fe18",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:MTSOfficialPack:23.jar"
+ }
+ },
+ {
+ "id": "none:ForgeMultipart:2.6.2.83",
+ "name": "Forge Multipart",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 1304958,
+ "MD5": "e45e04bc38dc373aaef0415c2e2d441d",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:ForgeMultipart:2.6.2.83.jar"
+ }
+ },
+ {
+ "id": "none:Computronics:1.6.6",
+ "name": "Computronics",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 1291533,
+ "MD5": "5e88b6e4939690a2067bf31f870a5577",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:Computronics:1.6.6.jar"
+ }
+ },
+ {
+ "id": "none:BiomesOPlenty:7.0.1.2441",
+ "name": "BiomesOPlenty",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 4696621,
+ "MD5": "61fcc4ffff205ca261e61d6772debc4d",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:BiomesOPlenty:7.0.1.2441.jar"
+ }
+ },
+ {
+ "id": "none:GentleHarvest:b1",
+ "name": "Gentle Harvest",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 4656,
+ "MD5": "0ac6a8a1c6ff6e1cd2e3b63c8cbb28f6",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:GentleHarvest:b1.jar"
+ }
+ },
+ {
+ "id": "none:RTG:6.1.0.0",
+ "name": "Realistic Terrain Generator",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 2075023,
+ "MD5": "08de37000d2c97ffc9c6da61f3cd6aaa",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:RTG:6.1.0.0.jar"
+ }
+ },
+ {
+ "id": "none:BuildCraft:7.99.24.8",
+ "name": "Build Craft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 4879732,
+ "MD5": "df73e94d29b8c6bde42c451ff6018761",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:BuildCraft:7.99.24.8.jar"
+ }
+ },
+ {
+ "id": "none:GeographiCraft:0.8.9b",
+ "name": "Geographic Craft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 402774,
+ "MD5": "0b2165b05a7b3851273691e4126b2e4e",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:GeographiCraft:0.8.9b.jar"
+ }
+ },
+ {
+ "id": "none:ArchitectureCraft:3.95",
+ "name": "Architecture Craft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 920876,
+ "MD5": "b5bdcfd17da0675159d8903d016651a1",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:ArchitectureCraft:3.95.jar"
+ }
+ },
+ {
+ "id": "none:Dynmap:3.3.2",
+ "name": "Dynmap",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 9856939,
+ "MD5": "7680073beb90b1ecf87acb77d8ac634d",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:Dynmap:3.3.2.jar"
+ }
+ },
+ {
+ "id": "none:SereneSeasons:1.2.18",
+ "name": "Serene Seasons",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 185187,
+ "MD5": "ef89fab62d1914ea0e25d2c31b453695",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:SereneSeasons:1.2.18.jar"
+ }
+ },
+ {
+ "id": "none:CodeChickenLib:3.2.3.358",
+ "name": "Code Chicken Lib",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 704330,
+ "MD5": "3b5e44db5ac96fb23a439590b6731a31",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:CodeChickenLib:3.2.3.358.jar"
+ }
+ },
+ {
+ "id": "none:OpenComputers:1.7.5.192",
+ "name": "OpenComputers",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 15643758,
+ "MD5": "1da9dd8478ba6d682f2787746776e18a",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:OpenComputers:1.7.5.192.jar"
+ }
+ },
+ {
+ "id": "MtsOfficialPack23.jar",
+ "name": "Mts pack",
+ "type": "File",
+ "artifact": {
+ "size": 1973,
+ "path": "mods/MtsOfficialPack23.jar",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/mods/none:MTSOfficialPack:23.jar"
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/main.py b/main.py
index 02f51d4..e3f76b7 100644
--- a/main.py
+++ b/main.py
@@ -13,6 +13,9 @@ def calculate_md5(file_path):
hash_md5.update(chunk)
return hash_md5.hexdigest()
+def get_file_size(file_path):
+
+ return os.stat(file_path).st_size
def read_config(config_path):
config = ConfigParser()
@@ -25,19 +28,30 @@ def temp_forge_json():
data = json.load(json_file)
return data
+def temp_forge_libs_json():
+ with open('temp_forge_libs.json') as json_file:
+ data = json.load(json_file)
+ return data
+
def generate_forge_list(forge_path, download_url):
forge_jar = scan_forge_folder(forge_path)
- forge_submodules_list = generate_lib_list(os.path.join(forge_path, 'libs'), download_url)
+ forge_full_path = os.path.join(forge_path, forge_jar)
+ #forge_submodules_list = generate_lib_list(os.path.join(forge_path, 'libs'), download_url)
+ forge_submodules_list = temp_forge_libs_json()
forge_module = [{
- 'id': 'net.minecraftForge:forge:' + forge_jar.split('.')[0],
+ 'id': 'net.minecraftForge:forge:' + forge_jar[:-4],
'name': 'Minecraft Forge',
'type': 'ForgeHosted',
+ 'artifact': {
+ 'size': get_file_size(forge_full_path),
+ 'MD5': calculate_md5(forge_full_path),
+ 'url': download_url + 'forge/' + forge_jar
+ },
'subModules': forge_submodules_list
}]
- return (forge_module)
-
-
+ forge_module = [temp_forge_json()]
+ return forge_module
def parse_servers_config(config: ConfigParser):
@@ -47,12 +61,11 @@ def parse_servers_config(config: ConfigParser):
if section.split(' ')[0] == 'Server' or section.split(' ')[0] == 'server':
download_url = config.get(section, 'download_url')
server_mods_path = os.path.join(config.get(section, 'path'), 'mods')
- server_optional_mods_path = config.get(section, 'optional_mods_path')
+ server_client_mods_path = config.get(section, 'client_mods_path')
forge_path = config.get(section, 'forge_reference_folder')
-
forge_required_modules = generate_mod_list(server_mods_path, download_url, True)
- forge_optionals_modules = generate_mod_list(server_optional_mods_path, download_url, False)
+ forge_optionals_modules = []# generate_mod_list(server_client_mods_path, download_url, False)
forge_libs = generate_forge_list(forge_path, download_url)
new_server_modules = forge_libs + forge_required_modules + forge_optionals_modules
@@ -68,8 +81,8 @@ def parse_servers_config(config: ConfigParser):
'discord_largeImageKey': (config.get(section, 'discord_largeImageKey')),
'mainServer': (config.get(section, 'mainServer')),
'autoconnect': (config.get(section, 'autoconnect')),
- '_path': (config.get(section, 'path')),
- '_download_url': download_url,
+ #'_path': (config.get(section, 'path'))
+ #'_download_url': download_url,
'modules': new_server_modules
}
servers.append(new_server)
@@ -89,30 +102,34 @@ def list_files_in_folder(path):
return f
+def get_mod_name(mod_id):
+ try:
+ return config.get('Mods Names', mod_id)
+ except:
+ print("No mod name for " + mod_id)
+ return mod_id
+
+
def generate_mod_list(mods_path, download_url, isRequired):
mods_file_list = list_files_in_folder(os.path.join(mods_path))
-
mod_list = []
- # mod_list.append(temp_forge_json())
- for mod in mods_file_list:
- path_to_mod = os.path.join(mods_path, mod)
- mod = mod[:-4]
- parsed_mod = mod.split('_')
- mod_id = parsed_mod[0]
- parsed_mod[0] = parsed_mod[0].split(':')
- parsed_mod[1] = parsed_mod[1].replace('-', ' ')
+ for mod_file_name in mods_file_list:
+ path_to_mod = os.path.join(mods_path, mod_file_name)
+ parsed_mod = mod_file_name[:-4]
+ parsed_mod = parsed_mod.split(':')
+ mod_id = parsed_mod[1]
if parsed_mod[-1] is not None:
if parsed_mod[-1] == 'ServerSide':
continue
new_mod = {
- 'id': mod_id,
- 'name': parsed_mod[1],
+ 'id': mod_file_name[:-4],
+ 'name': get_mod_name(parsed_mod[1]),
'type': 'ForgeMod',
'required': isRequired,
- 'artifact': {'size': sys.getsizeof(path_to_mod),
+ 'artifact': {'size': get_file_size(path_to_mod),
'MD5': calculate_md5(path_to_mod),
- 'url': download_url + mod + '.jar'
+ 'url': download_url + 'mods/' + mod_file_name
}
}
mod_list.append(new_mod)
@@ -122,21 +139,22 @@ def generate_mod_list(mods_path, download_url, isRequired):
def generate_lib_list(libs_path, download_url):
libs_file_list = list_files_in_folder(os.path.join(libs_path))
lib_list = []
- for lib in libs_file_list:
- path_to_lib = os.path.join(libs_path, lib)
- parsed_lib = lib.split(':')
- lib_id = parsed_lib[1]
+ for lib_file_name in libs_file_list:
+ path_to_lib = os.path.join(libs_path, lib_file_name)
- if lib.split('.')[-1] == 'xz':
- lib_id += "@jar.pack.xz"
+
+ if lib_file_name[-2:] == 'xz':
+ lib_name = lib_file_name[:-12] + "@jar.pack.xz"
+ else:
+ lib_name = lib_file_name[:-4]
new_lib = {
- 'id': lib_id,
- 'name': parsed_lib[1],
+ 'id': lib_name,
+ 'name': lib_name,
'type': 'Library',
- 'artifact': {'size': sys.getsizeof(path_to_lib),
+ 'artifact': {'size': get_file_size(path_to_lib),
'MD5': calculate_md5(path_to_lib),
- 'url': download_url + lib
+ 'url': download_url + 'libs/' + lib_file_name
}
}
lib_list.append(new_lib)
@@ -167,7 +185,9 @@ if __name__ == '__main__':
# mod_list = generate_mod_list(servers_list)
distribution = generate_json(config)
- pprint(distribution)
+ # pprint(distribution)
with open('distribution.json', 'w', encoding='utf-8') as f:
+ print("print distribution to " + f.name)
json.dump(distribution, f, ensure_ascii=False, indent=4)
+
diff --git a/servers.ini b/servers.ini
new file mode 100644
index 0000000..33b0b92
--- /dev/null
+++ b/servers.ini
@@ -0,0 +1,66 @@
+[Basic]
+version = 1.0.0
+discord_clientId = 1321321321
+discord_smallImageText = Skirda
+dicord_smallImageKey = seal-circle
+java = http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
+rss = heh.mda
+
+
+[Server Testing]
+id = SkirdaTesting-1.12.2
+name = Skirda Test Server
+description = Сплошные баги блять
+icon = https://skirda.gregbrzezinski.com/skirda-test-server-icon.jpg
+version = 4.6.5
+address = skirda.gregbrzezinski.com:45002
+minecraftVersion = 1.12.2
+discord_shortId = Skirda Minecraft Server
+discord_largeImageText = Skirda 1.12.2 Minecraft Server
+discord_largeImageKey = skirda-testing
+mainServer = false
+autoconnect = true
+path = /home/dart/skirda/
+download_url = https://skirda.gregbrzezinski.com/1.12.2/
+client_mods_path = ./opt_mods
+forge_reference_folder = ./forge
+ignore_mods = DynmapBlockScan
+#
+#[Server Production]
+#id = SkirdaProduction-1.12.2
+#name = Skirda Main Server
+#description = Энджой, ёпта
+#icon = https://skirda.gregbrzezinski.com/skirda-test-server-icon.jpg
+#version = 4.6.5
+#address = skirda.gregbrzezinski.com:45000
+#minecraftVersion = 1.12.2
+#discord_shortId = Skirda Minecraft Server
+#discord_largeImageText = Skirda 1.12.2 Minecraft Server
+#discord_largeImageKey = skirda-testing
+#mainServer = false
+#autoconnect = true
+#path = ./srv_1
+#download_url = https://skirda.gregbrzezinski.com/mods/
+#optional_mods_path = ./opt_mods
+
+
+[Mods Names]
+architecturecraft = Architecture Craft
+BiomesOPlenty = BiomesOPlenty
+bspkrscore = bspkrscore
+BuildCraft = Build Craft
+CodeChickenLib = Code Chicken Lib
+Computronics = Computronics
+Dynmap = Dynmap
+ForgeMultipart = Forge Multipart
+GentleHarvest = Gentle Harvest
+GeographiCraft = Geographic Craft
+ImmersiveVehicles = Immersive Vehicles
+IndustrialCraft2 = Industrialcraft 2
+MTSOfficialPack = IV Official pack
+MTSOfficial = Mts Official planes
+OpenComputers = OpenComputers
+RailCraft = Railcraft
+RTG = Realistic Terrain Generator
+SereneSeasons = Serene Seasons
+
diff --git a/srv_1/ServerDistribution.ini b/srv_1/ServerDistribution.ini
new file mode 100644
index 0000000..41abec6
--- /dev/null
+++ b/srv_1/ServerDistribution.ini
@@ -0,0 +1 @@
+[Forge]
diff --git a/temp_forge.json b/temp_forge.json
new file mode 100644
index 0000000..9dd30b3
--- /dev/null
+++ b/temp_forge.json
@@ -0,0 +1,212 @@
+{
+ "id": "net.minecraftforge:forge:1.12.2-14.23.5.2847",
+ "name": "Minecraft Forge",
+ "type": "ForgeHosted",
+ "artifact": {
+ "size": 4884700,
+ "MD5": "90734a5a713e24902d24c45c15caa42c",
+ "url": "https://skirda.gregbrzezinski.com/1.12.2/forge/forge-1.12.2-14.23.5.2859-universal.jar"
+ },
+ "subModules": [
+ {
+ "id": "net.minecraft:launchwrapper:1.12",
+ "name": "Mojang (LaunchWrapper)",
+ "type": "Library",
+ "artifact": {
+ "size": 32999,
+ "MD5": "934b2d91c7c5be4a49577c9e6b40e8da",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/launchwrapper-1.12.jar"
+ }
+ },
+ {
+ "id": "org.ow2.asm:asm-all:5.2",
+ "name": "Mojang (ASM)",
+ "type": "Library",
+ "artifact": {
+ "size": 247787,
+ "MD5": "f5ad16c7f0338b541978b0430d51dc83",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/asm-all-5.2.jar"
+ }
+ },
+ {
+ "id": "jline:jline:2.13",
+ "name": "Mojang (jline)",
+ "type": "Library",
+ "artifact": {
+ "size": 248566,
+ "MD5": "f251ba666cccb260ff7215b2cbeee8d4",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jline-2.13.jar"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-library:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-library)",
+ "type": "Library",
+ "artifact": {
+ "size": 1474672,
+ "MD5": "379c15c4f724421c6d5d7aecedaf87a6",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-library-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-compiler:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-compiler)",
+ "type": "Library",
+ "artifact": {
+ "size": 3076920,
+ "MD5": "7d89e952f2d5c74577310cd2c28e3f20",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-compiler-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-actors-migration_2.11:1.1.0@jar.pack.xz",
+ "name": "Minecraft Forge (scala-actors-migration)",
+ "type": "Library",
+ "artifact": {
+ "size": 21324,
+ "MD5": "04e3428b2600ace33c7ae2bf1f6c0a4c",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-actors-migration_2.11-1.1.0.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-continuations-library)",
+ "type": "Library",
+ "artifact": {
+ "size": 7956,
+ "MD5": "ed9b1d27aba8ac4090a3749c4dfc895a",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-library_2.11-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-continuations-plugin)",
+ "type": "Library",
+ "artifact": {
+ "size": 46140,
+ "MD5": "a8232db22a72a981de6b1399eb86dff7",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-plugin_2.11.1-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-parser-combinators_2.11:1.0.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-parser-combinators)",
+ "type": "Library",
+ "artifact": {
+ "size": 85568,
+ "MD5": "2e50a7df17680daadacca69f07f8a16d",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-parser-combinators_2.11-1.0.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-reflect:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-reflect)",
+ "type": "Library",
+ "artifact": {
+ "size": 1070312,
+ "MD5": "84e5dc81c10e2bd74c579c9d0332fdd9",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-reflect-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-swing_2.11:1.0.1",
+ "name": "Minecraft Forge (scala-swing)",
+ "type": "Library",
+ "artifact": {
+ "size": 736795,
+ "MD5": "1d360289e697022a3f57abaad344b28f",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-swing_2.11-1.0.1.jar"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-xml_2.11:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-xml)",
+ "type": "Library",
+ "artifact": {
+ "size": 217812,
+ "MD5": "cc891b094a4c32dedc56bfefe9b072ff",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-xml_2.11-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "com.typesafe.akka:akka-actor_2.11:2.3.3@jar.pack.xz",
+ "name": "Minecraft Forge (akka-actor)",
+ "type": "Library",
+ "artifact": {
+ "size": 746612,
+ "MD5": "25cb22c3078e9fb3f7a861c912924862",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/akka-actor_2.11-2.3.3.jar.pack.xz"
+ }
+ },
+ {
+ "id": "com.typesafe:config:1.2.1@jar.pack.xz",
+ "name": "Minecraft Forge (typesafe-config)",
+ "type": "Library",
+ "artifact": {
+ "size": 56636,
+ "MD5": "10ec4ccabc4e68aac9cf87165ead5d7d",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/config-1.2.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "lzma:lzma:0.0.1",
+ "name": "Mojang (LZMA)",
+ "type": "Library",
+ "artifact": {
+ "size": 5762,
+ "MD5": "a3e3c3186e41c4a1a3027ba2bb23cdc6",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/lzma-0.0.1.jar"
+ }
+ },
+ {
+ "id": "net.sf.trove4j:trove4j:3.0.3",
+ "name": "Trove4J",
+ "type": "Library",
+ "artifact": {
+ "size": 2523218,
+ "MD5": "8fc4d4e0129244f9fd39650c5f30feb2",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/trove4j-3.0.3.jar"
+ }
+ },
+ {
+ "id": "java3d:vecmath:1.5.2",
+ "name": "Vecmath",
+ "type": "Library",
+ "artifact": {
+ "size": 318956,
+ "MD5": "e5d2b7f46c4800a32f62ce75676a5710",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/vecmath-1.5.2.jar"
+ }
+ },
+ {
+ "id": "net.sf.jopt-simple:jopt-simple:5.0.3",
+ "name": "Jopt-simple",
+ "type": "Library",
+ "artifact": {
+ "size": 78175,
+ "MD5": "0a5ec84e23df9d7cfb4063bc55f2744c",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jopt-simple-5.0.3.jar"
+ }
+ },
+ {
+ "id": "org.apache.maven:maven-artifact:3.5.3",
+ "name": "maven-artifact",
+ "type": "Library",
+ "artifact": {
+ "size": 54961,
+ "MD5": "7741ebf29690ee7d9dde9cf4376347fc",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/maven-artifact-3.5.3.jar"
+ }
+ },
+ {
+ "id": "net.minecraftforge:MercuriusUpdater:1.12.2",
+ "name": "MercuriusUpdater",
+ "type": "Library",
+ "artifact": {
+ "size": 15098,
+ "MD5": "6eb9e61097bee3103a2fdc42746b76a4",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/MercuriusUpdater-1.12.2.jar"
+ }
+ }
+ ]
+}
diff --git a/temp_forge_libs.json b/temp_forge_libs.json
new file mode 100644
index 0000000..cbc55b7
--- /dev/null
+++ b/temp_forge_libs.json
@@ -0,0 +1,203 @@
+[
+ {
+ "id": "net.minecraft:launchwrapper:1.12",
+ "name": "Mojang (LaunchWrapper)",
+ "type": "Library",
+ "artifact": {
+ "size": 32999,
+ "MD5": "934b2d91c7c5be4a49577c9e6b40e8da",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/launchwrapper-1.12.jar"
+ }
+ },
+ {
+ "id": "org.ow2.asm:asm-all:5.2",
+ "name": "Mojang (ASM)",
+ "type": "Library",
+ "artifact": {
+ "size": 247787,
+ "MD5": "f5ad16c7f0338b541978b0430d51dc83",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/asm-all-5.2.jar"
+ }
+ },
+ {
+ "id": "jline:jline:2.13",
+ "name": "Mojang (jline)",
+ "type": "Library",
+ "artifact": {
+ "size": 248566,
+ "MD5": "f251ba666cccb260ff7215b2cbeee8d4",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jline-2.13.jar"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-library:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-library)",
+ "type": "Library",
+ "artifact": {
+ "size": 1474672,
+ "MD5": "379c15c4f724421c6d5d7aecedaf87a6",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-library-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-compiler:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-compiler)",
+ "type": "Library",
+ "artifact": {
+ "size": 3076920,
+ "MD5": "7d89e952f2d5c74577310cd2c28e3f20",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-compiler-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-actors-migration_2.11:1.1.0@jar.pack.xz",
+ "name": "Minecraft Forge (scala-actors-migration)",
+ "type": "Library",
+ "artifact": {
+ "size": 21324,
+ "MD5": "04e3428b2600ace33c7ae2bf1f6c0a4c",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-actors-migration_2.11-1.1.0.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-continuations-library)",
+ "type": "Library",
+ "artifact": {
+ "size": 7956,
+ "MD5": "ed9b1d27aba8ac4090a3749c4dfc895a",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-library_2.11-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang.plugins:scala-continuations-plugin_2.11.1:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-continuations-plugin)",
+ "type": "Library",
+ "artifact": {
+ "size": 46140,
+ "MD5": "a8232db22a72a981de6b1399eb86dff7",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-continuations-plugin_2.11.1-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-parser-combinators_2.11:1.0.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-parser-combinators)",
+ "type": "Library",
+ "artifact": {
+ "size": 85568,
+ "MD5": "2e50a7df17680daadacca69f07f8a16d",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-parser-combinators_2.11-1.0.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-reflect:2.11.1@jar.pack.xz",
+ "name": "Minecraft Forge (scala-reflect)",
+ "type": "Library",
+ "artifact": {
+ "size": 1070312,
+ "MD5": "84e5dc81c10e2bd74c579c9d0332fdd9",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-reflect-2.11.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-swing_2.11:1.0.1",
+ "name": "Minecraft Forge (scala-swing)",
+ "type": "Library",
+ "artifact": {
+ "size": 736795,
+ "MD5": "1d360289e697022a3f57abaad344b28f",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-swing_2.11-1.0.1.jar"
+ }
+ },
+ {
+ "id": "org.scala-lang:scala-xml_2.11:1.0.2@jar.pack.xz",
+ "name": "Minecraft Forge (scala-xml)",
+ "type": "Library",
+ "artifact": {
+ "size": 217812,
+ "MD5": "cc891b094a4c32dedc56bfefe9b072ff",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/scala-xml_2.11-1.0.2.jar.pack.xz"
+ }
+ },
+ {
+ "id": "com.typesafe.akka:akka-actor_2.11:2.3.3@jar.pack.xz",
+ "name": "Minecraft Forge (akka-actor)",
+ "type": "Library",
+ "artifact": {
+ "size": 746612,
+ "MD5": "25cb22c3078e9fb3f7a861c912924862",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/akka-actor_2.11-2.3.3.jar.pack.xz"
+ }
+ },
+ {
+ "id": "com.typesafe:config:1.2.1@jar.pack.xz",
+ "name": "Minecraft Forge (typesafe-config)",
+ "type": "Library",
+ "artifact": {
+ "size": 56636,
+ "MD5": "10ec4ccabc4e68aac9cf87165ead5d7d",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/config-1.2.1.jar.pack.xz"
+ }
+ },
+ {
+ "id": "lzma:lzma:0.0.1",
+ "name": "Mojang (LZMA)",
+ "type": "Library",
+ "artifact": {
+ "size": 5762,
+ "MD5": "a3e3c3186e41c4a1a3027ba2bb23cdc6",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/lzma-0.0.1.jar"
+ }
+ },
+ {
+ "id": "net.sf.trove4j:trove4j:3.0.3",
+ "name": "Trove4J",
+ "type": "Library",
+ "artifact": {
+ "size": 2523218,
+ "MD5": "8fc4d4e0129244f9fd39650c5f30feb2",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/trove4j-3.0.3.jar"
+ }
+ },
+ {
+ "id": "java3d:vecmath:1.5.2",
+ "name": "Vecmath",
+ "type": "Library",
+ "artifact": {
+ "size": 318956,
+ "MD5": "e5d2b7f46c4800a32f62ce75676a5710",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/vecmath-1.5.2.jar"
+ }
+ },
+ {
+ "id": "net.sf.jopt-simple:jopt-simple:5.0.3",
+ "name": "Jopt-simple",
+ "type": "Library",
+ "artifact": {
+ "size": 78175,
+ "MD5": "0a5ec84e23df9d7cfb4063bc55f2744c",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/jopt-simple-5.0.3.jar"
+ }
+ },
+ {
+ "id": "org.apache.maven:maven-artifact:3.5.3",
+ "name": "maven-artifact",
+ "type": "Library",
+ "artifact": {
+ "size": 54961,
+ "MD5": "7741ebf29690ee7d9dde9cf4376347fc",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/maven-artifact-3.5.3.jar"
+ }
+ },
+ {
+ "id": "net.minecraftforge:MercuriusUpdater:1.12.2",
+ "name": "MercuriusUpdater",
+ "type": "Library",
+ "artifact": {
+ "size": 15098,
+ "MD5": "6eb9e61097bee3103a2fdc42746b76a4",
+ "url": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/1.12.2/MercuriusUpdater-1.12.2.jar"
+ }
+ }
+ ]
+
diff --git a/test.json b/test.json
new file mode 100644
index 0000000..18a48f2
--- /dev/null
+++ b/test.json
@@ -0,0 +1,241 @@
+{
+ "version": "1.0.0",
+ "discord": {
+ "clientId": "1.0.0",
+ "smallImageText": "WesterosCraft",
+ "smallImageKey": "seal-circle"
+ },
+ "java": {
+ "oracle": "http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html"
+ },
+ "rss": "heh.mda",
+ "servers": [
+ {
+ "id": "SkirdaTesting-1.12.2",
+ "name": "Skirda Test Server",
+ "description": "Сплошные баги блять",
+ "icon": "http://mc.westeroscraft.com/WesterosCraftLauncher/files/server-prod.png",
+ "version": "4.6.5",
+ "address": "192.168.88.228:35012",
+ "minecraftVersion": "1.12.2",
+ "discord_shortId": "Skirda Minecraft Server",
+ "discord_largeImageText": "Skirda 1.12.2 Minecraft Server",
+ "discord_largeImageKey": "skirda-testing",
+ "mainServer": "false",
+ "autoconnect": "true",
+ "_path": "./srv_1",
+ "_download_url": "https://skirda.gregbrzezinski.com/mods/",
+ "modules": [
+ {
+ "id": "none:bspkrsCore:7.6.0.1",
+ "name": "bspkrsCore",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 100,
+ "MD5": "c916e0be02b2522054c22016faed7ed8",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:bspkrsCore:7.6.0.1_bspkrsCore"
+ }
+ },
+ {
+ "id": "none:gentleharvest:b1",
+ "name": "Gentle harves",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 101,
+ "MD5": "0ac6a8a1c6ff6e1cd2e3b63c8cbb28f6",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:gentleharvest:b1_Gentle-harves"
+ }
+ },
+ {
+ "id": "none:ChickenASM:1.0.2.7",
+ "name": "Chicken ASM",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 101,
+ "MD5": "6afc6ad00fd6bacd0c5b35d8342f0f79",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:ChickenASM:1.0.2.7_Chicken-ASM"
+ }
+ },
+ {
+ "id": "none:TreeCapitator:1.43.0",
+ "name": "Tree Capitator",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 106,
+ "MD5": "08f5d4cf4987e8b099623052196d8f79",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:TreeCapitator:1.43.0_Tree-Capitator"
+ }
+ },
+ {
+ "id": "none:SereneSeasons:1.2.18",
+ "name": "Serene Seasons",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 106,
+ "MD5": "ef89fab62d1914ea0e25d2c31b453695",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:SereneSeasons:1.2.18_Serene-Seasons"
+ }
+ },
+ {
+ "id": "none:CodeChickenLib:3.2.3.358",
+ "name": "Code Chicken Lib",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 112,
+ "MD5": "3b5e44db5ac96fb23a439590b6731a31",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:CodeChickenLib:3.2.3.358_Code-Chicken-Lib"
+ }
+ },
+ {
+ "id": "none:architecturecraft:3.98",
+ "name": "Architecture Craft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 112,
+ "MD5": "cc964d41fad4832a0850cf9da45d0414",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:architecturecraft:3.98_Architecture-Craft"
+ }
+ },
+ {
+ "id": "none:RTG:6.1.0.0",
+ "name": "RTG",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 86,
+ "MD5": "08de37000d2c97ffc9c6da61f3cd6aaa",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:RTG:6.1.0.0_RTG"
+ }
+ },
+ {
+ "id": "none:GoldenAirportPack:3.2.6",
+ "name": "Golden Airport Pack",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 114,
+ "MD5": "c7057e541f6bdbe9981a513277e1ba02",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:GoldenAirportPack:3.2.6_Golden-Airport-Pack"
+ }
+ },
+ {
+ "id": "none:GeographiCraft:0.8.9b",
+ "name": "Geographic Craft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 109,
+ "MD5": "0b2165b05a7b3851273691e4126b2e4e",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:GeographiCraft:0.8.9b_Geographic-Craft"
+ }
+ },
+ {
+ "id": "none:openComputers:1.7.5.192",
+ "name": "Open Computers",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 109,
+ "MD5": "1da9dd8478ba6d682f2787746776e18a",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:openComputers:1.7.5.192_Open-Computers"
+ }
+ },
+ {
+ "id": "none:industrialcraft:2-2.8.221",
+ "name": "Industrial Craft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 113,
+ "MD5": "73f8b72d24d1a7458da1daa969e6e75a",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:industrialcraft:2-2.8.221_Industrial-Craft"
+ }
+ },
+ {
+ "id": "none:mtsOffPack:22",
+ "name": "MTS Official Pack",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 102,
+ "MD5": "47602dd6744fe9a9760968b3a0f62d06",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:mtsOffPack:22_MTS-Official-Pack"
+ }
+ },
+ {
+ "id": "none:Computronics:1.6.6",
+ "name": "Computronics",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 102,
+ "MD5": "5e88b6e4939690a2067bf31f870a5577",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:Computronics:1.6.6_Computronics"
+ }
+ },
+ {
+ "id": "none:railcraft:0.0.0",
+ "name": "Rail Craft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 97,
+ "MD5": "b6f0592e8f5c24d07fe065f1c97c8fda",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:railcraft:0.0.0_Rail-Craft"
+ }
+ },
+ {
+ "id": "none:buildcraft:7.99.24.8",
+ "name": "Buildcraft",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 102,
+ "MD5": "df73e94d29b8c6bde42c451ff6018761",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:buildcraft:7.99.24.8_Buildcraft"
+ }
+ },
+ {
+ "id": "none:immersiveVehicles:20.2.0",
+ "name": "Immersive Vehicles",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 114,
+ "MD5": "a0ffdf29eaa2681ca6ca18faa5f446fd",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:immersiveVehicles:20.2.0_Immersive-Vehicles"
+ }
+ },
+ {
+ "id": "none:simpleplanes:3.0.1.7",
+ "name": "Simple Planes",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 105,
+ "MD5": "8b10e7941dff2705b41e2f218ea3b5b4",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:simpleplanes:3.0.1.7_Simple-Planes"
+ }
+ },
+ {
+ "id": "none:BiomesOPlenty:7.0.1.2444",
+ "name": "BiomesOPlenty",
+ "type": "ForgeMod",
+ "required": true,
+ "artifact": {
+ "size": 109,
+ "MD5": "4c1d23b8a58b6aaa9a5204fae3f18393",
+ "url": "https://skirda.gregbrzezinski.com/mods/none:BiomesOPlenty:7.0.1.2444_BiomesOPlenty"
+ }
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file