Jump to content

Recommended Posts

Posted

As of lately, I have decided to make a coremod for minecraft 1.11. I'm using forge version 13.19.1.2189 with the mcp mappings snapshot from 11.2.2017.

I have I daresay pretty successfully made a coremod, most of the things stayed the same as they were in 1.7.10 and I was already familiar with Java bytecode and ASM.

So I implemented IFMLLoadingPlugin and pointed it to my transformer class. I added the 'FMLCorePlugin' attribute to the jar's manifest in the Gradle script. When I build the final artifact and load it in a normal runtime environment it works as expected. That's because Forge/FML knows where to find my plugin.

Since running a configuration in a dev env (using IntelliJ IDEA, personally) just puts all the files in a big classpath blob, there is no manifest for Forge/FML to read the location of my plugin from.My question is, whether there is some magic command line option for the instance that tells Forge/FML that there is an IFMLLoadingPlugin that needs loading.
In 1.7.10, something along the lines of -Dfml.coremods.load=<class> could be used, but I tried that and Mojang's

Main.java told me it would ignore the argument because it apparently doesn't know what to do with it:
 

[main/INFO]: Running with arguments: [..., --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, -Dfml.coremods.load=<pkg>.<modid>.asm.<ModId>Plugin, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]

 

[main/INFO]: [net.minecraft.client.main.Main:main:59]: Completely ignored arguments: [-Dfml.coremods.load, <pkg>.<modid>.asm.<ModId>Plugin]

 

I tried it in a few different variations, like -Dfml.coremod.load= or -Dfml.coreMods.load= etc.

I looked through the source code, and I found that there is a --tweakerClass option, but it expects an ITweaker, and not an IFMLLoadingPlugin, which is what I have (crashes if one uses the wrong type, tested that much).

I can test the mod in a regular instance, but building the archive, copying it over and restarting minecraft is tedious and doesn't easily allow for debugging.

If there are other command line options, I would be delighted to get to know about those as well, or even better where one can find them.

 

Thanks for taking your time reading this.

 

(There are really few resources on coremodding in general)

Posted

Don't make a coremod.

Alternative options, to be used in order:

 - Use APIs

 - Use Events

 - Use Reflection

 - Ask on the forums, you probably missed how to do one of the above

 - Make a Forge Pull Request on GitHub

 - Still don't make a coremod

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

I guess I should have expected such a reply...

I don't need help with the decision of whether or not making a coremod is the right thing. I have already decided on that.

 - There are no APIs for this purpose. This is defined by how Minecraft at the core defines its methods (ie. a method taking ItemStack as a param in Item.java instead of a method in ItemStack.java; this would not really work because making modders extend ItemStack is just plain old stupid, but sometimes you have to change the behaviour of a method defined in Item.java that is ItemStack-sensitive.)

 - Although there is an event that could potentially be used to achieve this, the behaviour would not be fully equivalent to what I had in mind and how it works right now, and it would be unnecessarily inefficient.

 - Reflection cannot modify methods' bytecode, we use ASM or other instrumentation APIs to do that.

 - I shall think not, there is the event thing, also catching all itemstack creation events and replacing with a wrapper itemstack should work, but a coremod is a cleaner solution imho.

 - The hooks I am implementing are far too specific to be included in forge. There is no reason for these hooks to exist, I don't think, so unless the guys at forge want to add a hook to literally every method there is, I don't think this is a viable option.

 - It is very unlikely that any other coremod would instrument on the methods I am modifying, and my change is very unaggressive (scanning for a return statement, only inserting a hook before it to modify the value already on the stack, aborting if the method is drastically changed from what the code expects... There are a lot of good bytecode manipulation techniques and rules of thumb out there). And, if you still don't think that making a coremod is a good idea in my case, let's say it's for educational purposes. You can't deny that making a coremod is a good idea for the sole purpose of learning how coremodding works.

 

I am fully aware though that in most cases making a coremod is not a good idea, and understand why you would want to stop me from doing so. I still want to make a coremod, and I only want to know how to do this one singular thing. Please.

Posted (edited)

Why would they not be supported by Forge when it is essentially Forge who adds them?

 

Pls understand me I could do the thing without a coremod but I want to make a coremod. The chanches of anyone evr using this in their game is like low to non-existent.

 

I just want to know how to load coremods in a dev-env. I think Forge should be able to do that?

Edited by HashtagShell
Posted

