Hmmmmmmmmm. This is looking as though where things start going pear-shaped is between Buildcraft 7 and Logistics Pipes, but oddly only if one of the anvil-replacing builds of Better Anvils is installed. The latest Buildcraft 7 release "improves compatibility" with Logistics Pipes. I'm going to update that and retest.
update: didn't help.
I am beginning to strongly suspect that the real underlying problem here is that there is still a bug in Forge with respect to replacing vanilla blocks. Because I'm seeing all kinds of weird apparently-unconnected things blowing up and breaking, both on pure Forge and on Cauldron, affecting a variety of different mods — Industrialcraft2 failing to validate client IC2 version, Logistics Pipes failing to load NBT data for pipes, Forestry items missing, ThaumicTinkerer having aneurysms, Bibliocraft crashing on client connection — but only with anvil-replacing Better Anvils builds. If I take a test server instance that is blowing technicolor chunks all over the floor and make no change except switch BA 3.1.x out and drop BA 4.0-alpha back in, everything loads perfectly and all works. And as far as I'm aware, essentially the only substantive difference between 3.1.x and 4.0-alpha is that 4.0 adds the improved anvil alongside the vanilla anvil, while 3.1.x replaces the vanilla anvil. But none of the mods that have issues are in any way related to or make any use of Better Anvils, or anvils at all for that matter, and it doesn't appear to be a Cauldron problem because it happens on a pure-Forge server as well ... the only common factor I'm aware of is Forge itself.
So my gut feeling here is that there is a bug still buried deep inside Forge somewhere that is triggered by replacing a vanilla block, but once triggered only actually manifests with a certain set of mods which appears to include, but not necessarily be limited to, IC2, Buildcraft, Logistics Pipes, possibly Forestry, and Bibliocraft. Why those mods, I have no idea. The Buildcraft API ties the first three or four together; but to the best of my knowledge, Bibliocraft has no dependency on or connection to Buildcraft whatsoever.
Would anyone mind if I did some Asm hacks to replace or at least delegate to Better Anvil's anvil?
I don't know enough about the subject for a meaningful answer. But won't that possibly tie it tightly to specific Forge releases...?
Not really, Asm is kinda like replacing some bits of the code that is compiled, for example: If I have a String called "A_RANDOM_STRING", and wanted to change its name to "A_STRING", I could totally do that, however it comes with a performance cost.
The Asm library basically decompiles and recompiles the class file into its binary format, which takes up time and memory to do so, or at least that's from what I understand of it.
What I plan to do however; is just replace the call that displays the default gui and inject some code that calls Better Anvil's gui.
Not really, Asm is kinda like replacing some bits of the code that is compiled, for example: If I have a String called "A_RANDOM_STRING", and wanted to change its name to "A_STRING", I could totally do that, however it comes with a performance cost.
The Asm library basically decompiles and recompiles the class file into its binary format, which takes up time and memory to do so, or at least that's from what I understand of it.
What I plan to do however; is just replace the call that displays the default gui and inject some code that calls Better Anvil's gui.
There's gotta be an event that's fired when the anvil interface is opened. Couldn't you theoretically have an Event Listener for that event, and display you're own GUI then?
Replacing Vanilla's code has always been something I don't particularly like. Won't stop me from using the mod though.
There's gotta be an event that's fired when the anvil interface is opened. Couldn't you theoretically have an Event Listener for that event, and display you're own GUI then?
Replacing Vanilla's code has always been something I don't particularly like. Won't stop me from using the mod though.
There is an event that fires when a gui is opened, however it's client-side only.
vdvman has spoken about changing how the system works (without nasty hacks like this!), however I do not know what he has planned for the new system, however some of of his ideas are posted in this thread, if you go back about four-five pages.
So far so good. Clean start without errors on my pure Forge 1388 test server ...
Works fine on my Cauldron 1388 test server ...
Pushing to my live server. Yay!!! Thank you master801!!!
One bug still present: When transferring enchantments from an item in the middle slot to a blank book, it still consumes ALL of the books from the left slot instead of just one book.
One bug still present: When transferring enchantments from an item in the middle slot to a blank book, it still consumes ALL of the books from the left slot instead of just one book.
I think I mentioned this before, but I don't know if it's a design choice, or an actual bug. vdvman1 will have to confirm if this is a bug or not (or possibly someone could check with older versions of Better Anvil).
I think I mentioned this before, but I don't know if it's a design choice, or an actual bug. vdvman1 will have to confirm if this is a bug or not (or possibly someone could check with older versions of Better Anvil).
I hear you, and have been waiting for vdvman1 to weigh in. It doesn't seem to make a lot of sense as a design choice though. My guess is it's a simple oversight.
Would anyone mind if I did some Asm hacks to replace or at least delegate to Better Anvil's anvil?
I don't know enough about the subject for a meaningful answer. But won't that possibly tie it tightly to specific Forge releases...?
Not really, Asm is kinda like replacing some bits of the code that is compiled, for example: If I have a String called "A_RANDOM_STRING", and wanted to change its name to "A_STRING", I could totally do that, however it comes with a performance cost.
The Asm library basically decompiles and recompiles the class file into its binary format, which takes up time and memory to do so, or at least that's from what I understand of it.
What I plan to do however; is just replace the call that displays the default gui and inject some code that calls Better Anvil's gui.
There's gotta be an event that's fired when the anvil interface is opened. Couldn't you theoretically have an Event Listener for that event, and display you're own GUI then?
Replacing Vanilla's code has always been something I don't particularly like. Won't stop me from using the mod though.
There is an event that fires when a gui is opened, however it's client-side only.
vdvman has spoken about changing how the system works (without nasty hacks like this!), however I do not know what he has planned for the new system, however some of of his ideas are posted in this thread, if you go back about four-five pages.
if the problem was with forge bugs when replacing blocks, how about going with upgrading the anvil approach?
have the user upgrade the vanilla anvil into the better anvil.
I'd be okay with that, I'm not really sure how vdvman would feel though.
Make up a recipe that I could use, and it may be actually used. Please though, no very-expensive materials in the recipe.
I would be perfectly fine with a new recipe, just temporarily until I get around to rewriting the mod
How's this look? Simple, not too expensive, sorta makes sense...
That looks good enough. I'll push out an update later today or tomorrow, if I can.
EDIT:
With my new speedy computer, I could actually push this update out today and not later!
http://www.mediafire.com/download/o52y1wdxdxop0nl/BetterAnvil-3.2.0.jar
By the way, I hate this forum software, I can't even edit my post that quotes someone without the post entirely breaking.
Does this work in 1.7.10? I assume so, but the tag at the top still says 1.7.4.
Better Anvil version 3.2.
20 made by me is for 1.7.10, same with version 4.0.0 that was made by someone else.Yeah, a lot of things about the forum software are really broken right now, and have been for some time.
Snagging the 3.2.0 build to try. didn't see the update until now.
So far so good. Clean start without errors on my pure Forge 1388 test server ...
Works fine on my Cauldron 1388 test server ...
Pushing to my live server. Yay!!! Thank you master801!!!
One bug still present: When transferring enchantments from an item in the middle slot to a blank book, it still consumes ALL of the books from the left slot instead of just one book.
I think I mentioned this before, but I don't know if it's a design choice, or an actual bug. vdvman1 will have to confirm if this is a bug or not (or possibly someone could check with older versions of Better Anvil).
I hear you, and have been waiting for vdvman1 to weigh in. It doesn't seem to make a lot of sense as a design choice though. My guess is it's a simple oversight.
Definitely a bug!
Okay, now we know for sure that it is a bug.
I'll try fixing the bug and pushing an update later, when I can.
EDIT:
3.2.0-A fixes this bug. I have no idea what the change I did to it actually did, but it works.
http://www.mediafire.com/download/3hym7m74bgnl789/BetterAnvil-3.2.0-A.jar
Confirmed 3.2.0-A fixes the book-consumption problem on my servers.
If you know of any other problems, please let us know.