In writing this MUD engine, I have decided to add a plugin system. What kinds of things would the average end-user want included in something like this? The two routes available at the moment are passing an API object to the entry point of the plugin, which would provide limited access to making modifications. Or, I can allow raw access to the entirety of the engine from the plugin which would allow it to make major modifications to functionality at runtime. I brought this up on slack, but I want to make some use of the forums too.
I think the ranvier bundle system works pretty well. I’d have a look at that.
Doing known hooks seems like the safer approach and probably what I’d take. From what little I’ve looked at it,I think this is what ranvier does with its event emitters?
There are currently 2 hook event emitters, one for world based things, and another for other events. These can be used for adding to the regular event system without having to make modifications.
Im mostly interested in having it allow importing from the perspective of being able to add new features without making core engine modifications