API Loader Reihenfolge bestimmen - (GELÖST! Java-Version)

  • Hi Red,


    vieleicht könntest du in der neuen API für die plugin.yml einen Parameter loadLevel hinzufügen, über den mann bestimmen kann in welcher Reihenfolge die eigenen Plugins geladen werden.
    Z.B. bei Klassen Implementierung sehr hilfreich

    Bislang könnte man das Über ein Objekt machen, muss dann aber immer die Klasse mit angeben oder ein libOrdner mit ausliefern. Ab onEnable() ist ja alles geladen, nur manchmal in unvorteilhafter Reihenfolge.


    Ich hoffe es war halbwegs verständlich was ich meine:lol:

    Danke schon mal im Voraus:saint:

  • Wir müssten mal schauen, wie einfach sich das umsetzen ließe... das Problem ist, die Mechanik auch für das On-the-fly-Kompilieren von Plugins umzusetzen (also der Fall, in dem nur auf ein Java-Projekt verwiesen wird und das Spiel dieses dann selber kompiliert). Denn die plugins.yml ist erst beim Laden des jeweiligen Plugins für das Spiel sichtbar. Wir müssten dafür den Ablauf ändern, wie Plugins generell geladen werden :thinking:


    Wofür bräuchtest du das denn explizit bzw. könntest du nochmal erläutern, wofür du das verwenden würdest? :saint: Das Festlegen der Lade-Reihenfolge hätte für Spieler oder Serverbetreiber ja keine praktische Relevanz (da das ja vom Plugin-Ersteller festgelegt wird, aber verschiedene Plugins von verschiedenen Machern natürlich nicht aufeinander abgestimmt wären), daher wäre das in erster Linie nur für den Plugin-Ersteller sinnvoll.

    Wenn ein Plugin Abhängigkeiten zu anderen Plugins hat, wäre es am sinnvollsten, diese Abhängigkeiten als Library einzubinden. Evtl. kann manchmal auch hilfreich sein, neben der "onEnable()" Methode noch die "onLoad()" Methode zu überschreiben - die wird nämlich dann aufgerufen, wenn das Plugin tatsächlich geladen wird (also definitiv immer vor onEnable(), was erst im Anschluss aufgerufen wird, wenn alle Plugins geladen wurden).

  • Ich will mal wieder eine Allgemeine Tool Sammlung in ToolsAPI erstellen.

    Da habe ich eine Klasse

    Die Will ich dann in einem "Benutzbaren" Plugin einbinden.

    Dient als extends Vorlage für die eigentliche Konfigurations Klasse die auch als YAML CustomClassLoaderConstructor benutzt wird.

    Hauptteil:

    Wenn hier (in Zeile 2) die ToolsAPI nicht schon geladen ist, kommt er nicht an die ClassPluginConfig heran, außer über den lib Ordner. Und dann müsste man die ToolsAPI wieder für jedes Plugin Pflegen. Oder Datei immer wieder kopieren und anpassen;(

    Gleiches gilt wahrscheinlich auch für das Auslagern eigener Callback Funktionen.

  • Es würde ja reichen wenn ich so eine Art Abhängigkeit definieren kann.

    Code
    dependencies: ToolsAPT, SprachAPI

    So das Clockbeim Laden nach hinten rutscht bis die geladen wurden:D

  • blöde frage könnte mann nicht einfach sagen das es alphabetisch geladen werden soll ?

    so könnte mann den grund plugings einfach einem AA vorne hin setzten und schon wären sie am anfang oder ?

  • Ich verstehe... tatsächlich muss ich sagen, dass ich den zweiten Vorschlag mit den dependencies dann auf jeden Fall sinnvoller fände ^^ Ich muss mal schauen, wie wir das am besten umsetzen... ich bin mir aber nicht sicher, ob das in der alten Version noch klappen wird, daher wird das vmtl. nur für die neue Version kommen.


    blöde frage könnte mann nicht einfach sagen das es alphabetisch geladen werden soll ?

    so könnte mann den grund plugings einfach einem AA vorne hin setzten und schon wären sie am anfang oder ?

    Ich glaube, momentan werden Plugins in absteigender alphabetischer Reihenfolge geladen, bin mir aber nicht sicher (sie werden in der Reihenfolge geladen, wie die Unterverzeichnisse im "plugins" Ordner gefunden werden). Das könnten wir eig. ändern. Allerdings ist das Problem bei sowas, dass man sich als Plugin-Ersteller nicht 100% darauf verlassen könnte, denn der Endanwender könnte die Plugin-Verzeichnisse anders benennen bzw. Plugins in andere Ordner packen :thinking:

  • noci

    Changed the title of the thread from “API Loader Reihenfolge bestimmen” to “API Loader Reihenfolge bestimmen - (GELÖST! Java-Version)”.

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!