b4431702dc
- 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
31 lines
925 B
Python
31 lines
925 B
Python
from pydantic import BaseModel, Field
|
|
from typing import Dict, List, Optional
|
|
from datetime import datetime
|
|
import structlog
|
|
|
|
logger = structlog.get_logger(__name__)
|
|
|
|
class FileEntry(BaseModel):
|
|
path: str # относительный путь (mods/jei.jar)
|
|
hash: str # sha256
|
|
size: int
|
|
added_at: datetime
|
|
modified_at: datetime
|
|
|
|
class PackMeta(BaseModel):
|
|
pack_name: str
|
|
version: int = 1
|
|
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
|
|
|
files: Dict[str, FileEntry] = Field(default_factory=dict)
|
|
ignored_dirs: List[str] = Field(
|
|
default_factory=lambda: [
|
|
"resourcepacks", "shaderpacks", "saves", "logs",
|
|
"crash-reports", "screenshots", "journeymap", "config"
|
|
]
|
|
)
|
|
|
|
minecraft_version: str
|
|
loader_type: str
|
|
loader_version: Optional[str] = None
|
|
asset_index: Optional[str] = None |