Ah well, that's not quite true I think
The vanilla minecraft code has poor documentation because it changes all the time, not much to be done about that. Most of the time, it's most helpful to think of a vanilla object that does something similar to what you want, then go look at the code for it.
But the "Forge" packages have patchy documentation because many of the contributors haven't taken the time to document their stuff properly. As a result, you've got to hunt through the implementation code to try and figure out how to use the classes and methods correctly. Some are a lot better than others, but it's very rare for them to be up to the standard of, say, the java.util package.
The bigger picture stuff such as overviews, example implementations or test cases, etc is almost totally missing, which is where the various tutorial and sample code lying around the place can be helpful (its quality is highly variable!). Once you've amassed a certain amount of knowledge, the rest becomes easier to find, the problem is sticking with it long enough (and having the temper control to not punch your screen in after wasting an entire day chasing a red herring).
You might find this tutorial project a useful base to start working from.
https://github.com/TheGreyGhost/MinecraftByExample
-TGG
where can I find the implementation stuff? Sorry if I'm coming off as mildly stupid, I'm used to Bukkit where every tiny feature is documented