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

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Es gibt Neuigkeiten! Ab sofort könnt ihr dem Donators Club auf Lebenszeit beitreten.
    Weitere Infos im Thema Donator's Club ab heute wieder verfügbar!

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

      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.

      Quellcode

      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:

      Quellcode

      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.
      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:
      class: GamemodeKlasse
      name: NameDesGamemodes
      version: 1.0
      buildNumber: ${build.number}
      buildDate: Unkown
      authors: DeinName
      description: Eine Beschreibung
      Bei Gamemode Klasse kommt der package und der Name der Klasse von dem Gamemode hin.
      In meinem Fall also
      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:
      <groupId>de.azcaq</groupId>
      <artifactId>jmp</artifactId>
      <version>0.1-SNAPSHOT</version>

      Quellcode

      1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      3. <modelVersion>4.0.0</modelVersion>
      4. <groupId>de.azcaq</groupId>
      5. <artifactId>jmp</artifactId>
      6. <version>0.1-SNAPSHOT</version>
      7. <packaging>jar</packaging>
      8. <name>jmp</name>
      9. <url>http://maven.apache.org</url>
      10. <properties>
      11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      12. </properties>
      13. <repositories>
      14. <repository>
      15. <id>sonatype-nexus-snapshots</id>
      16. <name>Sonatype Nexus Snapshots</name>
      17. <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      18. <snapshots>
      19. <enabled>true</enabled>
      20. <updatePolicy>never</updatePolicy>
      21. </snapshots>
      22. </repository>
      23. <repository>
      24. <id>gtaun-public-repo</id>
      25. <name>GTAUN Public Repository</name>
      26. <url>http://repo.gtaun.net/content/groups/public</url>
      27. <snapshots>
      28. <updatePolicy>never</updatePolicy>
      29. </snapshots>
      30. </repository>
      31. </repositories>
      32. <dependencies>
      33. <dependency>
      34. <groupId>net.gtaun</groupId>
      35. <artifactId>shoebill-api</artifactId>
      36. <version>1.1-SNAPSHOT</version>
      37. <type>jar</type>
      38. <scope>compile</scope>
      39. </dependency>
      40. <dependency>
      41. <groupId>net.gtaun</groupId>
      42. <artifactId>shoebill-common</artifactId>
      43. <version>1.0-SNAPSHOT</version>
      44. <type>jar</type>
      45. <scope>compile</scope>
      46. </dependency>
      47. </dependencies>
      48. <build>
      49. <defaultGoal>clean install</defaultGoal>
      50. <plugins>
      51. <plugin>
      52. <groupId>org.apache.maven.plugins</groupId>
      53. <artifactId>maven-compiler-plugin</artifactId>
      54. <version>3.2</version>
      55. <configuration>
      56. <compilerArgument>-parameters</compilerArgument>
      57. <source>1.8</source>
      58. <target>1.8</target>
      59. </configuration>
      60. </plugin>
      61. <plugin>
      62. <groupId>org.apache.maven.plugins</groupId>
      63. <artifactId>maven-jar-plugin</artifactId>
      64. <version>2.5</version>
      65. </plugin>
      66. </plugins>
      67. </build>
      68. </project>
      Alles anzeigen


      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

      Java-Quellcode

      1. package de.azcaq.jmp;
      2. import net.gtaun.shoebill.constant.PlayerMarkerMode;
      3. import net.gtaun.shoebill.object.Server;
      4. import net.gtaun.shoebill.object.World;
      5. import net.gtaun.shoebill.resource.Gamemode;
      6. public class jmpGamemode extends Gamemode {
      7. @Override
      8. protected void onEnable() throws Throwable {
      9. Server server = Server.get();
      10. server.setGamemodeText(getDescription().getName());
      11. World world = World.get();
      12. world.showPlayerMarkers(PlayerMarkerMode.GLOBAL);
      13. world.showNameTags(true);
      14. world.enableStuntBonusForAll(false);
      15. }
      16. @Override
      17. protected void onDisable() throws Throwable {
      18. }
      19. }
      Alles anzeigen


      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:
      [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:

      Quellcode

      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.
      PayPal: herprince@outlook.de
      Twitter
      DeviantArt

      Programmierung Service
      JAVA (bspw. Android Applikationen, Modifikationen bzw. Plugins für Minecraft),
      C# (Konsolen- oder Windows Form Anwendungen),
      PHP (Objektorientiert, Routing, MVC Pattern etc.),
      HTML5 (dazu gehören auch Spiele ectera)

      [ BIETE ] • Webdesigning • WBB4 • WordPress • Anpassungen für vorhandene Designs •

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Caglar () aus folgendem Grund: Schreibfehler

    • Ist mein erstes Tutorial, Bewertungen sind erwünscht.
      PayPal: herprince@outlook.de
      Twitter
      DeviantArt

      Programmierung Service
      JAVA (bspw. Android Applikationen, Modifikationen bzw. Plugins für Minecraft),
      C# (Konsolen- oder Windows Form Anwendungen),
      PHP (Objektorientiert, Routing, MVC Pattern etc.),
      HTML5 (dazu gehören auch Spiele ectera)

      [ BIETE ] • Webdesigning • WBB4 • WordPress • Anpassungen für vorhandene Designs •