feat: add NeoForge support, fix Forge installPack bug, update server proxy

- Fix MinecraftLib.installPack() returning false for Forge (was dead code)
- Add NeoForgeInstaller.java with installer download and execution
- Update LaunchCommandBuilder with NeoForge JVM args, classpath, launch args
- Update LaunchMenu with NeoForge option, version selector, support check
- Update Instance.java loader type comment (vanilla, fabric, forge, neoforge)
- Update PackDownloader to handle neoforge loader type
- Update ZHttpClient with NEOFORGE_MAVEN service type and detection
- Add NeoForge proxy endpoints (/proxy/neoforge/versions, /proxy/neoforge/maven)
- Add maven.neoforged.net to proxy allowed_domains
- Add asset_index to PackMeta model and pack_manager scanning
- Include asset_index in /packs list endpoint response
This commit is contained in:
SashegDev
2026-05-04 22:53:22 +00:00
parent cd2cf44d9c
commit b4431702dc
10 changed files with 641 additions and 18 deletions
+4 -1
View File
@@ -109,6 +109,7 @@ async def scan_pack(pack_name: str, force_rescan: bool = False) -> PackMeta:
minecraft_version = "1.20.4"
loader_type = "vanilla"
loader_version = None
asset_index = None
pack_config_path = pack_path / "instance.json"
if pack_config_path.exists():
@@ -119,6 +120,7 @@ async def scan_pack(pack_name: str, force_rescan: bool = False) -> PackMeta:
minecraft_version = config.get("minecraftVersion", minecraft_version)
loader_type = config.get("loaderType", loader_type)
loader_version = config.get("loaderVersion")
asset_index = config.get("assetIndex")
except Exception as e:
logger.warning(f"Failed to load instance.json for {pack_name}: {e}")
@@ -131,7 +133,8 @@ async def scan_pack(pack_name: str, force_rescan: bool = False) -> PackMeta:
ignored_dirs=ignored_dirs,
minecraft_version=minecraft_version,
loader_type=loader_type,
loader_version=loader_version
loader_version=loader_version,
asset_index=asset_index
)
# Save to disk (синхронно)