aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src-tauri/src/core/manifest.rs
diff options
context:
space:
mode:
authorHsiangNianian <i@jyunko.cn>2026-01-13 14:31:37 +0800
committerHsiangNianian <i@jyunko.cn>2026-01-13 14:31:37 +0800
commitf878efe456e8f5c557f2cde9d71f120f3e0b38cd (patch)
treed6e54b7dc262502f2ef9dc011fcff6ad2aba2d54 /src-tauri/src/core/manifest.rs
parent225f87bf713492daef83a85e9e2a0bfdb0f9d23f (diff)
downloadDropOut-f878efe456e8f5c557f2cde9d71f120f3e0b38cd.tar.gz
DropOut-f878efe456e8f5c557f2cde9d71f120f3e0b38cd.zip
feat: add Minecraft DropOut launcher with version fetching and basic UI
- Implemented version manifest fetching from Mojang API. - Created launcher configuration and main launcher logic. - Added SVG and PNG icons for the application. - Developed a simple HTML/CSS interface for the launcher. - Integrated Tauri commands for backend communication. - Added utility functions for file operations and config parsing.
Diffstat (limited to 'src-tauri/src/core/manifest.rs')
-rw-r--r--src-tauri/src/core/manifest.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src-tauri/src/core/manifest.rs b/src-tauri/src/core/manifest.rs
new file mode 100644
index 0000000..1450e77
--- /dev/null
+++ b/src-tauri/src/core/manifest.rs
@@ -0,0 +1,31 @@
+use serde::Deserialize;
+use std::error::Error;
+
+#[derive(Debug, Deserialize)]
+pub struct VersionManifest {
+ pub latest: Latest,
+ pub versions: Vec<Version>,
+}
+
+#[derive(Debug, Deserialize)]
+pub struct Latest {
+ pub release: String,
+ pub snapshot: String,
+}
+
+#[derive(Debug, Deserialize)]
+pub struct Version {
+ pub id: String,
+ #[serde(rename = "type")]
+ pub type_: String,
+ pub url: String,
+ pub time: String,
+ #[serde(rename = "releaseTime")]
+ pub release_time: String,
+}
+
+pub async fn fetch_version_manifest() -> Result<VersionManifest, Box<dyn Error>> {
+ let url = "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json";
+ let resp = reqwest::get(url).await?.json::<VersionManifest>().await?;
+ Ok(resp)
+}