Having common bases for components may allow us to better organise them. Ideas:
InteractionComponent
This would allow us to extend the defer options, which leads to less duplication. It also might lead perfectly into de-duplicating interactionCreate listeners
RunnableComponent
Standardising around run being the primary handler name allows us to have a shared type. The downside is that it's somewhat redundant since we delegate handling and running to the plugins, also might lead to weird typing.
Somewhat related to RunnableComponent having a common ComponentContext object, and a way of getting it would be ideal for changes to it. This ties in nicely to #225 too
Having common bases for components may allow us to better organise them. Ideas:
InteractionComponent
This would allow us to extend the
defer
options, which leads to less duplication. It also might lead perfectly into de-duplicatinginteractionCreate
listenersRunnableComponent
Standardising around
run
being the primary handler name allows us to have a shared type. The downside is that it's somewhat redundant since we delegate handling and running to the plugins, also might lead to weird typing.Somewhat related to
RunnableComponent
having a commonComponentContext
object, and a way of getting it would be ideal for changes to it. This ties in nicely to #225 too