Jump to content

Recommended Posts

Posted

Just having a little trouble catching up to forge 1.7.2 and gradle. I'm trying to change a few things using Bytecode but can't seem to figure how to do it. There are no sources to edit, and I've found no help on the web showing how to do this. I just want to change a few things in the base files, which are, as far as I know, impossible to change using events or something. Are there any tutorials out there which shows how to patch base files with the new gradle stuff? If not, can someone please explain how to do this?

 

Thanks in advance.

Posted
  On 5/24/2014 at 6:47 PM, LexManos said:

What are you trying to change?

 

Well, a few things, like remove hunger, changin armor mechanics, changing damaging mechanics and stuff like that.

Posted

You will need to be more specific, a lot of that can be done without base edits.

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

Posted
  On 5/24/2014 at 10:58 PM, LexManos said:

You will need to be more specific, a lot of that can be done without base edits.

 

Well sure. Let's take the armor as an example. I want to remove the old, ugly, vanilla armor mechanic. I don't like it at all, it's messy. Instead of the original armor I want to create damage reduction out from armor points. Let's say you have 1000 armor, that will equal, let's say 40% damage reduction. To do this, I would have made this:

    /**
     * Reduces damage, depending on armor
     */
    protected float applyArmorCalculations(DamageSource par1DamageSource, float par2)
    {
        if (!par1DamageSource.isUnblockable())
        {
            int i = 25 - this.getTotalArmorValue();
            float f1 = par2 * (float)i;
            this.damageArmor(par2);
            par2 = f1 / 25.0F;
        }

        return par2;
    }

into this:

    /**
     * Reduces damage, depending on armor
     */
    protected float applyArmorCalculations(DamageSource par1DamageSource, float par2)
    {
        if (!par1DamageSource.isUnblockable())
        {
            par2 = ArmorHelper.damageReduction();
        }

        return par2;
    }

or something like that. ArmorHelper.damageReduction(); would return a value of 0.6.

 

I guess that's as specific as I can get. This is what I did back in 1.6, using class transformers, but it seems a lot harder now that the source code is non-editable.

Posted

You can use the LivingHurtEvent to deal with that which is fired in the only two places that that function is invoked from.

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

Posted
  On 5/24/2014 at 11:38 PM, LexManos said:

You can use the LivingHurtEvent to deal with that which is fired in the only two places that that function is invoked from.

 

Hmm, maybe you're right. It seems like I can do a few more things using events. But there are more things, like, I would need to add a little if statement in the left click void in Minecraft.class. I'm gonna do so that you cannot swing your arm as long as it's already swinging. I'm not gonna ask you to do all the work on my mod or anything, but I just don't think there are events for everything so I'm just asking if there is any solution.

Posted

Short answer, No, if you are editing base classes in ANY WAY you're doing it wrong and you're better off asking for help and looking for more information from people who know more/have more experience then you.

 

 

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

Posted
  On 5/25/2014 at 12:00 AM, LexManos said:

Short answer, No, if you are editing base classes in ANY WAY you're doing it wrong and you're better off asking for help and looking for more information from people who know more/have more experience then you.

 

But since there are a couple of things that isn't supported by events and stuff, I'm thinking, if I add a small if-statement or something in a field, it won't matter too much. Maybe it can cause minor non-compability with a few mods, but this mod isn't supposed to be played with anything else than maybe TMI, graphic mods, x-ray and other non-gamechanging mods. And if I change as little as I'm going to, I'm pretty sure it won't affect these mods in any way. I'm doing what I can not to edit base classes, but there are still 2-3 small statements I'm missing.

Posted

Coremods exist for a reason, However, I restate my point.

If you are editing base classes you are doing it WRONG.

It is better to speak up and get help and MOST LIKELY as with the cases above someone can point you in a better direction then CoreModding/BaseEdits.

Anyone who writes a core mod needs to get into the mindset that they are doing it WRONG and should ALWAYS seek a better solution if they can.

 

 

There will be times where legitimatly you can not do something in Forge {its getting increasingly rare}

Thats why the coremod system exists. HOWEVER. It should always be a LAST RESORT. And you should always try to STOP using coremods.

 

Think of it this way, If you saw, in one of my patches I accedently typed < when I mean to have <=

Would you silently coremod that comparison to fix it and move on your merry way?

Or would just file a issue on the git informing me I had made a mistake and have me fix it?

Think of the ENTIRE minecraft code base as Forge's domain. If you want to make ANY edit to it, if there are ANY bugs, etc.. File a issue on git and we'll address it.

Not saying everything you do will get into Forge, because, not being a dick here, but I would probably see and understand a lot more of the implications of changes then you would simply due to my experiance in MC code itself.

But if it's a good issue and we work back and forth to make it acceptable, then it'll get pulled.

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

Posted
  On 5/26/2014 at 7:05 PM, LexManos said:

Coremods exist for a reason, However, I restate my point.

If you are editing base classes you are doing it WRONG.

It is better to speak up and get help and MOST LIKELY as with the cases above someone can point you in a better direction then CoreModding/BaseEdits.

Anyone who writes a core mod needs to get into the mindset that they are doing it WRONG and should ALWAYS seek a better solution if they can.

 

 

There will be times where legitimatly you can not do something in Forge {its getting increasingly rare}

Thats why the coremod system exists. HOWEVER. It should always be a LAST RESORT. And you should always try to STOP using coremods.

 

Think of it this way, If you saw, in one of my patches I accedently typed < when I mean to have <=

Would you silently coremod that comparison to fix it and move on your merry way?

Or would just file a issue on the git informing me I had made a mistake and have me fix it?

Think of the ENTIRE minecraft code base as Forge's domain. If you want to make ANY edit to it, if there are ANY bugs, etc.. File a issue on git and we'll address it.

Not saying everything you do will get into Forge, because, not being a dick here, but I would probably see and understand a lot more of the implications of changes then you would simply due to my experiance in MC code itself.

But if it's a good issue and we work back and forth to make it acceptable, then it'll get pulled.

Allright. Thanks. I'll try to do whatever I can not to use coremods. It seems like I've finished most of the mechanics anyways. If you want, you can help me with it. I don't think there are any events to help me with this, so I have to do something else. I'm not expecting you to finish the code, but if you would tell me where to look, I'd be grateful. First thing I'm gonna do is to add a few more slots to the survival inventory. I've already added the slots, and it looks great, but the problem is that when I click the slot, I get a crash.

 

  Reveal hidden contents

 

Not quite sure why this is happening, as I am putting the slot into the arraylist.

I'll show you my code.

WMod:

 

  Reveal hidden contents

 

ContainerEvent:

 

  Reveal hidden contents

 

Posted

private static final String __OBFID = "CL_00001755";

Why do you have that line?

And there should be a Intentory Open event that you cal use to add these slots with.

However, adding slots to the inventory is a bit.. bad because it can cause conflcits with other mods that add slots.

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

Posted

A workaround for additional survival inventory slots is to use IExtendedEntityProperties to add them, with an accompanying GUI / Container, etc., and bind a key to open your custom inventory; players can re-map the key to 'E' if they want, effectively making your inventory the new 'vanilla inventory'. This circumvents both the issue of inter-mod compatibility and having to manipulate byte-code; it's easy and clean, imo.

 

If you want to see an example / tutorial on it, check here.

Posted
  On 5/27/2014 at 12:05 AM, LexManos said:

private static final String __OBFID = "CL_00001755";

Why do you have that line?

And there should be a Intentory Open event that you cal use to add these slots with.

However, adding slots to the inventory is a bit.. bad because it can cause conflcits with other mods that add slots.

  Quote

A workaround for additional survival inventory slots is to use IExtendedEntityProperties to add them, with an accompanying GUI / Container, etc., and bind a key to open your custom inventory; players can re-map the key to 'E' if they want, effectively making your inventory the new 'vanilla inventory'. This circumvents both the issue of inter-mod compatibility and having to manipulate byte-code; it's easy and clean, imo.

 

If you want to see an example / tutorial on it, check here.

I played a little around with the inventory this night. My internet wasn't working so I had to find out of this myself. The code I used above, the addSlotContainer worked, but I forgot to add slots both in the client and the server. That's what caused the error. And I'm fine with the incompability, because playing my mod with any inventory changing mods will ruin the gameplay. Oh, and the "private static final String __OBFID = "CL_00001755";" is something that's already in the armor slot code, so I just kept it. Didn't think much of it.

 

Anyways, there is one last thing I need help with. It's the swinging animation. I want to change how fast your hand swings according to the item you're holding. I've tried so many different things, but it's really hard to figure a way to do this. I've somehow tried to overlap the old "this.swingProgress = (float)this.swingProgressInt / (float)i;", but it seems so cause bugs no matter how I do it. What I need is something like

this.swingProgress = (float)this.swingProgressInt / (float)i / j;

where "j" is the item speed. I'm guessing there should be a simple way to do this, maybe by cancel out the "updateArmSwingProgress()" which takes care of the swing speed. I've looked for a way to cancel it, but couldn't find an easy and non-buggy way.

Posted

What you want for the swing speed could be emulated by using the dig slowdown potion effect.

As for the __OBFID, this is a reason you should UNDERSTAND things before you copy/paste code -.-

This is For VANILLA classes only.

