It is one of the coremods that you have. The last part of that message says not to contact forge, here you are contacting forge. Forge didn't make the code that is causing the problem. A coremod injects code into vanilla code to change functionality which can very easily cause problems.
Typically I just check the file locations, net.minecraftforge.client.event, net.minecraftforge.event, net.minecraftforge.fml.client.event, net.minecraftforge.fml.common.event, or net.minecraftforge.fml.common.gameevent. Note fml.common.event are the mod life-cycle events.
This is a static initalizer. Don't do this.
This is basically having IHasModel.
This doesn't exactly say what isn't working, but I believe it is this part. You are attempting to register a new instance of the Item class. Which you have supplied no registry name, unlocalized name, etc etc.
Nevermind it is probably better to do it in RenderWorldLastEvent. But I'm not sure haven't been able to sit down and look at stuff in a while. School just started up and today is my first day off since.
Cache the a list of IBlockStates on startup in either the initialization event or the postInitialization event in your @Mod class. This solves long break times, however it will take a little longer to load the game initially. On the other hand you could cache this when a block is broken so only the first block takes a while. I'd recommend the first one personally.
A good way to do this is to kinda sit on the forums and read anything that sounds interesting or anything at all. Because people that help on here tend to have been modding for many years with forge or have worked on forge itself either with PRs on github or actually work on it like LexManos.
Indeed.
Bukkit as a API is much simpler to use because you cant do too much with it, also you are only ever interacting with the Server side of things, except for sending packets. There is also the limiting factor of not having access to all the Minecraft classes in it of it self.
Most of this is actually in vanilla's code base. Forge has plenty of documentation on it's own stuff, but I will say it is difficult to learn how to do stuff like this without documentation or with out knowing where to look.
You can read about a few things forge related. On the docs here. You will want to look at the "events" section if you dont know what these are or how to use them. RenderTickEvent is pretty self explanatory I think. I know about the BlockRenderDispatcher from experience.
You won't find much comments on semi-advanced to advanced topics. You kinda need to look at the code and figure out what it does and what it is used for.
Events are pretty straightforward as mentioned above you can read about them at the link. However rendering code is most of the time unique so that isn't really covered in tutorials you can pieces things together from some online resources scattered over the internet. But it will mostly be from experimenting and reading the already existing code.
World#getChunkFromBlockPos
And use the players position
Multiply the chunk coordinates by sixteen and simply calculate from there(will give you one corner)
Use the RenderTickEvent and Minecraft#getBlockRendererDispatcher() to render your block of choice.