Repository navigation
FAQ en
Check both @JivPlugin and IModPlugin, a public concrete class, an accessible no-argument constructor, and inclusion of the class in the mod JAR. The Failed to load log identifies the class and underlying exception.
For missing classes, check JIV and Minecraft versions, development runtime dependencies, and references to absent optional mods.
Check addRecipes in registerRecipes, the shared recipe type constant, generic data types, category isHandled filtering, and the inputs/outputs declared through setRecipe.
Drawing ingredients only in draw does not index them. RENDER_ONLY ingredients do not contribute to that recipe's input/output lookup.
OUTPUT asks how to obtain an ingredient. INPUT asks what it is used for. Check both slot roles and runtime focus roles.
Register components or a subtype interpreter that actually identify your item variants. Extra stacks, subtype identity, and search aliases serve different purposes.
Preserve original SlotDisplay data when possible. Resolving it to ordinary stacks first can lose tag identity and all-subtype matching semantics.
Check translation keys, the current language, player alias-search settings, and the identity of the ingredient used for registration. An Item alias covers all of its subtypes.
Station registration only creates an entry point. Register a transfer handler matching the current menu, recipe type, and menu type; verify menu slot indices. Standard transfer also requires JIV on the server.
Custom handlers must call context.completeRecipeTransfer(...) after actual completion. doTransfer=false is a check and does not run an actual transfer lifecycle. Asynchronous handlers must wait for confirmation before reporting success or rejection.
Clear the old IJivRuntime reference and use the next instance provided by the lifecycle callback. Buttons, asynchronous callbacks, and caches must not keep using a previous world's runtime.
No. JIV has its own annotation, packages, and current interfaces. Recheck signatures, generics, and platform versions when porting; a package-name replacement alone is insufficient.
| Older examples may use | Current JIV |
|---|---|
mezz.jei.api.* / @JeiPlugin
|
eakerzt.jiv.api.* / @JivPlugin
|
IJeiRuntime / getJeiHelpers()
|
IJivRuntime / getJivHelpers()
|
ResourceLocation |
Current Minecraft uses Identifier
|
| Older concrete recipe-type API |
IRecipeType<T>, distinct from Minecraft's type |
Category getBackground()
|
getWidth() / getHeight() and optional background drawing |
RecipeIngredientRole.CATALYST |
CRAFTING_STATION |
Older multi-parameter transferRecipe
|
transferRecipe(context, doTransfer) |
| Older rendering types | Current signatures use GuiGraphicsExtractor
|
These are migration hints; the current public interfaces are authoritative.
The current dependency version is 0.0.1-alpha-5. Check group io.github.eakerzt, artifact jiv-26.1.2-neoforge, version, and mavenCentral(). If Gradle cached a failed lookup before publication, retry with --refresh-dependencies. Disable offline mode and check network access to Maven Central. See Getting started.
It implements JIV display categories, plugin callbacks, and runtime calls. It does not include a mod entry point, machine menu, networking, or server processing logic. MachineScreen, MachineMenu, and ModMenus in other pages are placeholders for your project types.