Das Kapitel „Gold Road“ (inklusive des Schriftlehre-Systems) und Update 42 können jetzt auf dem öffentlichen Testserver getestet werden! Hier könnt ihr die aktuellen Patchnotizen lesen: https://forums.elderscrollsonline.com/en/discussion/656454/
Wartungsarbeiten in der Woche vom 22. April:
• PC/Mac: NA Megaserver für Wartungsarbeiten – 25. April, 12:00 – 20:00 MESZ
https://forums.elderscrollsonline.com/en/discussion/comment/8098811/#Comment_8098811

Libraries / Bibliotheken - Generelle Erläuterung zum Verständnis

Baertram
Baertram
✭✭✭✭✭
Libraries/Bibliotheken:
Die Libraries sind Quelltexte welche wiederverwendet werden können/dürfen in diversen anderen AddOns oder Libraries. z.B. Funktionen zum Suchen, oder Funktionen um die Inventare zu filtern, oder Funktionen um auf der Karte Pins zu zeigen und zu aktualisieren.
Die Addons nutzen also diese Libraries damit sie korrekt funktionieren.

Embedded / Eingebundene Libraries
Damit nun die Spieler es bequem haben wurden in der Vergangenheit die libraries mit in das Addon, in einen Unterordner z.B., gepackt. Damit war alles schön zusammen.

Aber das hat den Nachteil, dass:
-Alte libraries in den Unterordnern der Addons schlummern und Platz wegnehmen + den Reloadui verlangsamen
-Alter Quelltext dieser Libraries ggf. zu Fehlern im Spiel führen kann
-Das Updaten der addons bei einer Aktualisierung einer der zahlreichen Libraries notwendig war, was zuviel Zeit frisst und auch wieder zu Fehlern führen kann wenn man nicht aufpasst

Stand-alone libarries:
Daher gehen viele dazu über die Libraries wie ein eigenständiges Addon, ausserhalb der Unterordner von Addons, als eigesntändigen Ordner zu releasen.
Das war bereits immer möglich, wurde halt nur von wenigen Authoren so gelebt. Aber GENAU DAS ist der Sinn einer solchen Library.
1x im AddOns Verzeichnis vorhanden, updatebar wie ein AddOn über Minion/manuell, und nur 1x suchen WO diese Library ist wenn etwas nicht klappt.

Standalone libraries könnten auch im Unterordner eines AddOns drin sein. Sofenr diese standalone library eine EINGE txt Datei besitzt wird das Spiel diese auch laden.
Aber direkt im AddOns Verzeichnis ist dies übersichtlicher und einfacher zu finden, daher sollte dies nicht von Addon Authoren in der Art verpackt werden.
Achtung: Das Spiel scannt bis in die Verzeichnistiefe 3 (ggf. auch 4). Alle TXT Dateien welche sich darunter befinden werden NICHT mehr geladen!

Vorteile:
Zeit Ersparnis beim Author, auch beim User wenn er Fehler sucht.
Zeit Ersparnis beim Reloadui.
Plattenplatz gespart.
Fehlerrisiko minimiert.

Nachteile:
Der User muss selber updaten, aber das tut er mit AddOns ja sowieso bereits. Das ist also eigentlich normal.


Wie sagen AddOns, dass sie eine Library brauchen?
Bei einer embedded library:
In der Addon eigenen TXT (Manifest Datei genannt) Datei werden dann die einzelnen Libraries mit eingefügt damit die lua Dateien der Libraries geladen werden.
z.B. /libs/liBAddonMenu-2.0/libAddonMenu-2.0.lua
...

Bei einer stand alone library:
Die Addons welche eine Library nutzen haben in ihrer TXT Datei den Eintrag
##DependsOn: LibraryName1
oder
##OptionalDependsOn: LibraryName1 LibraryName2
stehen.
Dadurch wird sichergestellt, dass bei #'DependsOn das addon GAR NICHT ERST GELADEN WERDEN KANN, wenn diese Library im Spiel im AddonManager nicht aktiviert wurde.
Oder bei ##OptionalDependsOn wird nur geprüft, ob die Lib da ist, und wenn nicht wird einfach weiter gemacht. Auch ohne diese.

Versionierung - Wie lädt das Spiel die neuste Version?
Die standlone Libraries haben dann eine eigenständige TXT Datei welche das Spiel liest und darüber die aktuellste Version findet (Tag ##AddOnVersion: <signed integer>)
Oder über die andere Library "LibStub" welche die Versionierung für viele existierende Libraries übernimmt:

Allerdings: Nur neuere Libraries nutzen die TXT Datei der Library selbst und tragen dort ##AddOnVersion: 123 ein
Dieser tag ##AddOnVersion sorgt dann im Spiel direkt dafür, dass nur die höchste Nummer (darf nur ein Integer Wert ohne Nachkommastellen sein!) geladen wird.
LibStub ist dann bei diesen nicht mehr notwendig.

Eine Umstellung bei "laufenden Libraries" von LibStub auf ##AddOnVersion kann schwierig sein, da das Spiel eben in den Unterordnern befindliche alte Libraries mit selben Namen, aber ohne eigenständige TXT Datei und LibStub, laden wird UND die neue Version mit der eigenständigen TXT Datei OHNE LibStub ebenfalls. Dies ist nur schwierig zu unterbinden und eben eines der Probleme wenn man "embedded" libraries verwendet hat.


Updaten der Libraries
Am besten manuell oder per Minion herunterladen und wie eigenständige Addons in das AddOns Verzeichnis installieren.
Dadurch, dass diese Libraries dann in ihrem eigenen Ordner sind und eine eigene TXT Datei haben werden sie vom Spiel immer mit dieser neusten Version (Sofern man diese aktualisiert über Minion z.B., oder eben manuell regelmäßig nachschaut) geladen.


Ich hoffe das hilft dem/der ein oder anderen beim Verständnis für die Bibliotheken/Libraries und der Entscheidung von einigen Authoren diese als Standalone ab sofort zu verwenden.

Ein Tipp noch für ein hilfreiches Addon:
Votans Addon List
Es zeigt beim AddonManager im Spiel an welche Abhängigkeiten fehlen (gelbes I Symbol rechts in der Addon Zeile) und kann sogar automatisch die Abhängigkeiten (Andere Addons oder Libraries) mit aktivieren/deaktivieren wenn ihr ein Addon aktiviert/deaktiviert.

Und zusätzlich:
Addon Selector
Bietet addon Profile welche ihr selbst speichern könnt. Gut für die Verwaltung von z.B. Quests oder Raids.
Aber es biete auch eine Suche an mit der ihr Addon Namen bequem suchen und dorthin scrollen könnt in dem AddonManager.
Anmelden oder Registrieren, um zu kommentieren.