Download
(2 Kb)
Download
Updated: 02/24/20 02:38 AM
Compatibility:
Harrowstorm (5.3.5)
Dragonhold (5.2.5)
Scalebreaker (5.1.5)
Elsweyr (5.0.5)
Updated:02/24/20 02:38 AM
Created:03/02/14 04:10 PM
Monthly downloads:6,567
Total downloads:1,417,983
Favorites:1,006
MD5:
LibStub  Popular! (More than 5000 hits)
Version: 1.0 r7
by: sirinsidiator, Seerah

LibStub was replaced by features in the game and won't be updated anymore!
If you are using an addon which still relies on LibStub, either ask the author to remove it or you just need to live with it.



Addon Authors: LibStub is no longer needed if you plan to write a new library.
The game can manage the versioning itself, so just write your library like you would any other addon and make sure you add the "IsLibrary" and "AddOnVersion" directive.
Code:
## AddOnVersion: 6
## IsLibrary: true
Check the wiki for more more details about the directives.

In order to encourage moving away from LibStub, starting with r7 it will print a deprecation warning in chat in case any of the installed addons uses LibStub to reference a library. This message can be disabled with "/libstubwarning off". Authors can install LibDebugLogger and the DebugLogViewer in order to see where offending calls to LibStub come from. Simply enable stack trace logging via "/debuglogger stack on", reload the UI and click on the warnings in the log.


LibStub was written for World of Warcraft by Kaelten, Cladhaire, ckknight, Mikk, Ammo, Nevcairiel and joshborke. It was ported to Elder Scrolls Online by Seerah. The below description was copied from WowAce with a few minor revisions.


LibStub is a minimalistic versioning library that allows other libraries to easily register themselves and upgrade. It is meant to be a cross-community library sharing system.

LibStub is hereby placed in the Public Domain


LibStub-1.0 API

:GetLibrary(major [, silent])
Returns
The table instance of a registered library or nil if not found and the minor version of the library as the second return value.
Arguments
major
The name of the library you are requesting
silent
(Optional) Suppresses errors when the library is not found. You can pass LibStub.SILENT for better readability
:IterateLibraries()
Returns
An iterator over the registered major libraries.
:NewLibrary(major , minor)
Returns
The table to be used by the library as well as the minor version of the previously registered library, if any.
Arguments
major
The name of the library you are requesting
minor
The minor for the registering library

Who uses LibStub?
LibAddonMenu-1.0
... and hopefully many more to come!

How to include LibStub in a library or addon

Library
  • get a copy of the current version
  • copy LibStub.lua into your library's folder
  • set up your <library>.txt file to load LibStub.lua (in case your library supports being installed standalone)
  • don't set LibStub as OptionalDependsOn

AddOn
  • get a copy of the current version
  • copy LibStub.lua into your addon's folder or a subfolder of it
  • set up your <addon>.txt file to load LibStub.lua
  • don't set LibStub as OptionalDependsOn


Basic Example

Lua Code:
  1. local lib = LibStub:NewLibrary("MyLibrary-1.0", 1)
  2.  
  3. if not lib then
  4.   return    -- already loaded and no upgrade necessary
  5. end
  6.  
  7. function lib:SomeFunction()
  8.   -- do stuff here
  9. end
  10.  
  11. function lib:SomeOtherFunction()
  12.   -- do other stuff here
  13. end
1.0 r7
- added deprecation chat warning
- added LibDebugLogger support
- api bump

1.0 r6
- added IsLibrary flag to manifest
- api bump (see below)

1.0 r5
- api bump (for all the poor people who don't like to check a checkbox)

1.0 r4
- added a named constant for the silent flag as proposed by merlight

1.0 r3
- added support for fractional numbers in minor library version as proposed by merlight

1.0 r2
- fixed error handling

1.0 r1
- updated version number in LibStub.txt to match internal Major, minor revisions (1.0 r1 instead of 1.0.1)
Archived Files (7)
File Name
Version
Size
Uploader
Date
1.0 r6
1kB
sirinsidiator
05/21/19 03:03 PM
1.0 r5
1kB
sirinsidiator
11/02/18 08:08 AM
1.0 r4
1kB
sirinsidiator
07/23/15 02:57 PM
1.0 r3
1kB
sirinsidiator
06/14/15 12:55 PM
1.0 r2
2kB
Seerah
07/13/14 09:24 PM
1.0 r1
2kB
Seerah
03/14/14 07:29 PM
1.0.1
2kB
Seerah
03/02/14 04:10 PM


Post A Reply Comment Options
Unread 08/01/20, 01:57 PM  
Meerchaum

Forum posts: 2
File comments: 14
Uploads: 0
Just a Thank You

I appreciate all the tools that you and other Developers create that greatly enhance my gaming experience.
At no pay and little appreciation to the time you take to provide me and almost 1 million other players a more enjoyable game.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: