Refactor pipeline input/output mapping
Refactor the current "pipeline" setup to allow greater flexibility in configuring inputs and outputs. Design for a fan-out pattern - a single input command or message could be processed, parsed, then sent to multiple outputs.
e.g.:
- A parsed server log message for an item send for an important item could be sent to general item sends, an "important item" sends channel, and notify the receiver via DM
- A command entered at the console could return info to a private channel and DM an affected player
Allow any step of the pipeline to modify the output channels; instead of returning a single result from each pipeline step, pass a message object that gets built as it passes through each step (including which channels it should go through), then iterate through and send the final message object to all enabled output adapters.
Refactoring pipelines:
- Refactor processing to support multiple pipelines
- Input adapter -> (determine parser type) -> parser(s) matching type -> output adapter(s)
- Determine parser(s) to engage from initial input; e.g., could treat Discord DM or channel control commands as if they came from console
- Rename all "Composer"s to "Parser"s, restructure subdirectories under
parsers
based on the type of data coming in (e.g., log data, bot command, backend command, etc) - Rename
ConsoleInputAdapter
toFileInputAdapter
- Rename
DiscordOutputAdapter
toDiscordChannelOutputAdapter
(look into docs to see if a DM is enough of a channel where the distinction is worthwhile)