Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash with Forestry 4.0 #229

Closed
Akai1 opened this issue Sep 6, 2015 · 67 comments
Closed

Crash with Forestry 4.0 #229

Akai1 opened this issue Sep 6, 2015 · 67 comments

Comments

@Akai1
Copy link

Akai1 commented Sep 6, 2015

Your mod is not compatible with latest Forestry. Please update.

https://gist.github.com/Akai1/6f05ccf523748dc9f34c

@ReikaKalseki
Copy link
Owner

Actually, it is you who needs to update.

@Akai1
Copy link
Author

Akai1 commented Sep 6, 2015

All mods in my instance are up to date @ReikaKalseki .
You can see the version in the crash report.

@ReikaKalseki
Copy link
Owner

I updated to the latest Forestry API in v8. Your Forestry version is ancient.

EDIT:
Wait...4.0.0.0? Did they make another new release in the last week, and ditch the 3.X series entirely at that?

EDIT 2: All Forestry downloads I can find are 3.6.X.

@sashanke
Copy link

sashanke commented Sep 6, 2015

@ljfa-ag
Copy link
Collaborator

ljfa-ag commented Sep 6, 2015

Well it doesn't say that it might be unstable for nothing. I think you shouldn't use Jenkins builds for playing if you plan on keeping your worlds.

@Akai1
Copy link
Author

Akai1 commented Sep 6, 2015

Yeah you can get 4.0 on http://ic2api.player.to:8080/job/Forestry_Dev/
At this point 4.0 is really stable and has quite a few new cool things.
So it would be really nice, if you support it @ReikaKalseki.

@ReikaKalseki
Copy link
Owner

Is 4.0 a different branch entirely? I cannot support two branches simultaneously.

@TomeWyrm
Copy link
Collaborator

TomeWyrm commented Sep 6, 2015

Yes it is, all the X.y.y.y are completely new branches with Forestry. Please do not support in development versions of mods that aren't easily accessible from the "main download" page. It screws up most users and creates a lot of rather annoying scavenger hunts.

@Akai1
Copy link
Author

Akai1 commented Sep 6, 2015

Ok thanks. Is it possible to disable mod interaction with Forestry?

@ReikaKalseki
Copy link
Owner

No. Use a proper Forestry version.

Also, it looks like the 4.0 version is using the _old_ API from pre-3.6. So updating to newer mainline Forestry versions actually broke it.

Someone on the Forestry team has explaining to do.

@mezz
Copy link

mezz commented Sep 30, 2015

@ReikaKalseki Forestry 4.0 is not using an older API. Forestry's API versioning is per-package using SemVer and is not tied to the mod version number.

There are many internal changes in this release, especially to wood items and multiblocks.
There are API changes as well (mainly removing deprecated things).

@ReikaKalseki
Copy link
Owner

4.x worked with the 3.5.x code, but 3.6.x code works with neither.

@mezz
Copy link

mezz commented Sep 30, 2015

Sounds coincidental to me, I didn't do anything too weird.

I loaded up DragonAPI and it was dying on the Forestry Log blocks.
https://github.com/ReikaKalseki/DragonAPI/blob/d922a9fa422e5c2fde921a611e3043fd9033e235/ModInteract/ItemHandlers/ForestryHandler.java#L63-L70
Seems weird to use reflection instead of GameRegistry.findItemStack() but anyway...
Forestry's Logs changed a lot, they are now one block and use NBT for the species.

There is a new API in Forestry to get the wood items, TreeManager.woodItemAccess. Not sure if you'd need access to the block in DragonAPI any more.

@ljfa-ag
Copy link
Collaborator

ljfa-ag commented Sep 30, 2015

Yeah reflecting into a mod's internal classes if you just need blocks or items is a bad idea. I did the same mistake and recently switched to lookup from the block/item registry. This will continue to work for as long as the mod in questrion doesn't make changes that break existing worlds.

That said, the AbstractMethodError in the OP still seems weird.

@ReikaKalseki
Copy link
Owner

My reflective handlers, if they fail, never crash, only fail to load the items. Any NoSuchMethod or similar errors are caused by API changes.

Also, stupid as it is, most mods change their APIs rather more than their internal code.

Example 1: AE. Eight breaking API changes in six months (including a recapitalization of AEAPI.instance()!) whereas the internal registries remain unchanged.

Example 2: MystCraft. Constant refactoring of the API class and constant renaming of the fields (repeatedly adding and removing block_ to the field names). No internal registry change.

