- improved plugin lifecycle: removed plugins properly marked as not loaded
- exclude handlers for disabled plugins when returning collections of handlers by default
- loading a plugin by a different name than specified in its pluginSpec is no longer allowed (#25)
- plugin specifications of plugins can now be loaded without adding the plugin into the room, using HHM.manager.getPluginSpecification (#22)
- fix problem with removing plugins from the room where handlers and properties were not properly deleted
- fix an issue with plugin reloading
- plugins can now be loaded from specific repositories
- plugins can now be added before starting the HHM, they will be loaded before the user plugins during HMM start
- some code was moved from hhm/core into the HHM, because it belonged there
- add default repository names
- when adding plugins, the plugin configuration can now be passed along, it will override the default plugin config, but will still be overridden by the user config
- a backup of the original plugin specification is now created when a plugin is
loaded, it can be accessed via
plugin._pluginSpecOriginal
- fix minor bugs and refactoring
- add support for object handlers
- rework event handler loop
- remove event state validators
- add pre/post-event handler hooks which are executed before and after every single event handler
- better event execution metadata
- add support for loading new versions of plugins at runtime
- small API improvements and refactoring
- rework repository system
- add support for local repositories
- first release which is deployed on surge.sh
- adjust config to haxroomie update
- remove baseUrl configuration directive
- add version and logLevel configuration directives
- change github repository handler config
branch
toversion
- add local repository support
- remove support for CORS proxy
- add
hasRepository
function to PluginLoader - the inability to load all user-specified plugins no longer leads to an error during HHM start
- better error reporting during HHM start
- rename
handlerFunction
parameter tohandler
in preparation of support for object handlers
- add JsDoc documentation to HHM code
- add repository information in README and config
- improve repository handling
- move some Node dependencies to
devDependencies
- improve event handler execution metadata API
- function reflector now works for
Function
objects and string representations of functions - improve status management of loaded / enabled plugins
- disable caching for AJAX calls
- clean up plugin and plugin manager interfaces
- fix bug in plugin enabling code where recursive enabling would fail
- begin clean up of different event system: HHM, local, global events
- add event which is executed before a plugin is marked as loaded but
after its
onRoomLink
handler has been executed - add observer pattern for plugin configuration changes
- HHM start fails now if one of the initial plugins (core, persistence) fail to load
- improve pre/post event handler hooks and event state validation system
- fix TrappedRoomManager interface
- fix a problem where calling
isLoaded()
on a plugin in a very early state of initialization would cause an error - add storage support using localForage
- make event API more consistent, just like the native API player objects will now be passed to handlers
- ditch GUI, haxroomie-web does a better job of it
- adjust default configurations to support haxroomie
- remove dryRun, trueHeadless, sendChatMaxLength from config
- start organising documentation (still useless, sorry!)
- revert back to old approach where plugins are only loaded after the room link is available. This makes everything easier, so deal with the minimal delay!
- fix problems with injected destructuring parameters
- remove custom event
onLoad
, please useonRoomLink
for initialization - when loading plugins by code, a name can now be passed along
- fix problem where plugin names were not picked up from the pluginSpec
- add event system for HHM-related events (plugin loaded/enabled/disabled)
_postInit
plugin is now called_user/postInit
- add custom event handlers
onEnable
andonDisable
- fix npm dependencies to automatically install from github repositories where necessary (thanks morko)
haxroomie-RoomTrapper
is renamed to haxball-room-trapper and we are back to using the repository of the original author (thanks morko)- add config file for testing during development
- the plugin system now loads plugins as soon as possible and does not wait for
the room link anymore. This means if you expecting the room to be running in
your
onLoad
handler, this code has to be moved into theonRoomLink
handler! - add event system for HHM changes like plugins being added / disabled, which can also be used from within plugins
- add support for event state validators and pre-event handler hooks, which help deal with problematic multi-handler situations
- add room.log() function, which automatically adds the plugin name in log messages
- extra parameters (event handler execution metadata) are now passed more smartly by analysing the expected parameters of an event handler using reflection
- add room extension mechanism which allows extending existing room function or adding new ones using room.extend()
- plugins have been moved to a separate repository
- refactoring!
- add support for iterable (e.g. array) or object handlers
- add CORS Anywhere proxy through which all AJAX requests are automatically proxied (thanks morko)
- add
HHM.log.toRoom()
, which allows logging to both the room and the console - fix problem where plugins where sometimes loaded twice
- refactor room and plugin manager interfaces to be more intuitive and clear
- add custom event
onLoad
to give plugins a way to execute code once all dependencies have been loaded - add custom
room.sendChat
implementation that automatically cuts long messages up to a maximum length defined inHHM.config.sendChatMaxLength
- improve cron plugin, see its changelog
- improve commands plugin (see plugins/saviola/commands.js for changelog)
- fix a problem when trying to load a plugin that was already loaded
- fix problem that allowed plugins to be disabled even if other plugins depended on it (#2)
- fix a problem that would not enable a plugin after it was disabled once
- initial version
- support for loading configuration file from URL or via upload
- support for adding plugins via file, repository name or pasted source code
- support for dependency management and execution order specification
- experimental support for enabling / disabling plugins