Erschaffe dir eine ganz neue Minecraft-Welt! Der Autor und Minecraft-Experte Max Schlosser zeigt dir, wie du ohne Vorkenntnisse und ganz einfach Plugins für deinen Minecraft-Server in Java entwickelst - ganz ohne Mods. Erfinde neue Crafting-Rezepte, designe epische Schlachten, modifiziere Monster und Ausrüstungsgegenstände - und lerne ganz nebenbei die Grundlagen der Programmierung in Java. So kannst du Minecraft Schritt für Schritt nach deinen Vorstellungen umgestalten.
Aus dem Inhalt:
- Tools installieren und das erste Plugin-Projekt erstellen
- Basics zum Aufbau von Quellcode
- Datentypen und Variablen
- Arrays und Kontrollstrukturen
- Items und Inventare modifizieren
- Monster und Rüstungsgegenstände selbst erstellen und spawnen
- Eigene Crafting-Rezepte entwickeln
- Item-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