Also, most mods provide no API hooks to get their items, and yes, like to play musical registration names.

@ljfa-ag
Copy link
Collaborator

ljfa-ag commented Sep 30, 2015

Well I guess those are stupid examples.

Also, most mods provide no API hooks to get their items, and yes, like to play musical registration names.

I can't imagine that it happens that often that mods break existing worlds by changing block and item names. I would guess that Block.getBlockFromName and Item.getItemFromName are still more reliable than reflection.

For instance, my stuff broke in the past when Thermal Expansion and Chisel renamed their packages.

@mezz
Copy link

mezz commented Oct 7, 2015

I think this discussion got derailed, Forestry made breaking changes including ones that remove blocks in the world.
Can this issue be reopened?

@ReikaKalseki
Copy link
Owner

I cannot yet update, because fully half of the players are refusing to update the mod version, yet still demanding the support.

@mezz
Copy link

mezz commented Oct 7, 2015

Since I was confused about why DragonAPI includes Forestry, I took a look into it.

I've been working to improve the API, basically so that people don't have to implement stuff like in ModInteract/Bees/.

Flowers in particular have breaking changes because we really messed it up in earlier implementations. Instead of needing BasicFlower.java class, you can now register flowers with FlowerManager.flowerRegistry.registerAcceptableFlower or registerPlantableFlower

Instead of needing to write BeeSpecies.java you can create bee species with a brand new API, BeeManager.beeFactory.createSpecies. (This addition is backward compatible, all the old ways of doing it are still there for now)

As for the item handler, why not request that one be added to the Forestry API? It would be much easier to maintain there, and there would be no version conflict issues.

If you find yourself needing to implement stuff like that in DragonAPI, please let me know that the Forestry API needs improvement. Having DragonAPI act as middleware for active projects like Forestry and others sounds like maintenance hell, worse than Forge.

@ReikaKalseki
Copy link
Owner

I have base classes like BeeSpecies because I generally prefer to boilerplate things, as for most of it a great deal can be inherited and shared. Additionally, going through DragonAPI means that no matter what happens within Forestry (or any other mod), only one area of code needs to change; rather than 15 different classes from 9 mods needing to update their content, only the intermediary needs to do so.

@mezz
Copy link

mezz commented Oct 12, 2015

Just a heads up, Forestry 4.0 is now the stable release.

@walkerjonny
Copy link

And exactly that becomes more and more an issue as many other Mod Developers refuse to support older versions of their Mods.
Also I can't add bug fixes for existing Mod issues because those Mods switched to Forestry 4.x at the time they were applyind those fixes.
I for myself have at least 10 Mods on my list hat I cannot upgrade because Reika refuses to upgrade his Mods to the new Forestry branch.
That isn't really funny anymore...

@ljfa-ag
Copy link
Collaborator

ljfa-ag commented Nov 20, 2015

Well think about how many people still have old worlds with Forestry 3 and can't update because it would break their world and other addons they have. So unfortunately you can't suit everybody.

@Eladkay
Copy link

Eladkay commented Nov 20, 2015

@ljfa-ag that's definitely not a reason not to fix a critical bug.

@walkerjonny
Copy link

The point is that those people can stay on the old worlds with the old versions of Forestry and all the other mods.
But as it looks like many others if not the majority of the community want to proceed to the new Forestry branch and want also include the newest versions of all the affected mods because of good reasons.
That is how the most mod developers and the community out there are acting usually.
Reika interferes with his sometimes uncommon acting those usual proceedings.
It would be at least good to know if he plans to do some updates within the next few weeks or if he wants to wait until Christmas or even next year...
The badest information is no information about this at all.

@walkerjonny
Copy link

FYI: Forestry just updated to 4.2.0 and did some API changes to add some new functions.
@ReikaKalseki
Maybe you want to support the new APIs when you decide to upgrade your mods.

@Eladkay
Copy link

Eladkay commented Nov 20, 2015

Reika has been proven wrong, chances are we'll never be hearing from him.

@TomeWyrm
Copy link
Collaborator

What is with the drama llamas in this comment thread? Use the old versions if you want any DragonAPI dependent mod. If you have to have Forestry 4, et al? Don't use DragonAPI.

Very simple. Reika is aware of the updates, and will change, or not, when HE decides to. Apparently giving the end user the ability to disable forestry integration will raise unrealistic expectations that other integration could be easily disabled (Forestry Integration is very light, and uniquely easy — though non-trivial — to disable), and to prevent a never-ending trend of future support headaches he will not support the "fix" to this problem.