If you have __OBFID in your code you could break shit. {We've fixed most cases, but hey people break things}

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

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

    • Short Term Loans Online: A Reliable Source of Fast Cash   If you are experiencing financial difficulties, you don't have to worry about this challenge. This is the quickest and best method for handling financial catastrophes. You can pick short term loans online without reluctance, and you can apply for the payday loan you want online and have it the same day without any issues. With two to four weeks to repay the loan, you may often borrow between $100 and $1000 without having to offer any collateral.   As implied by the title, those with bad credit histories—defaults, arrears, foreclosure, late or missed payments, judgments against you, insolvency or IVA, etc.—are welcome to apply for online short term loans without having to go through any challenging procedures. Interest rates are a bit high in comparison to other loans. A thorough internet search can be used to determine the greatest rate for a financed loan.   You don't have to waste your precious time searching the internet for short term funding payday loans. In just a few minutes, you can apply for the finance you desire by completing a brief online application. The lender will approve the loan once he has verified that you have provided accurate information on this brief form. This loan is carefully deposited into your bank account in the least amount of time. You can utilize the money in a number of ways without running into any problems. Usually, the money can be used to settle debts like credit card balances, overdue bank overdrafts, tuition or school fees for children, energy bills, housing costs, and more.   Loans Lucre makes it simple to apply for short term loans online, so there's no need to drive across town. Additionally, you won't have to wait weeks for a response from us. Additionally, having bad credit shouldn't be a deal-breaker. We evaluate your entire financial history rather than just your FICO score. We approve many debtors who had been rejected by banks.   Once you are approved, Loans Lucre puts your online installment loans directly into your bank account, giving you instant access to your funds. The repayment plan is broken down into simple, reasonably priced monthly installments. Loans Lucre also rejects rollovers. Instead, we help borrowers get back on track when they encounter difficulties with the repayment process. Borrowers who regularly make their payments on time are eligible for lower annual percentage rates (APRs) on their subsequent these loans. That is truly win-win!   You will be communicating with the lender whether you apply for online personal loans through a cash advance broker or directly from the lender. The cost and duration of the transaction will be increased by any third parties you deal with through the direct lender. This will lead to a faulty perception of the "instant approval" of your payday loan, in addition to raising the cost of your transaction. When asking for a payday loan, it is therefore essential that you work with a trustworthy direct lender; a lender with a solid online reputation and satisfied clients is a wise choice.   You can apply for a short term loans online through internet platforms in addition to conventional lenders. A quicker and more convenient application process is frequently provided by these platforms. In the end, it is feasible to get a $500 loan with low credit or no credit at all, but it will need effort and careful evaluation of your financial possibilities. The lender's requirements will always determine approval, so be careful to give accurate information and look into several lenders to determine which one best suit your needs. https://loanslucre.com/  
    • Apply For Fast Cash Loans Online Today To Get Money Right Away   Do you have to deal with your money issues right away? You don't need to go anywhere because you can get fast cash loans online with just a computer and an internet connection. This suggests that you don't need to waste any time applying for these loans. All you have to do is fill out the form accurately and submit it to the lender online. They will check it and determine whether to approve the loan within the specified time frame. The money is moved to your bank account shortly after approval.   The same-day financing loan facility offers the most beneficial cash assistance in quantities ranging from $100 to $1000, with a flexible payback period of 2-4 weeks from the date of acceptance. You can use the borrowed funds to cover your child's tuition or school fees, small vacation expenses, past credit card payments, laundry costs, minor house repairs, your mother's checkups, and other emergencies.   To be qualified for same day funding loans, you must meet specific conditions regardless of your credit score—fair or low. A valid proof of domicile and proof of residence for the last 12 months, a current bank account with an SSN, being employed permanently with a monthly wage of at least $1000, and being at least eighteen years of age are prerequisites. If you satisfy the qualifications, you can apply for same-day payday loans directly without undergoing a credit check if you have bankruptcy, CCJs, IVAs, foreclosure, arrears, or defaults. As a result, getting a loan is fairly easy in the current credit market.   You must complete an application with information about your bank account and job in order to apply for a fast cash loan online from a physical payday lender. You also need to provide the lender with postdated checks that will be deposited on the scheduled repayment date. In return, you get paid right away.   Applicants can apply for same day payday loans at any time, from the comfort of their homes, eliminating the need to travel across town to a payday loan outlet. However, online payday lenders do not frequently provide same-day loans. Instead, payouts are made straight into borrowers' bank accounts via the Automated Clearing House (ACH) system; processing for this method takes at least one business day.   You must think about if you can pay back the loan in full within the allotted time because same day payday loans may have payback periods as little as one week or ten days. If you are unable to pay the full amount due, the lender might accept a token payment from you. The remaining sum will be restructured as a rollover, which is a new loan with fresh interest and administrative costs and the same short payback period. After a few rollovers, a significant number of little payday loans accumulate to the point that debtors still owe more than they originally borrowed, even after making consistent payments for months or years.   You should be ready to submit the required paperwork and supporting proof when applying for a payday loans online same day with bad credit. Usually, lenders will evaluate your present financial state, work status, and loan-repayment capacity. Many lenders specialize in bad credit loans and are willing to take on the risk of lending to those with poor credit, despite the difficulties presented by a low credit score. This implies that you are not automatically denied a loan because of poor credit or no credit at all. https://nuevacash.com/
    • I have removed stevekunglib and it is still crashing again https://pastebin.com/9vE8pji0
    • It looks like an issue with stevekunglib or a mod requiring it
  • Topics

×
×
  • Create New...

Important Information

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