Jump to content

Recommended Posts

Posted

MCPBot is good enough, it's as far as I know the least hands-on approach. And we have to respect the fact that you can't redistribute unmodified mojang code (deobf isn't counted)/

Read the EAQ before posting! OR ELSE!

 

This isn't building better software, its trying to grab a place in the commit list of a highly visible github project.

 

www.forgeessentials.com

 

Don't PM me, I don't check this account unless I have to.

Posted

MCPBot is good enough, it's as far as I know the least hands-on approach.

Are you kidding?  It's painful!  Don't get me wrong, it's much much better than nothing and I'm very grateful they made it, but if you're doing more than a handful of names it gets real tedious real quick.  And it seems to be impossible to correct mistakes, even if you've just entered a new name yourself and notice a spelling error.

 

And we have to respect the fact that you can't redistribute unmodified mojang code (deobf isn't counted)/

Well that's easy enough to accommodate.  Download the name mappings from the server, apply to the local decompiled obfuscated code by gradle or whatnot, then after refactoring the names, run a gradle "diff script" or similar on the client, and send the information back to the server again.

 

-TGG

 

 

Posted

MCPBot is good enough, it's as far as I know the least hands-on approach.

Are you kidding?  It's painful!  Don't get me wrong, it's much much better than nothing and I'm very grateful they made it, but if you're doing more than a handful of names it gets real tedious real quick.  And it seems to be impossible to correct mistakes, even if you've just entered a new name yourself and notice a spelling error.

 

And we have to respect the fact that you can't redistribute unmodified mojang code (deobf isn't counted)/

Well that's easy enough to accommodate.  Download the name mappings from the server, apply to the local decompiled obfuscated code by gradle or whatnot, then after refactoring the names, run a gradle "diff script" or similar on the client, and send the information back to the server again.

 

-TGG

 

I actually find it more convenient. I keep a MCPBot DCC chat open in the background behind my IDE, so when I figure out a name I can just directly hop it over to MCPBot.

 

And if you need to change a name you can go to #mcp, they can help you.

Read the EAQ before posting! OR ELSE!

 

This isn't building better software, its trying to grab a place in the commit list of a highly visible github project.

 

www.forgeessentials.com

 

Don't PM me, I don't check this account unless I have to.

Posted

fair enough :-)

 

A related question actually - how do you apply the new name (either the one you figured out or the one you got from the bot) in the new gradle setup, where vanilla is all in a library and can't be edited?  Is there a "patch" file somewhere you can edit and re-deobfuscate?

 

(I liked being able to edit the vanilla to debug and understand the code better (rename variables for example), but I haven't yet figured out how to convert the library to editable code and have it build properly - there are obviously a few subtleties to it I don't understand yet)

 

-TGG

Posted
I don't have most of the skills I'd need to even set up a proof of concept for this, but I'm seriously considering bringing myself up to speed.  (Only problem is that's going to take a long time).

And there in lies the problem, There is a lot we can do to make things different. The work being done on S2S is all about moving the work in updating out of one person's hands {mine} and into the end modders.

But, Abrar is busy with school, I am busy with real life/legal stuff.

Nobody else seems to be stepping up with the skills needed to help. We would LOVE if someone came along and sat down and fully tested S2S and started work on it's FG integration. But as I said, Abrar is busy with school.

 

As for How you guys get a editable version of the MC code base in your projects. The goal is that you DON'T.

However, nothing is stopping you from setting up a seperate project project for editable Minecraft... I wonder where oh where you could possibly get something like that... No project out there EVER needs to edit minecraft....

 

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

Hi

 

We would LOVE if someone came along and sat down and fully tested S2S and started work on it's FG integration. But as I said, Abrar is busy with school.

 

I sent Abrar a couple of messages last week offering help with implementing some testing / integration for S2S, he hasn't replied yet, but do you know what specifically I could help with?  Realistically I can spend say 8 hours a week on it which isn't much but might be of some help?

 

Thanks for the hint about editable source :-)

 

-TGG

Posted

Thanks for the hint about editable source :-)

 

-TGG

 

I believe the hint was that you shouldn't edit Vanilla code. Any mods should be written from scratch (or using APIs), rather than editing base code, so as to retain the maximum compatibility and ease of porting between versions. That's kind of the point of everything Forge has been working towards :D

Posted

Thanks for the hint about editable source :-)

 

-TGG

 

I believe the hint was that you shouldn't edit Vanilla code. Any mods should be written from scratch (or using APIs), rather than editing base code, so as to retain the maximum compatibility and ease of porting between versions. That's kind of the point of everything Forge has been working towards :D

 

I guess I'm not being completely clear about the reason I am so fond of editing vanilla code.  It's not because I want to edit base classes and distribute them in my mod, for very many good reasons like you say. 

 

The reason I edit base classes is because editing base classes can help a huge amount during debugging, and when trying to understand how the vanilla works.

 

For example

If I'm getting a Null Pointer Exception in the one of the base classes, like Entity.moveEntity:

            List list = this.worldObj.getCollidingBoundingBoxes(this, this.boundingBox.addCoord(par1, par3, par5));

            for (int i = 0; i < list.size(); ++i)
            {
                par3 = ((AxisAlignedBB)list.get(i)).calculateYOffset(this.boundingBox, par3); // line 758 NPE here
            }

Unfortunately I can't just put a breakpoint on this line to inspect what's happening because it gets called many many times a second before the NPE occurs.  In some cases a watchpoint can help but often makes the code run far too slowly.

But if I am able to edit the base source it becomes trivial

            for (int i = 0; i < list.size(); ++i)
            {
                if (list.get(i) == null) {
                   System.out.println("list.get(i) is null");  // BREAKPOINT HERE
                }
                par3 = ((AxisAlignedBB)list.get(i)).calculateYOffset(this.boundingBox, par3); // line 758 NPE here
            }

and I can inspect list to see what's going on.

 

Likewise, if I'm trying to figure out how come, when I implement IProjectile without deriving from EntityArrow, my projectile lags behind the true position and then randomly syncs up 20 seconds later after it sticks in a wall, then it's a big help to sprinkle System.out.println throughout EntityArrow.onUpdate (and as it turns out - EntityTrackerEntry.sendLocationToAllClients).  Same deal with trying to figure out the sequence of events when you break a block.

 

The new forge gradle build is (in my opinion) a huge improvement over the old way.  I'm just looking for the best of both worlds.

 

-TGG

 

 

 

Posted

Yes debugging during dev is wonderful.

Which is why we haven't COMPLEETLY removed the ability for you to do that {Which we could do if we so pleased}

However, it's not avalible by default and shoved in the normal modders face because only those who know what they are doing and understand that MC should be treated as a COMPLEETLY SEPRATE project should do it.

 

Anyways, I decided to stop waiting for Abrar {as he's busy} and Update the mappings Should help developers adopt a bit easier.

IF I can get GOOD reports from modders and users. I'll make a RB this weekend {after my meeting}.

So, as it sits, in now on you guys to test and let me know the stability of the current version.

No excuses, it's no longer anyone on our end holding back a RB ;)

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

You guys are doing a tremendous job here.

 

Let me offer my help in continuing the work of deobfuscating any of the sources that need it. It would be great if I could refactor on my end (in Eclipse) and then just push the diff to a repo somewhere. I'm willing to work with anyone who is taking this on. Thanks a bunch.

 

~S~

Guest
This topic is now closed to further replies.

Announcements




×
×
  • Create New...

Important Information

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