Das ist ein langwieriger Prozess.
1. Hör auf mit Bukkit, damit kann man keinen schönen Code schreiben. Wenn man es bereits kann, dann ist es zwar möglich, aber zum LERNEN kann ich es nicht empfehlen. Vor allem wirft Bukkit keine Exceptions. Wenn du mal mit der normalen Java API arbeitest, dann wirst du in der Dokumentation der funktionen hinweise finden: Dabei handelt es sich z.B: um Empfehlungen der Javaentwickler oder um Nebenwirkungen von bestimmten Methoden. Dabei lernst du auch, bestimmte Dinge zu berücksichtigen, an die du vielleicht gar nicht gedacht hast. In Bukkit fehlt das. Du kannst dir ja auch einfach mal ein paar Dokumentationen der Javaklassen ansehen und sie dann mit der Bukkit Dokumentation vergleichen. Du wirst feststellen, dass Bukkitcode quasi gar nicht dokumentiert ist, wohingegen du in Java fast von Textwänden erschlagen wirst (und das ist gut).
2. Sieh dir existierenden Code an. Stelle aber sicher, dass es sich um hochwertigen Code handelt, Bukkitplugins fallen hier raus, da die meisten nicht sauber gecoded sind.
3. Wie zh schon verlinkt hat. Auch wenn Java quasi OOP erzwingt, heißt das nicht, dass man damit keine Fehler machen kann. Man sollte trozdem die Idee hinter OOP verstanden haben. Hierfür gibt es sowohl gute Bücher, als auch gute Texte im Internet. Du kannst hier locker ein ganzes Buch lesen ohne einmal etwas zu programmieren. Es handelt sich mehr oder weniger um Theorie, wobei man natürlich das gelernte noch üben muss, damit man es richtig anwenden kann.
4. Wieviele Probleme lassen sich auf immer die selbe Grundlage abstrahieren. Das gilt es zu erkennen und dann entsprechend zu implementieren. Man muss sich also immer Fragen, wie genau etwas aufgebaut ist und welchen verschiedenen "Dinge" man hat und wie diese Miteinander "sprechen". Es gibt dafür auch s.g. Entwurfsmuster:
http://de.wikipedia.org/wiki/Entwurfsmuster Das ist eine Sammlung von bestimmten Softwarestrukturen für bestimmte Probleme. Jede Implementierung sieht aber trozdem immer ein wenig anderst aus. Es sollte als strikter Wegweiser betrachtet werden, jede Abweichung vom Pfad muss man selbst hinterfragen.