I'm looking into using NMS in some of my plugins and I was wondering if people had tips for using it for the first time.
The same "tip" for pretty much anything else related to programming: don't use code you don't understand.
When diving into NMS, be prepared to spend a lot of time trying to understand what the code does. For example, take a look at this method and tell me what it does. I'll wait. To add to the excitement, you can't debug the code to see how it works at runtime unless you create a custom build of bukkit. If you are up for the challenge, you can make some really cool plugins using NMS, but the learning curve is practically vertical.
In a way, yes. You spend hours and hours pouring over obfuscated and meaningless code, trying to figure out what it does. Then, all at once, it starts to make sense and you quickly figure out what you need to do. There is nothing gradual about learning to read NMS code.
You're kidding, right? EDIT: Nevermind, I see where you were going with that comment. In reality it's down to how dedicated you want to be in spending that time understanding NMS. I can't decide whether or not it would be worth it because of the Mod API, but then again, it's not like we can expect them to finish that any time soon...
Google much anyone https://www.google.com/search?q=nms+explained&ie=UTF-8&oe=UTF-8&hl=en&client=safari
I called out ChunkProviderGenerate because I have a lot of experience in that class from writing Subtereanea. The method I chose is responsible for generating the surface shape of the world and applying a "top-coat" of blocks determined by the current biome. I learned this by noticing the method makes use of the global perlin noise generators (b, l, j, k) and the BiomeBase[] z. I've lost count of how many hours I've spent studying obfuscated terrain generation code.
<shudder> Yeah, I have looked at that code in the past. Thought maybe it wouldn't be too hard to get other blocks emitting signals. Haha.