Launcher Modul API - Garados007/IlarosLauncher GitHub Wiki
Der Launcher bietet die Möglichkeit an diverse Module vom Server auszuführen, ohne dass die im Launcher implementiert sein müssen. Dabei erhalten sie eine vereinfachte aber mächtige Schnittstelle auf die Sicht der Dinge. Die Module werden in einem speziellen JavaScript Code geschrieben (kompatibel mit dem ECMA 5.1 Standard).
Jedes Modul wird in einem seperaten Ordner in der Asset.csf
gepackt. Das Hauptscript lautet dabei immer main.js
. Es können auch mehr Scripte vorhanden sein, aber die main.js
dient dabei als Einstiegspunkt.
Die Module haben keinen Zugriff auf den lokalen Computer und können da auch nichts bearbeiten. Ein Modul kann nur Daten (Scripte) aus dem eigenen Modul oder anderen Modulen lesend abfragen.
Ein Modul hat nur folgende Schnittstellen:
Art | Beschreibung |
---|---|
Internet | Abrufen von Webseiten (Http/Https) über GET und POST. Header und Cookies können manipuliert werden. |
Launcher | Signalisieren von Events, Änderung von Zustandsvariablen (z.B. Spielserver-IP) |
Module | Abruf von Scripten |
Daten | Permanente Speicherung von begrenzt Daten. Der Endnutzer kann selbst entscheiden, wie viel maximal möglich ist (maximale Speichermenge) und kann den Pool jederzeit löschen (Standard: 20MB pro Modul bei max. 200MB zusammen) |
Hier werden alle Schnittstellen genau spezifiziert, die einem einzelnen Modul zur Verfügung stehen.
Alle Schnittstelle befinden sich gekappselt in diesem Objekt.
Die Schnittstelle für den Internetzugriff. Alle Einstellungen, die hier vorgenommen werden, gelten nur für das aktuelle Modul. Andere Module werden davon nicht beeinflusst.
Name | Beschreibung |
---|---|
Parameter | |
Cookie
|
Dies ist eine Liste aller Cookies, die bei der nächsten Abfrage mit abgesendet werden. Dabei wird nicht unterschieden, welcher Host das nun genau ist, sondern es werden alle Cookies zu jedem Host übermittelt. Neu vom Server gesetzte Cookies werden hier automatisch auch mit übernommen, dabei werden aber alle Restriktionen (Lebensdauer, Gültigkeitsbereich, etc.) ignoriert. Die Cookies bleiben solange erhalten wie das Modul arbeitet. Nach einem Neustart gehen alle verloren. Diese Liste ist ein Dictionary<string, string> nach .NET. $.Net.Cookie.Clear();
$.Net.Cookie["Access-Token"] = "0123456789abdef"; |
Error
|
Bei einem Fehler, der durch einem Aufruf von get oder post ausgelöst wurde, steht hier die Nachricht (String) dazu drin. Wenn kein Fehler ausgelöst wird, so steht hier einfach null . Achtung: Ein erneuter Aufruf von get oder post setzt diesen Wert zurück auf den neuen Wert.
var result = $.Net.Get("google.de/not-existing-page");
if (result == null)
handleException($.Net.Error); |
Request
|
Die Liste aller Header, die für die Anfrage genutzt wird. Die angegebenen Header werden zu den Standard-Headern hinzugefügt und überschreibt diese gegebenfalls. Diese Liste ist ein Dictionary<string, string> nach .NET. if (!$.Net.Request.Contains("Pragma"))
$.Net.Request.Add("Pragma", "no-cache"); |
Response
|
Die Liste aller Header, die der Server zurückgeschickt hat. Sie wird bei jedem Aufruf überschrieben und neu angelegt. Diese Liste ist ein Dictionary<string, string> nach .NET. var expires = $.Net.Response.Contains("Expires") ?
new Date($.Net.Response.Expires) : null; |
Status
|
Der aktuelle Statuswert, der beim letzten Aufruf von get oder set vom Server zurückgegeben wurde. Es wird nur der Statuswert als int angegeben. Gab es einen Fehler, der aber nicht vom Server geliefert wurde, so steht der Wert auf 0 . var result = $.Net.Get("google.de/not-existing-page");
if (result == null && $.Net.Status == 404)
//do something |
Timeout
|
Die Dauer in Millisekunden (int) bis ein Timeout bei einer Anfrage ausgelöst wird. Der Standardwert ist 100 Sekunden. Im Normalfall wird die gesamte Zeitspanne abgewartet, bis ein Server als nicht erreichbar markiert wird. $.Net.Timeout = 300 * 1000;
var result = $.Net.Get("slow-server.net"); |
Methoden | |
Get(url)
|
Ruft den Quellcode unter der angegebenen URL mit den aktuellen Einstellungen als GET Aufruf auf. Bei Fehlern wird null zurückgegeben.
var result = $.Net.Get("google.de"); |
Ping(url)
|
Sendet einen Ping zu dem angegebenen Server über ICMP (Internet Control Message Protocol) und misst die Dauer in Millisekunden, bis es wieder zurückkommt. Im Fehlerfall und/oder eines Timeouts wird null zurückgegeben.
if ($.Net.Ping("myserver.com") != null)
handleOnlineServer(); |
Post(url, values)
|
Ruft den Quellcode unter der angegebenen URL mit den aktuellen Einstellungen als POST Aufruf auf. Bei Fehlern wird null zurückgegeben.
var result = $.Net.Post("example.com/login", {
user: username,
pw: password
}); |
Die Schnittstelle für bestimmte Werte des Launchers.