Do not create coremods. There is no reason to. Especially in actively developed versions. And especially if you admit that you can do it without a coremod.

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

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • But your Launcher does not find it   Java path is: /run/user/1000/doc/3f910b8/java Checking Java version... Java checker returned some invalid data we don't understand: Check the Azul Zulu site and select your OS and download the latest Java 8 build for Linux https://www.azul.com/downloads/?version=java-8-lts&package=jre#zulu After installation, check the path and put this path into your Launcher Java settings (Java Executable)
    • Try other builds of pehkui and origins++ until you find a working combination
    • Some Create addons are only compatible with Create 6 or Create 5 - so not both versions at the same time Try older builds of Create Stuff and Additions This is the last build before the Create 6 update: https://www.curseforge.com/minecraft/mc-mods/create-stuff-additions/files/6168370
    • ✅ Crobo Coupon Code: 51k3b0je — Get Your \$25 Amazon Gift Card Bonus! If you’re new to Crobo and want to make the most out of your first transaction, you’ve come to the right place. The **Crobo coupon code: 51k3b0je** is a fantastic way to get started. By using this code, you can unlock an exclusive **\$25 Amazon gift card** after completing your first eligible transfer. Let’s dive deep into how the **Crobo coupon code: 51k3b0je** works, why you should use it, and how to claim your reward. --- 🌟 What is Crobo? Crobo is a trusted, modern platform designed for **international money transfers**. It offers fast, secure, and low-cost transactions, making it a favorite choice for individuals and businesses alike. Crobo is committed to transparency, low fees, and competitive exchange rates. And with promo deals like the **Crobo coupon code: 51k3b0je**, it becomes even more attractive. Crobo focuses on providing customers with: * Quick transfer speeds * Minimal fees * Safe, encrypted transactions * Great referral and promo code rewards When you choose Crobo, you’re choosing a platform that values your time, money, and loyalty. And now with the **Crobo coupon code: 51k3b0je**, you can start your Crobo journey with a **bonus reward**! ---# 💥 What is the Crobo Coupon Code: 51k3b0je? The **Crobo coupon code: 51k3b0je** is a **special promotional code** designed for new users. By entering this code during signup, you’ll be eligible for: ✅ A **\$25 Amazon gift card** after your first qualifying transfer. ✅ Access to Crobo’s referral system to earn more rewards. ✅ The ability to combine with future seasonal Crobo discounts. Unlike generic promo codes that just offer small fee reductions, the **Crobo coupon code: 51k3b0je** directly gives you a tangible, valuable reward — perfect for online shopping or gifting. --- ### 🎯 Why Use Crobo Coupon Code: 51k3b0je? There are many reasons why users choose to apply the **Crobo coupon code: 51k3b0je**: 🌟 **Free bonus reward** — Your first transfer can instantly earn you a \$25 Amazon gift card. 🌟 **Trusted platform** — Crobo is known for secure, fast, and affordable transfers. 🌟 **Easy to apply** — Simply enter **Crobo coupon code: 51k3b0je** at signup — no complicated steps. 🌟 **Referral opportunities** — Once you’ve used **Crobo coupon code: 51k3b0je**, you can invite friends and earn more rewards. 🌟 **Stackable savings** — Pair **Crobo coupon code: 51k3b0je** with Crobo’s ongoing offers or holiday deals for even more benefits. --- ### 📝 How to Use Crobo Coupon Code: 51k3b0je Getting started with **Crobo coupon code: 51k3b0je** is quick and easy. Just follow these steps: 1️⃣ **Download the Crobo app** (available on Google Play Store and Apple App Store) or visit the official Crobo website. 2️⃣ **Start the sign-up process** by entering your basic details (name, email, phone number, etc.). 3️⃣ When prompted, enter **Crobo coupon code: 51k3b0je** in the promo code or coupon code field. 4️⃣ Complete your first transaction — be sure to meet the minimum amount required to qualify for the reward (usually specified in Crobo’s promo terms). 5️⃣ After the transaction is verified, receive your **\$25 Amazon gift card** directly via email or within your Crobo account. --- ### 💡 Tips to Maximize Your Crobo Coupon Code: 51k3b0je Bonus 👉 **Transfer the minimum qualifying amount or more** — this ensures you meet the conditions for the gift card. 👉 **Refer friends after your signup** — Crobo allows users who’ve signed up with codes like **Crobo coupon code: 51k3b0je** to share their own code for extra bonuses. 👉 **Check for additional Crobo promotions** — sometimes Crobo offers seasonal or regional deals that stack with the coupon code. 👉 **Complete your transaction soon after signup** — many bonuses have time limits, so act quickly! --- ### 🚀 Frequently Asked Questions about Crobo Coupon Code: 51k3b0je **Q: Can I use Crobo coupon code: 51k3b0je if I already have a Crobo account?** A: No — the **Crobo coupon code: 51k3b0je** is intended for **new users only**. It must be applied during the initial registration process. --- **Q: How long does it take to get the \$25 Amazon gift card after using Crobo coupon code: 51k3b0je?** A: Typically, the gift card is sent **within a few business days** after your first qualifying transfer is completed and verified. --- **Q: Are there hidden fees when using Crobo coupon code: 51k3b0je?** A: No — Crobo is transparent about its fees. The **Crobo coupon code: 51k3b0je** simply adds a bonus reward without increasing your costs. --- **Q: Can I combine Crobo coupon code: 51k3b0je with other promo codes?** A: The **Crobo coupon code: 51k3b0je** is generally applied as a standalone signup bonus. However, Crobo often offers **ongoing promotions** that may apply to future transactions. ---  📌 Reference Crobo promo code: {51k3b0je} Crobo discount code: {51k3b0je} --- # 🌍 Final Thoughts If you want to enjoy safe, fast, and affordable money transfers with an added bonus, **Crobo coupon code: 51k3b0je** is your best option. Not only will you experience excellent service, but you’ll also earn a **\$25 Amazon gift card** — a reward that you can use immediately for shopping or gifts. 👉 **Don’t wait — sign up today using Crobo coupon code: 51k3b0je and claim your bonus!**
    • Does this schematic contain stuff from the mod prettypipes? Looks like Forgematica has issues to load it Try to load the schematic with worldedit - remove the pipes, save it and test it again
  • Topics

×
×
  • Create New...

Important Information

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