As for why he does not wish to update to Forestry 4 as a fix for the problem, I honestly couldn't tell you. None of the reasons I have seen make much sense to me.

@walkerjonny
Copy link

TomeWyrm is right about stating that this should not become personal and/or insulting.
Don't forget, Reika is doing an awesome job with his mods aside from this issue.
However it should also be allowed to explain the issues this case causes to us when it is done in a polite way and I for myself am trying to handle it that way.
Maybe some of those arguments will influence Reika's deciding process on this issue a bit.
I'm pretty sure that Reika will fix this finally. He has done that always in the past. It is just the question when he will do that.
He acts just sometimes a bit unusual, that's his way of handling things and we have to be patient and understanding. It would just be nice, if he might be a bit more communicative about his future plans on this issue. That's all.

@Morketh
Copy link

Morketh commented Nov 21, 2015

@walkerjonny i think you make a valid point there. At the least just say "I'm still alive and programming"

@walkerjonny
Copy link

Oh, Reika is still very active. Just have a look on his thread on minecraftforum.net (also maintained by curse). His last reply there is just four hours ago.
I'm quite sure he is working on implementing some new stuff that becomes available on his next major release of his mods.
His way of releasing and bug fixing comes more in waves. When he releases a new major version of his mods he fixes bugs very fast within one or two weeks after the release and then he stops until he releases his next major version of his mods which could take sometimes a while.

@plaguewolf
Copy link

V10. nuff said.

that said, im waiting, impatiently, with bated breath, and hands itching to once more hold a digital pickaxe, for the release of V10, and along with it, forestry 4 support. ive just stopped developing my modpack entirely while i await the relevant mods to update to forestry api v4.

O.O godspeed reika.

@TomeWyrm
Copy link
Collaborator

He's not putting Forestry 4 support into v10. Or at least was not last time I noticed an answer on the subject.

@walkerjonny
Copy link

That would be really bad then...
Let's hope you're not right about this.
Looks like he is waiting for Binnie to update his mods but Binnie only does updates on holidays when he has some time...
That was the reason why I removed Binnies mods from my mods list.

@ReikaKalseki
Copy link
Owner

@walkerjonny
Copy link

@ReikaKalseki
Oh, thank you!
Looks like you are catching that exception now. If I understand that right this lets you support both the old Forestry 3.x.x and the new Forestry 4.x.x.
Nice solution!
Well, then I'll be patient until you decide to do your next release.

@border999
Copy link

Achievement unlocked: solution found!

@ghost
Copy link

ghost commented Dec 1, 2015

Okay, question: Do you have anywhere you post downloads for dev builds that may include this fix? If not, Is there any way to compile a version of RotaryCraft with this fix, because I noticed your Github includes solely source code and not your build.gradle or anything? Or am I just going to have to wait for an update? RotaryCraft is a must-have in my game and I'd like to add it.

@TomeWyrm
Copy link
Collaborator

TomeWyrm commented Dec 1, 2015

You'll have to wait for an update, just like the rest of the public.

v10 shouldn't be that long in coming. I'd give my personal estimate, but I know better than to give ETAs in public. Sometimes this community is full of those who let their enthusiasm take over their common sense.

@ghost
Copy link

ghost commented Dec 1, 2015

lol alright thanks

@DeLourium
Copy link

now the new version v10 is there and now neither versions of forestry seem to work for me. (neither 3.4 (which i´ve been using without any problems with RC v9b) nor 4.0)

Any ideas why? (or forestry versions that DO work?)

EDIT:
found these lines to be important (with forestry 4.0):
Caused by: java.lang.NoClassDefFoundError: Could not initialize class
Reika.DragonAPI.ModInteract.RecipeHandlers.ForestryRecipeHelper

i just have no idea what they mean or how to fix this xD

@spamenigma
Copy link

Just done some quick testing with forestry 1.7.10-4.2.2.50 and no crashing issues here. finally i can update my modpack \o/ :+1:

@ljfa-ag
Copy link
Collaborator

ljfa-ag commented Dec 22, 2015

Alright, so if it works with the newest Forestry release it should be fine.

@DeLourium
Copy link

is there any compatibilty to forestry versions prior to 4.x with the v10 of RC?

I recieved this error while using Forestry 3.6:
RotaryCraft had an error reading Forestry:
Null Item for Apatite

Can I somehow fix this?

Because i cant update Forestry due to problems with updating the forge version

EDIT: never mind xD
just managed to update forge and use the newest version of forestry
AND IT FINALLY WORKS!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests