Jump to content

Allow 1.8 mod to run on all 1.8 versions


GoldenStorm

Recommended Posts

I'm currently working with a large company (can't say who right now) to make a basic mod that connects some hardware they make with Minecraft.

 

In order to make it easy for our users to install the mod, I'd like to have the mod work on all versions of 1.8. I've seen a few mods before that can do that (can't remember which ones though), but some google searches haven't revealed anything.

 

How can I make a 1.8 mod work on all versions of 1.8 forge?

Link to comment
Share on other sites

Try adding this line of code above your main mod class:

@Mod(modid = mod.MODID, version = mod.VERSION, name= mod.NAME, acceptedMinecraftVersions = "[1.8,)")

 

I am not exactly sure if this will work as I've not tried it, however it was a logical conclusion after reading what is written in

net.minecraftforge.fml.common.versioning.VersionRange:

 

* Create a version range from a string representation
* <p/>
* Some spec examples are
* <ul>
* <li><code>1.0</code> Version 1.0</li>
* <li><code>[1.0,2.0)</code> Versions 1.0 (included) to 2.0 (not included)</li>
* <li><code>[1.0,2.0]</code> Versions 1.0 to 2.0 (both included)</li>
* <li><code>[1.5,)</code> Versions 1.5 and higher</li>
* <li><code>(,1.0],[1.2,)</code> Versions up to 1.0 (included) and 1.2 or higher</li>
* </ul>

 

Hope this helped and that you can continue solving your issue alone from here.

 

EDIT: Corrected the version range, thanks to GotoLink.

I still haven't published a mod because I can never get that in-dev version just right to warrant a public release. And yes, after two years of mod development I am still learning to speak Java.

 

Follow me on GitHub: https://github.com/yooksi

Contact me on Twitter: https://twitter.com/yooksi

Read my Minecraft blog: https://yooksidoesminecraft.blogspot.de/

Link to comment
Share on other sites

Hold on. Setting the acceptedMinecraftVersions might prevent it from complaining about the version, but how do you actually make a mod work with multiple versions? For example, you couldn't just take a 1.7.10 mod and make it 1.6.4 or 1.8.8 compatible just by adding those versions to the acceptedMinecraftVersions.

 

The features, approaches, and many methods and field names are different between versions. So how would you code against multiple versions?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

The question is about 1.8, which only got minor versions following it.

Thus minor code change which shouldn't affect any mod. (Method/Field renaming is MCP noise, which ForgeGradle covers up)

Though if some code changes prevent the mod from working, you could always surround the version specific code with MinecraftForge.MC_VERSION check.

Link to comment
Share on other sites

If the differences are too large (for instance, WorldRenderer changed drastically between 1.8.0 and 1.8.8), maybe making two or three separate versions would be the easiest way after all. I can't think of an easy way of somehow dynamically switching code or classes.

Link to comment
Share on other sites

@Mod(modid = mod.MODID, version = mod.VERSION, name= mod.NAME, acceptedMinecraftVersions = "[1.8.0,1.9.0)")

Never, let me repeat NEVER say you run on a MC version that does not exist yet, and you have not tested your mod on -.-

As for making a mod work between major MC versions, short answer is you can't.

Long answer is if your mod ONLY interacts with the parts of minecraft that has not changed AT ALL then you MIGHT be able to.

But typically that only happen between minor MC revisions.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello, I was trying to play a MOD in my preferred language, but I see that only some items are translated, and I go to debug and I get this information (the only thing that is translated is the bestiary):   [14sep.2024 17:14:36.415] [Render thread/WARN] [net.minecraft.client.resources.language.ClientLanguage/]: Skipped language file: mowziesmobs:lang/es_es.json (com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 394 column 2 path $.config.mowziesmobs.ice_crystal_attack_multiplier) [14sep.2024 17:14:36.421] [Render thread/WARN] [net.minecraft.client.resources.language.ClientLanguage/]: Skipped language file: iceandfire:lang/es_es.json (com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1349 column 4 path $.iceandfire.sound.subtitle.dragonflute)   Is that the reason why everything is not translated? , and is there any way to fix it? Thanks
    • I got my model to render from the models renderToBuffer method. But still not quite what I want. I want to render the model from my renderer's render method. I feel that having access to the renderer and its methods will open some doors for me later down the line. //EntityRendererProvider.Context pContext = ; I want this //ToaPlayerRenderer render = new ToaPlayerRenderer(pContext, false); // if I can get the above line to work, having the methods from the renderer class would be incredibly helpful down the line RenderType rendertype = model.renderType(p.getSkinTextureLocation()); // this should be something like render.getTextureLocation() VertexConsumer vertexconsumer = buffer.getBuffer(rendertype); model.renderToBuffer(stack, vertexconsumer, paLights, 1, 1, 1, 1, 1); // I don't want the render to happen here since it doesn't use the renderer //model.render(p, 1f, pTicks, stack, buffer, paLights); I want to render the model using this It is certainly getting closer though. Probably. I am still worried that even if pContext is initialized this new instance of the renderer class will still hit me with the classic and all too familiar "can't use static method in non-static context"
    • Hello, I am learning how to create Multipart Entities and I tried creating a PartEntity based on the EnderDragonPart code. However, when I tested summoning the entity in the game, the PartEntity appeared at position x 0, y 0, z 0 within the game. I tried to make it follow the main entity, and after testing again, the part entity followed the main entity but seemed to teleport back to x 0, y 0, z 0 every tick (I'm just guessing). I don't know how to fix this can someone help me? My github https://github.com/SteveKK666/Forge-NewWorld-1.20.1/tree/master/src/main/java/net/kk/newworldmod/entity/custom Illustration  https://drive.google.com/file/d/157SPvyQCE8GcsRXyQQkD4Dyhalz6LjBn/view?usp=drive_link Sorry for my English; I’m not very good at it. 
    • its still crashing with the same message
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.