Anfängerfreundliches Tutorial - Gamemode in Java programmieren ( Shoebill )

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
  • Ich weiß nicht wie aktuell SA-MP noch ist, spiele selbst schon seit geraumer Zeit nicht mehr, aber
    ich denke, dass das Tutorial dennoch hilfreich sein wird, da Java viel mehr als PAWN bietet und somit mehr Ideen
    umgesetzt werden können.
    Es gibt zwar bereits ein Tutorial von 123marvin123 , aber ein Tutorial mehr wird nicht schaden.


    Bevor wir damit anfangen können, unser Gamemode zu programmieren, fangen wir mit der Einrichtung des Ganzen an.


    Java JRE und JDK richtig konfigurieren
    Für Shoebill brauchen wir JRE8 und JDK8.
    Nach dem wir die zwei heruntergeladen und installiert haben müssen wir in den Umgebungsvariablen den Pfad zu JDK8 definieren.
    Unter Windows 7 geben wir in der Suche Umgebungsvariablen ein und wählen dort Umgebungsvariablen für dieses Konto bearbeiten.


    Wir klicken auf Neu und fügen die Variablen mit dem Namen JAVA_HOME und den Wert mit dem Pfad zu JDK8 Verzeichnis.
    In meinem Fall wäre es C:\Program Files\Java\jdk1.8.0_25\
    Das \ am Ende nicht vergessen.


    Eclipse herunterladen
    Ihr könnt auch einen anderen Compiler wie bspw. IDEA nutzen, aber ich nutze Eclipse.
    Wir benötigen Eclipse Luna da wir mit Maven arbeiten und Eclipse Luna diese unterstützt.
    Nach dem wir Eclipse heruntergeladen haben, können wir im Desktop ein Verzeichnis dafür anlegen und es dort entpacken.


    Server Verzeichnis
    Wir erstellen im Desktop ein Verzeichnis für unseren Server (in meinem Fall SAMP-Server).
    Nun laden wir von sa-mp.com die aktuellste Server Version für Windows herunter.


    Nach dem wir die Server Dateien in unser Verzeichnis entpackt haben laden wir uns Shoebill herunter und
    entpacken dies im selben Verzeichnis wie den SA-MP Server. Die Dateien die ersetzt werden müssen, ersetzen wir.


    Nach dem das getan ist prüfen wir evtl. nach Updates in dem wir folgendes ausführen, ist aber nicht notwendig.

    Code
    1. update-shoebill


    Server konfigurieren
    Wichtig ist nun, dass wir im Hauptverzeichnis die Dateien base.amx und bare.amx in den filterscripts bzw. gamemodes Verzeichnis nicht löschen.
    Wir passen nun die server.cfg beliebig an (lassen aber das eingetragene filterscript und das gamemode so wie es ist).


    Nun navigieren wir zum shoebill Verzeichnis.
    Die Verzeichnisse data, gamemodes und plugins können wir leeren, da wir den Inhalt dieser Dateien nicht benötigen.


    resources.yml
    In dieser Datei interessiert uns erstmals die runtimes Konfiguration.
    Dort werden nämlich alle Libaries aufgezählt, die unsere Plugins bzw. unser Gamemode benötigt.
    Sollten wir bspw. im Gamemode shoebill-common nutzen, so muss es dort auch eingetragen sein.


    Für den Anfang reicht uns shoebill-runtime, shoebill-common und das util-event.
    Das sollte dann so aussehen:

    Code
    1. runtimes:
    2. - net.gtaun:shoebill-runtime:1.1-SNAPSHOT
    3. - net.gtaun:shoebill-common:1.0-SNAPSHOT
    4. - net.gtaun:util-event:1.0-SNAPSHOT


    Bei YML Konfigurationsdateien sollte man darauf achten keine Einrückungen zu nutzen.


    Gamemode erstellen #1
    Im ersten Teil geht es mehr darum sein Gamemode zum Laufen zu bringen.
    Später lernen wir auch Befehle mit Parametern zu erstellen oder den EventHandler zu nutzen.


    Für unser Gamemode müssen wir zunächst Eclipse starten und eine Werkbank auswählen.
    Das Verzeichnis dürft ihr selbst aussuchen. Nach dem Eclipse gestartet hat klicken wir oben links in der
    Menüleiste auf File > New > Project...


    Nun sollte sich ein Fenster öffnen bei dem wir wählen können, was für ein Projekt wir erstellen möchten.
    Wir wählen die Kategorie Maven aus und dort dann wiederrum Maven Project.


    Klicken drei mal auf weiter und nun werden auf aufgefordet bestimmte Details über unser Projekt einzutragen.

    Zitat

    Group Id
    Artifact Id
    Version

    Bei Group Id kommt in meinem meine nicht existierende Domain de.azcaq (umgekehrt) hin und bei Artifact Id kommt
    der Name des Projektes (ohne Sonderzeichen und kleingeschrieben).
    Die Version können wir bei 0.0.1-SNAPSHOT stehen lassen.


    Nun klicken wir auf Finish.


    Nun haben wir unser Projekt erstellt, jedoch müssen wir noch einiges an Grundgerüst aufbauen.
    Im Verzeichnis src (Im Package Explorer) können wir das test Verzeichnis löschen, da es nicht gebraucht wird.


    Wir machen nun auf das main Verzeichnis (src/main) ein Rechtsklick und wählen New > Directory.
    Wir erstellen ein Verzeichnis namens resources und dort dann eine Datei die gamemode.yml genannt werden muss.
    Der Inhalt dieser Datei sollte wie folgt aussehen:

    Bei Gamemode Klasse kommt der package und der Name der Klasse von dem Gamemode hin.
    In meinem Fall also

    Zitat

    class: de.azcaq.jmp.jmpGamemode

    Nun öffnen wir die pom.xml.
    Damit das ganze nicht kompliziert wird zeige ich den Inhalt meiner pom.xml.
    Ihr müsst hier jedoch die folgende Zeilen zu euer Gamemode anpassen:

    Zitat

    <groupId>de.azcaq</groupId>
    <artifactId>jmp</artifactId>
    <version>0.1-SNAPSHOT</version>


    Wir haben es fast geschafft.
    Nun benötigen wir nur noch unsere Gamemode Klasse.
    Diese erstellen wir im Hauptverzeichnis also in meinem Fall unter de.azcaq.jmp.
    Ich bennene diese Klasse in jmpGamemode.


    Die jmpGamemode Klasse sieht dann wie folgt aus


    Nun haben wir unser erstes Gamemode.
    Bevor wir das ganze jedoch compilen können müssen wir unseren Build Path etwas anpassen.
    Wir machen ein Rechtsklick auf unser Projekt und wählen Build Path > Configure Build Path... aus.


    Wir wählen bei den Tabs Source aus und entfernen src/test.


    Wir haben es fast geschafft. Wir wählen oben in der Menüleiste Run > Run aus und im folgenden Fenster dann Maven build.
    Wenn wir unten in der Konsole dieses hier stehen haben:

    Zitat

    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 8.287 s
    [INFO] Finished at: 2015-04-14T23:26:13+01:00
    [INFO] Final Memory: 12M/29M
    [INFO] ------------------------------------------------------------------------

    ist unser Gamemode nun spielbar. Wir navigieren zum folgenden Pfad:
    C:\Users\DeinBenutzername\.m2\repository.
    Dort finden wir verschiedene Verzeichnis. Wir navigieren nun zu unseren package.
    In meinem Fall de > azcaq > jmp dort ist dann ein weiteres Verzeichnis in dem wir eine JAR Datei finden.
    Diese Datei (in meinem Fall jmp-0.1-SNAPSHOT.jar) kopieren wir nun zu ...ServerVerzeichnis/shoebill/gamemodes.


    Nun tragen wir unter ServerVerzeichnis/shoebill/resources.yml bei gamemode unseren Gamemode ein:

    Code
    1. gamemode: jmp-0.1-SNAPSHOT


    Nun können wir die startup.bat ausführen und sollte alles ohne Fehler geklappt haben, müsste unser Server nun online sein. :)
    Auf Anfrage schreibe ich gerne weitere Tutorials im Bezug zu Events, Befehle usw.


    Bei diesem Teil sollte es eher mehr um die Einrichtung gehen.

    Einmal editiert, zuletzt von Caglar () aus folgendem Grund: Schreibfehler