Mit Minecraft-Plugins ganz einfach Programmieren lernen! Baue dein eigenes Minecraft! Der Enderdrache ist besiegt, die Base steht auf festen Beinen, aber irgendwie willst du mehr aus deinem Server machen? Plugins sind der Schlüssel zu einer ganz neuen Minecraft-Welt. In diesem Buch lernst du, wie du deine eigenen Plugins mit Java entwickelst von neuen Crafting-Rezepten über das Design epischer Schlachten bis hin zu modifizierten Monstern und Ausrüstungsgegenständen. Mit deinen Plugins kannst du ein ganz neues Minecraft erfinden und lernst nebenbei Schritt für Schritt die Programmierbasics in Java. Minecraft-Plugins entwickeln ohne VorkenntnisseDynamische Charaktere, Steuerung per Chat, magische Explosionen, stylische Inventarmenüs und vieles mehrEigene Features erstellen, zum Mitspielen ohne Installation oder ModsOhne Vorkenntnisse einsteigen und mit Java programmieren lernenAus dem Inhalt:Tools installieren und das erste Plugin-Projekt erstellenBasics zum Aufbau von QuellcodeDatentypen und VariablenArrays und KontrollstrukturenItems und Inventare modifizierenMonster und Rüstungsgegenstände selbst erstellen und spawnenEigene Crafting-Rezepte entwickelnItem-Shops und Arenakämpfe auf dem eigenen Server
Inhaltsverzeichnis
Vorwort . . . 13
1. Einleitung: Willkommen in der Welt der Minecraft-Plugin-Programmierung . . . 15
1. 1 . . . Was sind Minecraft-Plugins, und warum macht es Spaß, sie zu entwickeln? . . . 16
1. 2 . . . Die wichtigsten Fragen vor dem Lesen . . . 17
1. 3 . . . Struktur des Buches . . . 20
1. 4 . . . Übersicht über die Kapitel . . . 23
2. Aller Anfang ist leicht: Die ersten Schritte zur Plugin-Entwicklung . . . 27
2. 1 . . . Was ist Java, und warum nutzen wir diese Programmiersprache? . . . 27
2. 2 . . . Das Plugin-Projekt erstellen . . . 39
2. 3 . . . Testnachrichten in der Konsole ausgeben . . . 64
3. Los geht' s: Programmier-Basics mit Plugins kennenlernen . . . 77
3. 1 . . . Einen einfachen Befehl erstellen und registrieren . . . 78
3. 2 . . . Fehler finden und behandeln . . . 95
3. 3 . . . Methoden machen das Leben einfacher . . . 99
3. 4 . . . Datentypen und Variablen . . . 105
3. 5 . . . Methoden mit Parametern und Rückgabewerten . . . 115
3. 6 . . . Ein wenig Mathematik . . . 124
3. 7 . . . Musterlösungen für die Übungen . . . 134
4. Mehr Kontrolle im Quellcode: Kontrollstrukturen und Arrays . . . 137
4. 1 . . . Wahrheitswerte und »if«-Abfragen . . . 137
4. 2 . . . Arrays . . . 149
4. 3 . . . Schleifen . . . 156
4. 4 . . . Musterlösungen für die Übungen . . . 170
5. Hör mal, wer da hämmert: Events mit einem Listener abhören . . . 175
5. 1 . . . Einen Listener schreiben und registrieren . . . 176
5. 2 . . . Weitere Beispiele für Listener . . . 180
5. 3 . . . Musterlösungen für die Übungen . . . 190
6. Hol mehr aus deinen Ideen: Weitere Plugin-Basics . . . 193
6. 1 . . . Bestimmte Aktionen an Spielern vornehmen . . . 193
6. 2 . . . Mit Blöcken arbeiten . . . 198
6. 3 . . . Die Welt manipulieren . . . 204
7. Die Mischung macht' s: Collections und funktionales Programmieren . . . 213
7. 1 . . . Listen . . . 213
7. 2 . . . Maps . . . 224
7. 3 . . . Grundlagen der funktionalen Programmierung . . . 231
7. 4 . . . Musterlösungen für die Übungen . . . 242
8. Befehlshaber: Fortgeschrittene Befehle erstellen . . . 247
8. 1 . . . Tab-Vervollständigung hinzufügen . . . 248
8. 2 . . . Berechtigungen für Befehle festlegen . . . 253
8. 3 . . . Chatnachrichten aufhübschen . . . 258
9. Ausrüstung leicht gemacht: Items und Inventare . . . 265
9. 1 . . . Items erstellen und nutzen . . . 266
9. 2 . . . Virtuelle Inventare erstellen . . . 278
9. 3 . . . Musterlösungen für die Übungen . . . 290
10. Daten und Einstellungen speichern: Configs . . . 293
10. 1 . . . Daten in einer Config speichern und laden . . . 294
10. 2 . . . Musterlösungen für die Übung . . . 303
11. Gut Ding will Weile haben: Asynchrone Prozesse . . . 305
11. 1 . . . Nutzung von BukkitTasks . . . 305
11. 2 . . . Musterlösungen für die Übungen . . . 314
12. Grausame Monster und schwebende Hologramme: Entities manipulieren . . . 319
12. 1 . . . Entities erstellen und verändern . . . 320
12. 2 . . . Musterlösungen für die Übungen . . . 339
13. Komplexbeispiele 1 . . . 343
13. 1 . . . Aufgaben . . . 343
13. 2 . . . Musterlösungen . . . 346
14. Werkbänke mit Kniff: Eigene Crafting-Rezepte erstellen . . . 357
14. 1 . . . Neue Rezepte anlegen . . . 357
14. 2 . . . Bestimmte Items für dein Rezept voraussetzen . . . 364
14. 3 . . . Musterlösungen für die Übungen . . . 370
15. Informationen übersichtlich darstellen: Scoreboards . . . 375
15. 1 . . . Die Tabliste verändern . . . 375
15. 2 . . . Sidebar-Scoreboards anlegen und nutzen . . . 379
15. 3 . . . Musterlösung für die Übungen . . . 387
16. Eine Klasse für sich: Grundlagen der objektorientierten Programmierung . . . 389
16. 1 . . . Einführung Klassen . . . 390
16. 2 . . . Vererbung . . . 406
16. 3 . . . Exkurs: Exceptions mit »try . . . catch« behandeln . . . 415
16. 4 . . . Exkurs: Interfaces am Beispiel von »ConfigurationSerializable« . . . 417
16. 5 . . . Static . . . 422
16. 6 . . . Musterlösungen für die Übungen . . . 424
17. Komplexbeispiele 2 . . . 427
17. 1 . . . Komplexbeispiel 17. 01: Ein passabler Parkour . . . 427
17. 2 . . . Komplexbeispiel 17. 02: Die Schlimmstein-Bombe . . . 428
17. 3 . . . Komplexbeispiel 17. 03: Hokuspokus . . . 428
17. 4 . . . Komplexbeispiel 17. 04: Schönheit liegt im Auge . . . . . . 429
17. 5 . . . Komplexbeispiel 17. 05: Waffenspiel der Wahrheit . . . 429
17. 6 . . . Weitere Ideen zum Selbst-Umsetzen . . . 430
18. Wie geht es weiter? . . . 431
Index . . . 433