JDKP

From EQdkp Plus
Jump to navigation Jump to search

Hier entsteht eine Dokumentation für JDKP.

Was ist JDKP?

JDKP bietet ein Interface, mit dem auf die XML-Schnittstelle für den Datenexport ab EQDKP Plus 0.7 zugegriffen werden kann. JDKP kann mit eigenen Datenformaten konfiguriert werden, sodass nahezu in jedem denkbaren Spiel (die entsprechende Schnittstelle am Spiel vorausgesetzt) die DKP-Daten zur Verfügung gestellt werden können.

Motivation

Bisher bestand nur für WoW eine sinnvolle Exportmöglichkeit aus dem Browser heraus bzw. über die dkp.exe. Da jedoch immer mehr Spiele in EQDKP Plus integriert wurden, bot es sich an, diese Datenschnittstelle allgemeiner zu halten. Also entschied man sich für das XML-Format, das wesentlich universeller als das LUA-Format ist. Außerdem sollte dieses Tool der Zukunft endlich plattformunabhängig sein. Aus diesem Grund wurde von Anfang an in Java entwickelt.

Features

  • 100% plattformunabhängig dank Java
  • Profil-Verwaltung, dadurch lassen sich mehrere JDKP-Konfigurationen für unterschiedliche EQDKP-Systeme oder Spiele speichern
  • Import der Daten mit XML-Binding Technologie, dadurch volle Flexibilität für eigene Datenformate
  • Höchstes Maß an Sicherheit durch Authentifizierung mit EQDKP-Login-Daten (sofern die Rechte entsprechend gesetzt sind) und Unterstützung von SSL-verschlüsselten https-Verbindungen
  • Mächtige API zum einfachen Erstellen eigener Datenformate
  • Komfortable automatische Installation und automatische Updates dank Java Web Start Technologie
  • Alle bisherigen Funktionen aus der dkp.exe

Verwendung

Installation von Java

Das Standardfenster

Um JDKP zu verwenden, muss Java in der Version 7 auf dem Rechner installiert sein.

Unter diesem Link kann automatisch die neueste Java Version heruntergeladen und installiert werden.

Installation von JDKP

Advanced Einstellungen

Die Installation von JDKP hängt von deiner Java-Version ab. Je nach Java Version kann JDKP direkt über Java Web-Start (JNLP-Datei) installiert werden, oder aber die .JAR-Datei muss heruntergeladen und ausgeführt werden.

Du kannst JDKP hier herunterladen

Verwendung von JDKP

Profilauswahl

Beim ersten Start von JDKP sieht man dieses Fenster.

a) Zuerst muss unter EQDKP->Remote der Pfad zur exchange.php angegeben werden. Diese Datei sorgt auf EQDKP-Seite für den Datenaustausch mit JDKP. Links kann zwischen http und https gewählt werden.

b) Unter Game->Format muss das gewünschte Ausgabeformat angegeben werden. Verifizierte Plugins werden mit einem Schloss neben dem Namen des Formats angezeigt.

c) Unter Game->Local muss der lokale Pfad für die heruntergeladenen und bearbeiteten XML-Daten eingegeben werden. Per Klick auf das Ordner-Symbol kann eine Datei ausgewählt werden. Besitzt das gewählte Game->Format einen Standard-Speicherpfad, kann dieser per Klick auf default eingefügt werden. Steht der Standardpfad in dem Feld, wird er fett dargestellt.

d) Unter Game->Execute kann der Pfad zu der ausführbaren Datei, die nach einem erfolgreichen Download der DKP-Daten ausgeführt werden soll (z.B. das Spiel), hinterlegt werden. Auch hier kann über das Ordnersymbol eine Datei/Verzeichnis ausgewählt werden, bzw. über default der Standardpfad eingefügt werden. Auch dieser wird fett dargestellt.

Zum Start des Downloads einfach auf Download klicken. Sollten Angaben fehlen, wird der Benutzer aufgefordert, sie nachträglich einzugeben.

Mit Klick auf EQDKP->Advanced >> erhält man Zugriff auf weiterführende Einstellmöglichkeiten:

e) Unter User kann ein Username, der für die Authentifizierung beim EQDKP Plus nötig ist, eingegeben werden. Dies ist nur erforderlich, falls die Gästeberechtigungen nicht für den Austausch ausreichen.

f) Unter Pass muss das zugehörige Passwort eingegeben werden.

g) Unter Connection Timeout (sec) kann ein alternativer Timeout festgelegt werden, falls der Server nur langsam reagiert. Standard (wenn kein Wert eingetragen ist) sind 10 Sekunden.

Die gemachten Eingaben können gespeichert werden, um sie nicht erneut eingeben zu müssen. Beim Klick auf Download wird der Benutzer danach gefragt. Es können auch mehrere solcher Profile gespeichert werden.

Sind gespeicherte Profile vorhanden, werden diese ganz oben zur Auswahl (und auch zum Löschen) angeboten:

API Dokumentation (Note: API noch nicht verfügbar)

JDKP bietet eine umfangreiche API, die das Erstellen von Plugins zum Formatieren auf das eigene Datenformat sehr einfach gestaltet. Einfache Java-Kenntnisse und ein Compiler reichen aus, um JDKP für das eigene Spiel zum Laufen zu kriegen.

Die Klasse com.eqdkplus.jdkp.parse.bind.Data

An die Data-Klasse werden alle DKP-Daten beim XML-Export gebunden. Sie enthält eine Baumstruktur, die genau die XML-Datenstruktur wiedergibt. Die Kindelemente sind ihrerseits wieder an Objekte der Typen Eqdkp, Game, Info, Players, MultidkpPools und Itempools gebunden, usw. So lässt sich sehr leicht per get-Methoden auf die DKP-Daten zugreifen. Um ein neues Output-Format festzulegen, muss also nur die Data-Datenstruktur durchlaufen werden und die gewünschten Elemente im gewünschten Format ausgegeben werden.

Die Klasse com.eqdkplus.jdkp.output.GameInterface

Die GameInterface-Klasse stellt das zentrale Element der JDKP-API dar. Neue Output-Formate (Interfaces) müssen von dieser Klasse erben, um in JDKP verwendet werden zu können. GameInterface bietet folgende Schnittstelle:

/*
 * Überführt das gegebene Config-Konstrukt in einen String vom gewünschten Format
 * MUSS ÜBERSCHRIEBEN WERDEN
 */
public abstract String format(Data data);

/*
 * Gibt den Namen dieses Interfaces zurück
 * MUSS ÜBERSCHRIEBEN WERDEN
 */
public abstract String getName();

/*
 * Gibt den Standard-Ausführungspfad für das Spiel unter Windows zurück
 * MUSS ÜBERSCHRIEBEN WERDEN
 */
protected abstract String getStandardWindowsExecutable();

/*
 * Gibt den Standard-Ausführungspfad für das Spiel unter Mac OS zurück
 * MUSS ÜBERSCHRIEBEN WERDEN
 */
protected abstract String getStandardMacExecutable();

/*
 * Gibt den Standard-Ausführungspfad für das Spiel unter allen anderen
 * Plattformen zurück (Standard: null)
 */
protected String getDefaultExecutable();

/*
 * Gibt den Standard-Speicherpfad für die XML-Daten unter Windows zurück
 * MUSS ÜBERSCHRIEBEN WERDEN
 */
protected abstract String getStandardWindowsSavePath();

/*
 * Gibt den Standard-Speicherpfad für die XML-Daten unter Mac OS zurück
 * MUSS ÜBERSCHRIEBEN WERDEN
 */
protected abstract String getStandardMacSavePath();

/*
 * Gibt den Standard-Speicherpfad für die XML-Daten unter allen anderen
 * Plattformen zurück (Standard: null)
 */
protected String getDefaultSavePath() {

// BEMERKUNG: Zwei Interfaces sind genau dann gleich, wenn sie vom gleichen Typ sind:
@Override
public final boolean equals(Object o) {
    return this.getClass().equals(o.getClass());
}

Verwendung eigener Formate in JDKP

Zum Importieren des benutzerdefinierten Formats genügt es, die .class-Datei per Drag&Drop in das JDKP-Fenster zu ziehen. Der Import findet dann automatisch statt und das Format steht ab sofort zur Verfügung. Beim nächsten Start wird es automatisch mitgeladen, muss also nicht erneut importiert werden.

Bemerkung: Formate aus der Community gelten grundsätzlich als nicht-verifiziert. Dies zeigt sich darin, dass sie in JDKP im Auswahlfenster in normaler Schrift ohne Schloss angezeigt werden. Das eigene Format kann zur Ansicht (per Sourcecode) an das Entwicklerteam gegeben und so verifiziert werden. Dieser wird dann veröffentlicht und in der eingesendeten Version erhält es dann das Schloss und wird fett dargestellt.

Diese Maßnahme soll der Sicherheit dienen, um sich vor korrumpierten Plugins zu schützen und sichere Plugins schnell zu erkennen.