Minecraft: Where's the best place to start with writing Bukkit plugins?

I've been running servers pretty much since early Minecraft beta, I've always used Bukkit and depended on other people and friends to alter or write plugins. I'd really like to be able to do some of the programming work myself rather than just work all the configurations. I don't want to jump into lot's of complicated things, just basic plugins like the ability to switch PvP on and off from in game or have a custom whitelist message etc. I just really don't know where to start. I know there's lots of great tutorials on youtube and series tutorials which cover everything, but where's a good place to start? Should I learn about Minecraft modding first or? It's hard to explain but hopefully someone will be able to recommend where to start with it all. Cheers

First of all, you need to understand java and basic programming concepts including memory management and oop, and a bit of background in algorithms would not hurt. Plugins are programs, and to write plugins you are going to be writing programs in Java.

Then - well, good luck finding a "good" tutorial. Most of them assume you already know how to write bukkit plugins, and some of them really really suck.

I used this to get started:

http://wiki.bukkit.org/Plugin_Tutorial

But there's so much it leaves out. I have yet to find a tutorial that really starts at the absolute basics and helps you understand how the bukkit api works, how you for example reference a block in the world, how to move it, how to change it, etc. I had to figure a lot of this out on my own. If I had the time I'd write a minecraft tutorial that is actually useful for the person that has never done so.

What got me going was to download the source for plugins and look at their source to see how they did stuff. That was how I figured out how to do stuff, not from all of the mostly worthless tutorials that are out there.