Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke...

21

Transcript of Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke...

Page 1: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird
Page 2: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

3

Inhalt

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Kapitel 1 CanaryMod 13

1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2 Die Oberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.3 Einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.4 Rechte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.4.1 Spieler zu einer Gruppe hinzufügen . . . . . . . . . . . . . . 201.4.2 Gruppen erstellen und löschen . . . . . . . . . . . . . . . . . . 201.4.3 Rechte vergeben und entziehen . . . . . . . . . . . . . . . . . 21

1.5 Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.6 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Kapitel 2 Java 23

2.1 Programmiersprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.2 Besonderheiten von Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.3 Installation und Einrichtung . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.3.1 Java-Compiler installieren . . . . . . . . . . . . . . . . . . . . . . 282.3.2 Ordner einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.4 Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Kapitel 3 Das erste Plugin 33

3.1 Programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.2 Kompilieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.1 Fehler finden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2.2 Jar-Datei erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3 Starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.4 Entdecken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 3: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

4

Inhalt

3.5 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Kapitel 4 Chat-Befehle 45

4.1 Eigene Befehle definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.2 Chat-Nachrichten versenden . . . . . . . . . . . . . . . . . . . . . . . . . . . 514.3 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Kapitel 5 Variablen und Konstanten 55

5.1 Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.1.1 Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555.1.2 Zeichenketten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.1.3 Konvertierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.1.4 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.2 Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785.3 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Kapitel 6 Schleifen 83

6.1 Kürbis-Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836.1.1 Positionierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846.1.2 Blöcke platzieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 Die verschiedenen Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . 896.2.1 for-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906.2.2 while-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956.2.3 do-while-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 996.2.4 Verschachtelte Schleifen . . . . . . . . . . . . . . . . . . . . . . . 100

6.3 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Kapitel 7 Verzweigungen 109

7.1 if-Verzweigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097.2 case-Verzweigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 4: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

5

Inhalt

7.3 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

Kapitel 8 Funktionen 121

8.1 Deklaration von Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218.2 Rückgabewerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228.3 Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238.4 Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248.5 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1298.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Kapitel 9 Klassen und Objekte 131

9.1 Die ganze Welt ist ein Objekt . . . . . . . . . . . . . . . . . . . . . . . . . . 1319.2 Erstellung einer eigenen Klasse . . . . . . . . . . . . . . . . . . . . . . . . 1349.3 Funktionen in Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379.4 Zugriffskontrolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459.5 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489.6 Abstrakte Methoden und Klassen . . . . . . . . . . . . . . . . . . . . . . 1539.7 Bau-Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.8 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629.9 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Kapitel 10 Bauen 165

10.1 Notunterkunft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16510.1.1 Wände und Decke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16610.1.2 Tür . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17010.1.3 Bett . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17410.1.4 Fackel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

10.2 Runde Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17610.2.1 Kreise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17610.2.2 Kugeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

10.3 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18410.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 5: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

6

Inhalt

Kapitel 11 Schilder 187

