One Plugin to rule them all, One Plugin to find them,
One Plugin to bring them all and in the darkness bind them
About
Bootstrap is a plugin manager for LotRO. Its purpose is to ease using other plugins through a graphical user interface and some degree of automation.
Since the plugin system is not officially supported and still in "beta" state, Lotro does not currently provide a graphical user interface or settings to manage plugins. The only user interface provided by Turbine concerning plugins is the 'shell' (chat window), which can get rather cumbersome especially when using multiple plugins.
Bootstrap provides the user a way to automatically load multiple plugins in one click, as well as a configurable popup menu to load individual plugins on demand and execute commands exported by plugins.
Features- Automatically load all user selected plugins on startup, in the order specified.
- Configurable popup menu to load plugins to execute commands they have exported or both.
- Graphical user interface for settings.
Installation
Copy the "Equendil" folder from the zip file to your "My Documents/The Lord of the Rings Online/Plugins" folder (if you never installed a plugin before, you might have to create that "Plugins" folder).
You will need to execute "/plugins refresh" if you install the plugin for the first time while the game is running.
If you are already using another one of my plugins (currently, that would be
LIP), overwriting files should be safe as long as older (by last update) plugins are installed first. Unload plugins if they are are running, by typing "/plugins unload".
Usage
On the command line:
"/plugins load bootstrap" will launch Bootstrap, Bootstrap will then load all plugins set to be loaded automatically. Launching bootstrap will also display its setup window if it cannot find user settings (first time use).
"/boostrap" without parameters will toggle Bootstrap's window
"/bootstrap toggle" will do the same as above
"/bootstrap show" will open Bootstrap's window.
"/bootstrap hide" will hide Bootstrap's window.
"/bootstrap reload" will terminate all loaded plugins and restart bootstrap.
One click launch:
Because the primary objective of Bootstrap is to make running multiple plugins as simple as possible, you will probably want to setup a shortcut so you can launch Bootstrap in one click.
To do so you first need to declare an alias through the command line:
"/alias ;<name> /plugins load bootstrap"
Where <name> is whatever you want your shortcut to display. Keep in mind shortcuts cannot display more than three or four characters, however. The semicolon is mandatory.
You then need to create the shortcut proper through:
"/alias shortcut ;<name> <num>"
Where <name> is whatever alias name you chose previously, and <num> is the number of a quickslot on your bars. The first quickslot of the first bar is numbered 1, then 2, 3 ... 12, the first quickslot of your second bar is numbered 13, then 14, 15 etc. It will overwrite that quickslot.
This might sound a bit complicated, the following example will create a shortcut that launches Bootstrap on the first quickslot of your first bar (make sure it's empty or keep in mind it'll be overwritten):
Code:
/alias ;plug /plugins load bootstrap
/alias shortcut ;plug 1
You can then drag & drop that new shortcut wherever you like.
IMPORTANT: You will need to do that on every character. There is no other way, but you need only do it once per character. It'll make your life easier in the long run.
Once a shortcut is set up, clicking it will load bootstrap and all plugins set to automatically load.
Menu
By default, Bootstrap will place a semi transparent button in the lower left corner of the display. That button opens Bootstrap's configurable menu. By default, the menu only contains one entry: 'Bootstrap', that opens Bootstrap's setup window.
The menu button can be placed where you like by using the standard key bind to position UI elements (CTRL + \ by default on English keyboards). Using the mouse wheel on the button in that mode will change its scale.
The opacity of the menu button can be set in the setup window (set to 0 to hide the button completely).
IMPORTANT: The position of the menu button is stored on a per-character basis.
Setup
Plugins
The top half of the setup window displays installed plugins. Loaded plugins are displayed in green. 'Hidden' plugins (see below) are displaying faded if "show all" is checked.
- The check box in front of every plugin entry lets you set which plugins you want to be run automatically.
- The 'up' and 'down' arrows let you change the order in which plugins are displayed and loaded.
- The 'Launch' button will simply launch the selected plugin.
- The 'Add to Menu' button will add an item to the menu for that particular plugin.
- The 'hide' button will hide a plugin from the list unless 'show all' is checked, in that case, hidden plugins will display faded. Hidden plugins can be brought back to normal using the same button (then labelled "show"). By default, plugins not meant by their authors to be loaded directly are set to be hidden.
IMPORTANT: Which plugins are set to load automatically is stored on a per-character basis. This is to allow using different plugins for different characters, however this means you will have to (quickly) set up Bootstrap for each character.
Menu
The bottom half of the setup window displays the list of items in the configurable menu and their settings.
- The 'up' and 'down' arrows let you change the order in which the menu items are displayed.
- The 'Remove' button will remove the currently selected item from the menu.
- The 'Save Menu' button will save the configuration of the menu. That configuration is account wide.
- The 'Show menu button' checkbox will enable or disable the menu button. Like the position of the button, it's a per-character setting.
Menu items are bound to plugins, to add a menu item, select a plugin in the top half of the setup window and click "Add to Menu". Bootstrap may try to be 'smart' if you attach a menu item to one of the more popular plugins and it will pre-setup that menu item in a manner the author of Bootstrap deemed appropriate. Whether or not it does that, you can change it.
The right panel lets you set up a menu item.
- The 'Name' field lets you change the name of the item as displayed in the menu
- The 'Plugin' field displays the name of the plugin to which the menu item is attached. It cannot be changed.
- The 'Mode' drop down menu lets you chose the mode of execution of the menu item:
- 'Load then Run'. If the plugin is not loaded, load it, then run the command immediately (if not blank). If the plugin is loaded, just execute the command.
- 'Load or Run'. If the plugin is not loaded, load it. If it was loaded already, run the command (if not blank).
- 'Run Only'. Run the command if the plugin is loaded. If the plugin is not loaded, the menu item will not display.
The 'run only' mode is particularly appropriate for plugins you set to load automatically *only* on certain characters. The menu item will not display for characters that do not have that plugin running.
IMPORTANT: Menu items are not saved automatically, use the 'Save Menu' button
Notes:
- The default "Bootstrap" entry in the menu cannot be moved, changed or removed.
- The menu will display 'bottom up' if placed in the bottom half of the display (ie, in reverse order). While, to the author, that seemed to be the natural way to go about things, the author acknowledges this might be a consequence of spending way too much time writing code. That particular 'feature' is subject to change depending on the amount of complains received.
Refreshing plugins, reloading Bootstrap
The 'Refresh Plugins' button at the bottom will update the list of installed plugins, and possibly the menu if plugins were removed. You might need to do it if you install a plugin while Bootstrap is already running, where you would execute "/plugins refresh".
The 'Reload Bootstrap' button at the bottom of the window will terminate *all* loaded plugins, and restart bootstrap.
Plugins not set to load automatically will not be restarted.
This is roughly equivalent to executing the command "/plugins unload" followed with "/plugins load bootstrap"
Plugin authors: Exposing an icon
Plugin authors can expose an icon that Bootstrap will use in the menu. Failing that, Bootstrap will use a (hopefully) suitable icon for plugins it 'knows', or failing that, a default icon.
To get an author's defined icon, Bootstrap will look for a
Favicon.lua file
in the same folder as the plugin's 'package' (as defined in the .plugin declaration file and exported by Turbine.PluginManager). Favicon.lua should at least contain a table called Favicon, with a subtable called "Regular" (leaving room for other icon states such as highlighted etc), with the following fields:
- Resource: either an ID of an in game image resource, or the path of a JPEG or targa image relative to plugins/
- Width: the width of the image
- Height: the height of the image
Eg: if a plugin hiearchy looks like this :
Code:
Plugins/
Author/
PluginName.plugin (with <Package>Author.PluginName.Main</Package>
PluginName/
Resources/
icon.tga (32x32 icon)
Main.lua
Favicon.lua
Favicon.lua would contain:
Code:
Favicon = {
Regular = { Resource = "Author/PluginName/Resources/icon.tga", Width = 32, Height = 32 }
}
Note: Bootstrap will resize icons to 26x26 dimension, and mask them to keep them round, the original icon does not need to be that size or be round.
Known Issues & limitations- Bootstrap does not actually check to which plugins commands belong to. As a result, it is perfectly possible to add a menu item for plugin A and make it execute a command on plugin B (or a default Lotro command). The author likes to think of it as a 'feature'.
- Bootstrap cannot unload individual plugins.
Reporting issues
You can report bugs and other issues:
- On this thread
- In private messages through this site
- By contacting me on the Snowbourn server. Send a mail to "Equanor" (my main), or send a message directly if you prefer and I happen to be logged on.
Plans for the Future
- Done for now.
Change Log
v1.4 - 2011 July 21
- Any command can be run through the menu.
- Added default menu command templates for all 'known' plugins where relevant.
- Added icons to the menu. Icons can be set by plugin authors in their plugins, failing that, Bootstrap will display an icon thought appropriate for 'known' plugins, or failing that a 'ring' icon by default.
- Fixed an issue where the scrollbar for plugins could go out of reach when toggling off 'show all'.
v1.3b - 2001 July 13
- Fixed error introduced in v1.3 when saved data is not found...
v1.3 - 2011 July 12 - Various improvements and requested features
- The /bootstrap command can now take "hide" or "toggle" as arguments in addition to "show".
- "/bootstrap" without arguments now has the same behaviour as "/bootstrap toggle"
- The default command for Bootstrap in the menu toggles the window instead of always making it visible
- the 'drag bar' for moving the menu button was replaced with a drag 'box' that allows positioning at the top of the screen.
- Bootstrap will output a single message on startup for all plugins that are auto-loaded rather than for each one
- Bootstrap's window can be resized by the user.
- Fixed an issue with scrollbars malfunctioning on lists with only a few more elements than visible.
- Plugins can be set to be 'hidden'. 'Known' utility plugins not meant by their authors to be loaded directly by users are 'hidden' by default. 'Hidden' Plugins cannot be set to load automatically on Bootstrap's launch.
- Added a checkbox to the setup window to show all plugins. 'Hidden' plugins will display faded in that case.
- Menu button can be rescaled (mouse wheel in repositioning mode).
- The "Show Menu Button" checkbox is gone ... The opacity of the menu button can be set instead. Setting its opacity to 0 will have the same effect as unchecking the checkbox did previously.
v1.2 - 2011 June 22
- Work-around for the 'locale bug' on French and German clients preventing data to be saved correctly.
- Forcing a refresh of the list of plugins on initialization to prevent a situation where Bootstrap might attempt to automatically load a plugin that was removed from under the game (which seems to lead to a corruption of the lua runtime and a client crash, no less ...).
- Lists scroll when using the mouse wheel as they should
v1.1 - 2011 June 16
- Added a "reload" feature
- Known 'utility' plugins not meant by their authors to be loaded directly by users are now displaying faded and cannot be set to load automatically
- Window position & visibility status are now stored
- Fixed a bug where setting plugins to load automatically would be ignored if the order of plugins was never changed in any way.
v1.0 - 2011 June 14
-Initial release.