diff options
| author | salmonik <salmonik@tuta.io> | 2026-07-29 01:03:24 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-07-29 01:03:24 +0200 |
| commit | 74d2ada067bd2fd9436710ab7ac260e0eddf1314 (patch) | |
| tree | 1f791bb895a611d8e729a735ba098a647808a157 /Cargo.toml | |
| parent | create example config on startup (diff) | |
| download | minecraft-ui-74d2ada067bd2fd9436710ab7ac260e0eddf1314.tar.gz minecraft-ui-74d2ada067bd2fd9436710ab7ac260e0eddf1314.zip | |
Add per-instance mod management with client-side detection
- New mod validation engine (src/mods.rs) with constant-pool class-file
scanning: detects server-side content (block, tileentity, command,
worldgen) vs client-only API (gui, renderer, forge/client)
- 7 client-only mods correctly detected (AppleSkin, CraftingTweaks,
Durability101, EnchantmentDescriptions, InventoryHUD, MouseTweaks,
TrashSlot); 51 server-capable; 1 unknown
- Routes + templating for mod upload (jar/zip), listing, delete, rescan
- Multipart upload with 500MB limit (bypasses axum's default 2MB)
- Per-instance mod summary card on edit page
- Whitelist toggle checkbox on edit page (persisted, drives ENABLE_WHITELIST)
- Dynamic Java image tag (java8/java17/java21) based on MC version
- Class scan is informational-only; rejection based on metadata side=CLIENT
- has_modpack flag cleanup on mod delete
- Remove hx-boost from <body> (was corrupting multipart uploads)
Diffstat (limited to 'Cargo.toml')
| -rw-r--r-- | Cargo.toml | 1 |
1 files changed, 1 insertions, 0 deletions
| @@ -5,6 +5,7 @@ edition = "2024" | |||
| 5 | 5 | ||
| 6 | [dependencies] | 6 | [dependencies] |
| 7 | axum = { version = "0.8.9", features = ["macros", "multipart"] } | 7 | axum = { version = "0.8.9", features = ["macros", "multipart"] } |
| 8 | multer = "3.1.0" | ||
| 8 | tokio = { version = "1.52.3", features = ["full"] } | 9 | tokio = { version = "1.52.3", features = ["full"] } |
| 9 | askama = "0.16" | 10 | askama = "0.16" |
| 10 | rusqlite = { version = "0.40.1", features = ["bundled"] } | 11 | rusqlite = { version = "0.40.1", features = ["bundled"] } |