11.1 Hängende Schilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18711.2 Stehende Schilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18811.3 Text festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19011.4 Schilder-Plugin (Listen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

11.4.1 Listen-Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19411.4.2 Das Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

11.5 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20811.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Kapitel 12 Listener 213

12.1 Grundgerüst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21312.2 Spieler-Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21412.3 Kreaturen-Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22112.4 Welt-Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22412.5 System-Ereignisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22712.6 Listener und Chat-Befehle verknüpfen . . . . . . . . . . . . . . . . . . . 22812.7 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23012.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Kapitel 13 Crafting-Rezepte 231

13.1 Rezepte festlegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23113.2 Neues Rezept hinzufügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23313.3 Feuerschwert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23413.4 Enderbogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23713.5 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24113.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

Kapitel 14 Informationen dauerhaft speichern 243

14.1 Konfigurationsdateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24314.1.1 Lesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24514.1.2 Schreiben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

14.2 Datenbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24814.2.1 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24914.2.2 Daten einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 6: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

7

Inhalt

14.2.3 Daten lesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25114.2.4 Daten ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25314.2.5 Daten löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

14.3 Schilder-Plugin mit Speicherfunktion . . . . . . . . . . . . . . . . . . . 25514.4 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26614.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

Kapitel 15 Eigene Spielmodi entwickeln 271

15.1 Schneeballschlacht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27115.1.1 Schneebälle verteilen . . . . . . . . . . . . . . . . . . . . . . . . . 27215.1.2 Schneebälle automatisch auffüllen . . . . . . . . . . . . . . 27315.1.3 Punkte zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27415.1.4 Punkte dauerhaft speichern . . . . . . . . . . . . . . . . . . . . 27615.1.5 Highscore-Liste anzeigen . . . . . . . . . . . . . . . . . . . . . . . 27915.1.6 Vollständiger Quellcode . . . . . . . . . . . . . . . . . . . . . . . . 281

15.2 Sammelspiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28615.2.1 Aufbau des Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28615.2.2 Plugin starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28715.2.3 Spieler betritt den Server . . . . . . . . . . . . . . . . . . . . . . 28915.2.4 Gegenstände zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . 29015.2.5 Auftrag anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29115.2.6 Vollständiger Quellcode . . . . . . . . . . . . . . . . . . . . . . . . 291

15.3 Rätsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29415.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

Kapitel 16 Künstliche Intelligenz 297

16.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29716.1.1 AIBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29716.1.2 AIManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

16.2 Hauskuh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30016.3 Golem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

16.3.1 Erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30516.3.2 Folgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30816.3.3 Sammeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

16.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 7: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

8

Inhalt

Kapitel 17 Eigenständige Java-Programme 323

17.1 Grundgerüst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32317.2 Statische Variablen und Funktionen . . . . . . . . . . . . . . . . . . . . . 32417.3 Ein- und Ausgabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

17.3.1 »Hallo Welt!«-Programm . . . . . . . . . . . . . . . . . . . . . . . . 32617.3.2 Eingaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

17.4 Quiz programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

Anhang A Rätsel-Lösungen 335

Anhang B Befehlsreferenz 351

Anhang C Blocktypen 375

Anhang D Gegenstandstypen 383

Anhang E Rechte 393

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 8: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

13

Kapitel 1

CanaryModAlleine Minecraft zu spielen, kann schon jede Menge Spaß machen, noch lustiger wirdes aber, wenn du dich mit anderen Spielern zusammentust, um mit ihnen, oder auchgegen sie zu spielen. Dazu kannst du dir entweder einen der hunderten öffentlichen Ser-ver aussuchen, die du überall im Internet findest, oder du kannst deinen eigenen Servernutzen – dann hast du die volle Kontrolle über alle Einstellungen.

Um deinen eigenen Server zu betreiben, benötigst du neben dem normalen Minecraft-Spiel, das auch Client genannt wird, noch ein weiteres Programm, nämlich den Minecraft-Server. Den »normalen« Minecraft-Server, manchmal auch »Vanilla-Server« genannt,kannst du auf der offiziellen Minecraft Webseite www.minecraft.net herunterladen. Nebendieser Version gibt es aber auch noch zahlreiche sogenannte Mods, also Modifikationendes Original-Servers. Als Mods oder Modifikationen bezeichnet man im Zusammenhangmit Spielen Versionen eines Spiels, die in irgendeiner Form verändert, also modifiziertwurden. Diese meist von Fans entwickelten Mods bieten häufig viele zusätzliche Funk-tionen und Annehmlichkeiten, über die der Vanilla-Server nicht verfügt. So auch derCanaryMod, der in diesem Buch Verwendung findet.

Dieser ermöglicht es unter anderem, besonders einfach eigene Plugins zu erstellen –und darum soll es hier ja schließlich gehen. Aber auch darüber hinaus bietet der Canary-Mod zahlreiche praktische Funktionen, wie zum Beispiel ein ausgeklügeltes Rechte-Management, mit dem du vergleichsweise einfach festlegen kannst, wer auf deinemServer was tun darf. In diesem ersten Kapitel wollen wir uns zunächst um die Installationund Einrichtung eines Servers kümmern und uns einige der wichtigsten Funktionen desCanaryMods genauer ansehen.

1.1 InstallationDie neuste Version des CanaryMods findest du, zusammen mit allen Programmen ausdem Buch, im Internet auf buch.daniel-braun.com. Wie auch Minecraft selbst, besteht

MerkeDas normale Minecraft-Spiel, das du auch startest, wenn du alleine spielst, wird Clientgenannt. Das Programm, das wir in diesem Kapitel installieren werden, das du benö-tigst, um mit Freunden zusammen spielen zu können, heißt hingegen Server.

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 9: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1 CanaryMod

14

der CanaryMod zunächst nur aus einer einzelnen Datei, die den Namen CanaryMod.jarträgt. Da diese Datei, sobald du sie öffnest, automatisch weitere Dateien erzeugt, solltestdu sie vorher unbedingt in einen eigenen Ordner kopieren. Den kannst du anlegen, indemdu mit der rechten Maustaste in einen bereits bestehenden Ordner klickst und dort dannden Eintrag NEU und dann ORDNER, beziehungsweise, falls vorhanden, direkt NEUER ORD-NER auswählst. Prinzipiell kannst du den Ordner benennen, wie du möchtest. In diesemBuch gehen wir allerdings davon aus, dass der Ordner den Namen server trägt undunter Windows im Hauptverzeichnis der Festplatte liegt, also C:\server. Unter GNU/Linux und OS X befindet er sich im Benutzerverzeichnis, also im Ordner /home/Benut-zername/server bzw. /Benutzer/Benutzername/server. Ist die Datei CanaryModerst einmal am richtigen Platz, kann sie durch einen Doppelklick gestartet werden. Essollte sich dann das in Abbildung 1.1 gezeigte Fenster öffnen. Dort steht übersetzt: »Bittewarten, während das Programm initialisiert wird«.

Abbildung 1.1: Ladefenster beim ersten Starten

Wenn du beim Warten das Ladefenster etwas zur Seite schiebst, kannst du einen Blickin den Server-Ordner werfen. Dort wird dir auffallen, dass der CanaryMod hier siebenOrdner und eine Text-Datei angelegt hat, die du auch in Abbildung 1.2 sehen kannst.

Abbildung 1.2: server-Ordner nach dem Öffnen der CanaryMod-Datei

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 10: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1.1 Installation

15

Sobald dieser Vorgang abgeschlossen ist, wirst du mit der in Abbildung 1.3 gezeigtenMeldung konfrontiert: »Sie müssen den Nutzungsbedingungen zustimmen, um den Ser-ver zu starten. Weitere Informationen finden Sie in der Datei eula.txt.« Die Meldungist allerdings kein Grund zur Sorge – sie erscheint immer beim ersten Starten und fordertdich lediglich dazu auf, die Nutzungsbedingungen zu lesen und zu akzeptieren.

Abbildung 1.3: Meldung nach dem ersten Starten

Den Link zu den Nutzungsbedingungen findest du in der vom Server erzeugten Textdatei,die sich, wie du schon in Abbildung 1.2 gesehen hast, direkt im server-Ordner befindetund den Namen eula.txt trägt. Ihren Inhalt findest du auch in Listing 1.1. Wenn du die-sen Link öffnest, wirst du auf die offizielle Seite des Minecraft-Herstellers Mojang gelei-tet, wo du die Nutzungsbedingungen glücklicherweise auch auf Deutsch vorfindest.

Dort wird geregelt, was du mit dem Spiel und dem Server machen darfst – und was nicht.Außerdem steht dort auch explizit, dass du, solltest du unter 18 sein, die Zustimmungeines gesetzlichen Vertreters einholen musst, also zum Beispiel eines Elternteils. Aufjeden Fall solltest du die Bedingungen sorgfältig lesen.

Hast du das getan und bist mit ihnen einverstanden, kannst du dies kenntlich machen,indem du die letzte Zeile von eula=false zu eula=true änderst. Nur wenn du das tust,kannst du den Server benutzen. Genau das wird in der ersten Zeile der Datei auf Englischerklärt.

Wenn du die Änderungen gespeichert hast und nun wieder versuchst, den Server zustarten, sollte dieses Mal nach dem Ladefenster das eigentliche Server-Fenster erschei-nen, wie du es in Abbildung 1.4 sehen kannst. Bevor wir uns aber näher mit diesembeschäftigen, wollen wir zuerst einmal testen, ob der Server überhaupt funktioniert.Dazu lässt du das Server-Fenster einfach geöffnet und startest zusätzlich den normalenMinecraft-Client.

#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).#Mon Apr 01 13:37:00 BST 2015eula=false

Listing 1.1: Inhalt der Datei eula.txt

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 11: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1 CanaryMod

16

Abbildung 1.4: Der CanaryMod-Server im Betrieb

Im Hauptmenü wählst du dort dann den Eintrag MEHRSPIELER aus und klickst imAnschluss auf DIREKT VERBINDEN. Daraufhin öffnet sich die in Abbildung 1.5 gezeigteMaske, in der du als SERVERADRESSE 127.0.0.1 angibst. Damit sagst du Minecraft, dassder Server, mit dem du dich verbinden möchtest, auf demselben Computer läuft wie derClient selbst, deshalb ist die Adresse, unabhängig von deinem Computer, immer gleich.Nun musst du nur noch auf SERVER BEITRETEN klicken – und schon solltest du in einer ganzneuen Welt auf deinem eigenen Server stehen.

Abbildung 1.5: Die Ansicht DIREKT VERBINDEN

Wenn du dich nun direkt daran versuchst, einen Block abzubauen, wirst du dabei vermut-lich wenig Erfolg haben. Das ist kein Fehler, sondern ein Ergebnis des bereits erwähnten

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 12: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1.2 Die Oberfläche

17

Rechte-Managements des CanaryMod. Als neuer Spieler auf dem Server hast du zu-nächst keine Berechtigung, Blöcke abzubauen. Wie du das änderst, dazu später mehr.

1.2 Die OberflächeZunächst einmal wollen wir aber wieder zur Oberfläche des Server-Programms zurück-kommen, die du bereits in Abbildung 1.4 gesehen hast. Diese besteht, wie dir sicherbereits aufgefallen ist, hauptsächlich aus Textanzeigen. Die einzige Eingabemöglichkeitfür den Nutzer ist eine Textzeile am unteren rechten Rand. Das liegt daran, dass fast allesim CanaryMod entweder über Konfigurationsdateien, die wir im nächsten Abschnittbetrachten werden, oder durch Texteingaben eingestellt wird. Die grafische Oberflächeist hauptsächlich dazu da, dir den aktuellen Zustand deines Servers anzuzeigen. EinenÜberblick, wie viel Rechenpower dein Server gerade beansprucht, findest du im Recht-eck auf der oberen linken Seite. Die Detailansicht dieses Rechtecks kannst du in Abbil-dung 1.6 sehen.

Abbildung 1.6: Anzeige des Server-Status in der grafischen Benutzeroberfläche

MerkeBevor du weiterliest, solltest du noch einmal überprüfen, ob du alle nötigen Installa-tionsschritte ausgeführt hast:

1. Herunterladen der Datei CanaryMod.jar von buch.daniel-braun.com

2. Neuen Ordner server anlegen und die Datei dorthin kopieren

3. Datei durch Doppelklick ausführen

4. Nutzungsbedingungen lesen und akzeptieren

5. Server erneut starten

6. Verbindung mit Minecraft testen

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 13: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1 CanaryMod

18

In der ersten Zeile wird hier angezeigt, wie viel Arbeitsspeicher der Server gerade belegt.In der Zeile darunter wird die durchschnittliche Länge eines sogenannten Ticks ange-zeigt. Was genau das ist, wirst du in Kapitel 10 erfahren. In der vorletzten Zeile werdenverschiedene Informationen über die geladene Welt angezeigt und in der letzten Zeileschließlich, wie viele Kreaturen sich gerade auf dem Server bewegen. Ebenfalls auf derlinken Seite, allerdings am unteren Ende des Fensters, findest du eine Liste aller Spieler,die sich gerade auf deinem Server befinden.

Den mit Abstand meisten Platz nimmt allerdings der Bereich LOG AND CHAT auf der rechtenSeite ein. Hier kannst du nicht nur Chat-Nachrichten sehen, die über den Server ver-schickt werden, sondern auch Informationen über alles, was gerade auf dem Server pas-siert – und später auch Meldungen deiner eigenen Plugins.

In der Textzeile darunter kannst du Chat-Nachrichten, aber auch Chat-Befehle eingeben,wie du sie vielleicht schon vom Minecraft spielen kennst.

1.3 EinrichtenDie wichtigsten Einstellungen, wie zum Beispiel die maximale Anzahl von Spielern, oderwer auf deinen Server darf, werden aber nicht mithilfe dieser Textzeile, sondern in ver-schiedenen Konfigurationsdateien festgelegt, also Textdateien, in denen Einstellungenvorgenommen werden können. Diese Dateien findest du im Unterordner config in dei-nem Server-Verzeichnis. Die zentrale Datei, in der die wichtigsten Grundeinstellungendes Servers abgelegt sind, trägt den Namen server.cfg.

Die ersten sechs Zeilen der Datei, die du in Listing 1.2 sehen kannst, geben dir eine guteVorstellung vom Aufbau der Konfigurationsdatei. Die mit einem ; beginnenden Zeilensind Kommentare, die dir erklären, was genau die nachfolgende Einstellung bewirkt. Diemeisten der Einstellungen wirst du, zumindest am Anfang, überhaupt nicht brauchen,einige können aber durchaus interessant sein.

Die Einstellungen, die du in Listing 1.2 sehen kannst, gehören eher zu den weniger wich-tigen: announce-player-achievements legt fest, ob alle Spieler auf einem Serverinformiert werden sollen, wenn ein Spieler einen Erfolg freischaltet, allow-enchant-ment-stacking legt fest, ob verzauberte Gegenstände im Inventar mit nicht verzauber-

;Sets whether to inform all of a Player's Achievementannounce-player-achievements=true;Sets whether to allow items with enchantments to stack with non-enchanted itemsallow-enchantment-stacking=false;The default message to use for user bansban-default-message=You are banned from this server.

Listing 1.2: Ausschnitt aus der Datei server.cfg

123

456

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 14: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1.4 Rechte

19

ten Gegenständen gestapelt werden können und ban-default-message legt die Nach-richt fest, die einem Spieler angezeigt wird, wenn er vom Server verbannt wird.

Mit dem Wert max-players kannst du zum Beispiel angeben, wie viele Spieler sichgleichzeitig auf deinem Server befinden dürfen. Standardmäßig ist diese Einstellung aufden Wert 20 gesetzt. Mit command-block-enabled kannst du Kommandoblöcke aufdeinem Server erlauben oder verbieten.

Für den Anfang dürfte aber die Konfigurationsdatei, die du im Unterordner worlds fin-dest, interessanter sein, denn hier kannst du die Einstellungen für die Spielwelt vorneh-men. Die meisten Einstellungen, die du dort vorfindest, kennst du bereits vom Erstellenvon Einzelspielerwelten. Unter world-seed kannst du zum Beispiel einen Seed ange-ben, der beim Erstellen der Welt verwendet werden soll, und mit generate-struc-tures kannst du angeben, ob Bauwerke wie Dörfer und Tempel auf der Karte erscheinensollen.

Darüber hinaus kannst du aber auch noch einige weitere Einstellungen vornehmen,so kannst du zum Beispiel eine exakte Liste aller Tierarten angeben, die sich in derWelt tummeln sollen. Die Standardeinstellung dafür sieht so aus: natural-ani-mals=Bat,Chicken,Cow,Mooshroom,Ocelot,Pig,Sheep,Wolf,Horse,Rabbit.

Du hast so viele verschiedene Möglichkeiten, deinen Server nach deinen Vorstellungenzu konfigurieren, dass es an dieser Stelle unmöglich wäre, auf alle einzugehen. Schließ-lich soll es hier um das Programmieren von Plugins gehen – und nicht um das Adminis-trieren von Servern. Du kannst natürlich, wenn du möchtest, nach Herzenslust mit denEinstellungen experimentieren. Vorher solltest du dir aber eine Kopie der ursprüngli-chen Einstellungen anlegen, damit du, sollte es Probleme geben, immer wieder zu die-sen zurückkehren kannst. Dazu kopierst du einfach die Konfigurationsdatei an einenbeliebigen anderen Ort auf deinem Computer, bevor du sie veränderst. Sollte es dannspäter Probleme geben, kannst du sie ganz einfach wieder an ihren ursprünglichen Platzzurück kopieren, und damit werden alle Einstellungen wieder zurückgesetzt.

1.4 RechteUm deine Plugins später richtig ausprobieren zu können, musst du aber auf jeden Fallwissen, wie du dir selbst und anderen Spielern die richtigen Berechtigungen gibst. Stan-dardmäßig gibt es auf jedem CanaryMod-Server vier Benutzergruppen: visitors,players, mods und admins.

Die Gruppe visitors, also Besucher, ist die Standardgruppe, in die jeder Spieler auto-matisch eingeordnet wird, wenn er zum ersten Mal den Server betritt. Wie du beim ers-ten Test schon festgestellt hast, darfst du als Besucher auf einem Server kaum etwastun: Du kannst durch die Welt laufen, dich umschauen und Chat-Nachrichten versenden,mehr nicht.

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 15: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1 CanaryMod

20

Die nächsthöhere Gruppe ist die Gruppe players, also Spieler. Als Spieler hast du alleBerechtigungen, um »normal« spielen zu dürfen. Du darfst also zum Beispiel Blöckeabbauen und platzieren und Monster töten. Je nach Server-Konfiguration gibt es abereinige Einschränkungen, zum Beispiel darf auf vielen Servern nicht innerhalb desSpawn-Bereichs gebaut werden, also dem Bereich, in dem Spieler erscheinen, wenn sieden Server betreten.

Mit solchen Restriktionen musst du dich nicht herumschlagen, wenn du zur Gruppe dermods gehörst, also zu den Moderatoren. Diese haben nämlich zusätzlich zu den Rechteneines normalen Spielers einige Sonderrechte, ihnen ist beispielsweise das Bauen in derSpawn-Zone gestattet.

Über allen anderen Spielern stehen die Administratoren, genannt admins. Sie könnennach Belieben schalten und walten und müssen sich an keinerlei Regeln halten. Du soll-test daher sehr genau überlegen, wem du diese Macht auf deinem Server verleihenmöchtest. Dir selbst kannst du aber, insbesondere zum Testen der Plugins, bedenkenlosAdministratorrechte geben, so hast du jederzeit alles im Griff.

1.4.1 Spieler zu einer Gruppe hinzufügenUm einen Spieler zu einer bestimmten Gruppe hinzuzufügen, kannst du folgendenBefehl in das Textfeld des Server-Fensters eingeben: /playermod group set namegruppe, wobei name durch den Namen des Spielers ersetzt werden muss und gruppedurch den Namen der Gruppe, zu der der Spieler hinzugefügt werden soll. Heißt du imSpiel zum Beispiel Reiner und möchtest dich selbst zum Administrator ernennen, sowürde der passende Befehl /playermod group set Reiner admins lauten. Dabeimusst du allerdings beachten, dass du den Befehl nur dann ausführen kannst, wennsich der im Befehl genannte Spieler auch gerade auf dem Server befindet.

1.4.2 Gruppen erstellen und löschenSollten dir die drei standardmäßig vorhandenen Gruppen noch nicht genügen, so kannstdu auch ganz einfach eigene Gruppen anlegen. Um zum Beispiel eine Gruppe mit demNamen gruppe1 zu erstellen, musst du einfach den folgenden Befehl in das Textfeld ein-geben: /groupmod add gruppe1. Wenn du möchtest, kannst du zusätzlich zum Namender Gruppe auch noch eine Übergruppe angeben. Gibst du zum Beispiel /groupmod addgruppe1 players ein, so wird die neue Gruppe als Untergruppe der Player-Gruppeerstellt und alle Spieler in der neuen Gruppe haben automatisch alle Rechte, die dieSpieler in der Player-Gruppe haben.

Möchtest du eine Gruppe löschen, so funktioniert das mit /groupmod remove und demNamen der Gruppe, also zum Beispiel /groupmod remove gruppe1. Spieler, die sichvor der Löschung in der Gruppe befanden, werden dabei automatisch in die Übergruppeverschoben. Solltest du beim Erstellen der Gruppe keine Übergruppe angegeben haben,so verwendet der Server immer die Standardgruppe, also visitors, als Übergruppe.

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 16: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1.5 Updates

21

1.4.3 Rechte vergeben und entziehenSolange sich die neuen Gruppen, abgesehen vom Namen, nicht von den bestehendenGruppen unterscheiden, ist ihr Einsatz nur begrenzt sinnvoll. In diesem Abschnitt wirstdu deshalb lernen, wie du Gruppen oder auch einzelnen Spielern bestimmte Rechte ver-leihen und auch wieder entziehen kannst. Da es insgesamt 79 einzelne Rechte gibt, diedu auf deinem Server vergeben kannst, würde es den Rahmen sprengen, sie alle an die-ser Stelle aufzuführen. Stattdessen wollen wir uns an dieser Stelle nur ein Beispiel her-ausgreifen und anhand diesem zeigen, wie Rechte im Allgemeinen vergeben und ent-zogen werden können. Eine Liste aller Rechte findest du, übersichtlich zusammengefasst,im Anhang des Buches.

Die Berechtigung, auf einem Server bauen zu dürfen, wird zum Beispiel über den Namencanary.world.build aufgerufen. Um einen einzelnen Spieler ein Recht zu erteilen wirdder Befehl /playermod permission add zusammen mit dem Namen des Spielers undder Bezeichnung der Berechtigung verwendet. Um einer Gruppe ein Recht zu erteilen,wird ebenfalls der Name, diesmal derjenige der Gruppe, und die Bezeichnung der Berech-tigung verwendet. Lediglich das erste Wort ändert sich, sodass der Befehl /groupmodpermission add lautet. Möchtest du also zum Beispiel der Gruppe gruppe1 erlauben,in der Welt zu bauen, so lautet der komplette Befehl dafür /groupmod permission addgruppe1 canary.world.build.

Um das entsprechende Recht wieder zu entziehen, musst du lediglich das Wörtchen adddurch remove ersetzen – schon sind die beiden Befehle zum Entziehen von Rechten fer-tig: /groupmod permission remove und /playermod permission remove.

1.5 UpdatesDamit hast du zunächst einmal die nötigen Grundlagen über den CanaryMod kennen-gelernt, die du benötigst, um eigene Plugins entwickeln zu können. Zum Abschluss die-ses Kapitels noch ein Hinweis zum Thema Updates: Wie du sicher weißt, ist Minecraftein lebendiges Spiel, das sich ständig weiterentwickelt. Diese Änderungen betreffennicht nur das Spiel selbst, also den Client, sondern auch den Server. Jedes Mal wenn esein größeres Minecraft-Update gibt, das neue Funktionen mitbringt, muss deshalb auchder Server aktualisiert werden, egal ob du einen Mod oder den originalen Server ver-wendest.

Da es sich beim CanaryMod, wie bei fast allen Mods, um ein reines Fanprojekt handelt,können schon einmal einige Tage vergehen, bis ein neues Update auch Eingang in denMod findet. Um in der Zwischenzeit trotzdem auf deinem Server spielen zu können,musst du dich eines kleinen Tricks bedienen.

Wenn du im Minecraft-Launcher, also dem Fenster, das sich vor dem Start des eigent-lichen Spiels nach einem Doppelklick auf das Minecraft-Icon öffnet, auf den Button EDIT

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 17: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

1 CanaryMod

22

PROFILE klickst, so öffnet sich das in Abbildung 1.7 gezeigte Fenster, das unter anderemeine Versionsauswahl anbietet.

Abbildung 1.7: Versionsauswahl im Minecraft-Launcher

Sollte dein Server einmal nicht auf dem neusten Stand sein, so kannst du aus dieserListe einfach die Version auswählen, mit der dein Server läuft und problemlos weiterhinauf ihm spielen. Sobald dein Server aktualisiert wurde, kannst du diese Einstellungselbstverständlich wieder zurücksetzen.

1.6 Rätsel1. Wie müsste der Befehl lauten, um einen Spieler mit dem Namen »Florian« zur

Gruppe players hinzuzufügen?

2. Mit welchem Befehl kannst du eine Gruppe mit dem Namen neueSpieler erstellen,die eine Untergruppe der players-Gruppe ist?

3. Schlage im Anhang des Buches nach, wie der Name der Berechtigung lautet, die eseinem Spieler erlaubt, die Hilfe anzuzeigen.

4. Wie heißt der Befehl, um diese Berechtigung der vorher erstellten Gruppe neue-Spieler zu erteilen?

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 18: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

397

IndexSymbole^ 98! 98!= 91@Column 250@command 47@HookHandler 214@Override 155*/ 91*= 73/* 91// 91/= 73&& 96%= 73++ 73+= 72< 90<= 91-= 73== 90> 90>= 91|| 97

Aabrunden 69abstract 153, 154abstrakte Klasse 153abstrakte Methode 153Abstraktion 132add 195addEnchantments 235addTask 300AIBase 297AIManager 300Algorithmus 23aliases 47applyFacing 175, 188applyHalf 171

applyPart 174applyRotation 188Array 76, 354ArrayList 194Attribut 133aufrunden 69ausrichten 175Ausrichtung 189

BBedProperties 174Bett 174Bezeichner 56Binärdatei 24Binnenmajuskel siehe

CamelCaseBlock 361BlockLeftClickHook 236Bogen 238Boolean 95break 118byte 57Bytecode 25

CCamelCase 56Canary.inf 38CanaryMod 13case 117case-Verzweigung 116Chat 45, 200, 368Chat-Befehl 45ChatComponent 190Chat-Kommando siehe

Chat-Befehlclass 133clear 196Client 13CommandListener 47Compiler 24

contains 197continueExecuting 299Crafting 231, 366

DDataAccess 249Datenbank 248, 372Deklaration 56Differenz 58Division 59

Rest 59DoorProperties 171double 57do-while-Schleife 99durchstreichen 192

Eelse 112Enderbogen 237Enderperle 238Endlosschleife 91EntityMoveHook 221Entweder-Oder-Operator

98equals 118EVA-Prinzip 55

FFackel 175faires Runden 69Fallunterscheidung 116Fehler 48Feld siehe Arrayfett 192Filter 251Fließkommazahl 57float 57Formatierung 192, 193for-Schleife 90

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 19: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

398

Index

Funktion 121, 357Signatur 153überschreiben 154

fußgesteuert 99

GGegenstand 364, 383Geschweifte Klammer 34get 196getBlockAt 171getCardinalDirection 201getConfig 245getDisplayName 236getInstance 250getItemFactory 231getItemHeld 236getOwner 241getProjectile 240getter-Methode 147getTo() 215getUUID 207Gleitkommazahl siehe

Fließkommazahl

HHandlungsvorschrift siehe

AlgorithmusHashMap 252hasTask 300Hook 214HookHandler 214

Iif-Verzweigung 109Implementierung 155implements 155import 34indexOf 196Info-Datei 38Initialisierung 76insert 251insertAll 251instanceof 110

Instanzen 132int siehe IntegerInteger 56Interface 155Inventar 272, 365

Slot 273isContinuous 298isPlayer 241Item siehe GegenstandItemFactory 231

JJar-Datei 38Java 25Java Archive 38Java Development Kit 28Java Virtual Machine 25Java-Bytecode 25javac 27JDK siehe Java Develop-

ment KitJVM siehe Java Virtual

Machine

Kkaufmännisches Runden

69Klasse 132, 356

abstrakt 153Kommentar 91Konfigurationsdatei 18,

243, 370lesen 245schreiben 247

Konkatenationsoperator 60

Konstante 78Konstruktor 133Konvertierung 66Koordinate 85kopfgesteuert 99Kreatur 359Kreatur-Ereignis 221

Kreis 176Kugel 181Künstliche Intelligenz 297,

373kursiv 192

LLaufbedingung 90LightningStrikeHook 228LineTracer 200LinkedList 194Liste 194, 354

abrufen 196ändern 196ArrayList 194Länge 195lesen 196LinkedList 194löschen 195Position 196

Listener 213, 369load 252Log 364Logger 34logischer Operator 358lokale Variable 138long 57

MMap 252

TreeMap 279Maschinensprache 24Math.pow siehe Potenzmessage 200Methode 143

abstrakt 153überschreiben 154

Methode von Horn 177Methode von Metzger 177Midpoint-Algorithmus 177min 62Mod 13Modulo siehe Restwert

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 20: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

399

Index

NnewItem 231nextInt 289Nicht-Operator 98Notunterkunft 165

OOberklasse 149Objekt 132, 356Objektorientierte

Programmierung 131Oder-Operator 97OOP siehe Objektorien-

tierte Programmierung

PParameter 47, 123PlayerMoveHook 215plugin_priorities.cfg 224Position 84, 360Potenz 184Primärschlüssel 250Priorität 224private 146Produkt 58Programmcode siehe

QuellcodeProgrammiersprache 23

C 25Java 25Python 25

ProjectileHitHook 239protected 157public 146put 252

QQuellcode 34Quotient 59

RRadius 176Rasterung 176

Rechnen 367registerListener 214Reihenfolge (Plugins) 224remove 195, 254removeAll 255removeTask 300resetTask 299Restwert 59return 123Rezept 231, 366Rückgabewert 123Runden 68

abrunden 69aufrunden 69faires 69kaufmännisch 69

Ssave 248Schild 187

Ausrichtung 189hängend 187stehend 188Text 190

Schleife 90, 351do-while 99endlose 91for 90fußgesteuert 99Kopf 90kopfgesteuert 99Rumpf 91Variable 90while 95

Schleifenkopf 90Schleifenrumpf 91Schleifenvariable 90Schneeballschlacht 271Schnittstelle siehe Inter-

faceSchriftfarbe 191Semikolon 34Server 13ServerTickHook 227

set 196setBold 192setBoolean 248setComments 248setComponentOnLine 190setComponents 190setDisplayName 235setInt 248setItalic 192setObfuscated 193setStrikethrough 192setString 248setter-Methode 147setUnderlined 192short 57shouldExecute 298Signatur 153size 195Slot 273Sourcecode siehe

QuellcodeSpalte 249speichern 243Sperrzone 214Spieler 358split 258startExecuting 299Startwert 90String 59

split 258teilen 258

Summe 58super 150switch 117switch-case-Verzweigung

siehe case-VerzweigungSyntax 90System-Ereignis 227

TTabelle 249Textformatierung 192Tick 227TreeMap 279

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139

Page 21: Let’s Play MINECRAFT: Plugins programmieren mit …1).pdfWie auch Minecraft selbst, besteht Merke Das normale Minecraft-Spiel, das du auch st artest, wenn du alleine spielst, wird

400

Index

try-catch-Block 48Tür 170

Uüberschreiben 154Umgebungsvariable 28UML-Diagramm 151Und-Operator 96Unterklasse 149unterstreichen 192update 253updateAll 254update-Funktion 171UUID 207

VVanilla-Server 13Variable 55, 352

Deklaration 56Initialisierung 76lokal 138Name 56Typ 56Wertzuweisungen 58

Vererbung 149Vergleichsoperator 90Verzweigung 109, 352

case 116else 112if 109

void 123

WWahrheitstafel 97Wahrheitswert 95Welt 361Welt-Ereignis 224Wertebereich 57Wertzuweisungen 58while-Schleife 95

XXOR-Operator 98

ZZeichenkette siehe StringZeile 249Zufallsgenerator 289

© des Titels »Let’s Play MINECRAFT: Plugins programmieren mit Java« (ISBN 9783958451391) 2016 by mitp Verlags GmbH & Co. KG, Frechen. Nähere Informationen unter: http://www.mitp.de/139