You really have a lack of programming knowledge. This has nothing to do with Java, but programming in general. If you need new arguments in a method you created, you modify the method to support those new arguments. Is your code after all.
Issues with the Container are caused because the server doesn't know it the Container is open. Guis with Containers always have to be opened on the server side.
Use the
onItemRightClick
method (may or may not be the right name, not at my workspace atm) and change the state from the Item in there. Remember: you have to store the state in the ItemStack's NBT.
1) Why do you implement IInventory when you always return null in
getStackInSlot
?
2) If ThermalDynamics is doing things only server side, it might be because server<->client desynch. Try marking the block for update after the extractEnergy method.
That shouldn't even compile. That field doesn't exist anymore. The method requires an Item as the result, so just returning the Item will work.
Also, please rename the parameters to something readable, it will make everyone's life better.
17.05 05:10:59 [server] main/INFO [sTDERR]: [java.lang.Throwable$WrappedPrintStream:println:748]: Caused by: java.lang.ClassNotFoundException: codechicken.lib.asm.ASMInit
It seems like CodeChickenLib isn't there. Do you have CodeChickenCore?