Skip to content

Building

the-real-ltcg edited this page Jul 9, 2026 · 1 revision

Building

Requirements

  • JDK 25

Build

git clone https://github.com/the-real-ltcg/modmenu-web-addon.git
cd modmenu-web-addon
JAVA_HOME="<path to JDK 25>" ./gradlew build

The output jar is written to build/libs/modmenu-web-addon-<version>.jar.

Run a dev client

JAVA_HOME="<path to JDK 25>" ./gradlew runClient

Project layout

Single-module Fabric Loom project (no multi-loader split — Mod Menu itself is Fabric/Quilt-only, so there's no reason to target NeoForge/Forge here).

  • src/main/java/com/ltcg/modmenuwebaddon/
    • ModMenuWebAddonClient — client entrypoint, kicks off the background fetch.
    • config/AddonConfig — reads/writes config/modmenuwebaddon.json.
    • data/FetchedModInfo (per-mod result) and ModDataCache (in-memory + disk-cached results, icons saved as separate PNGs).
    • fetch/ModrinthClient, CurseForgeClient (both plain java.net.http.HttpClient, no extra HTTP dependency), ModInfoFetcher (decides what's missing and dispatches lookups).
    • mixin/FabricModMixin (description/website/issue-tracker/source) and FabricIconHandlerMixin (icon fallback), both targeting Mod Menu's internal com.terraformersmc.modmenu.util.mod.fabric.* classes, since Mod Menu has no public API for a third party to override another mod's displayed metadata.

Clone this wiki locally