def self.dispatch_command(args_text, user: nil, fetch: nil, network: nil, channel: nil, store: RabbotDb)
parsed = AlaMyth.parse_command(args_text)
return { error: parsed[:error] } if parsed[:error]
case parsed[:action]
when :help
{ reply: AlaMyth.help_reply }
when :species
match = AlaSpecies.best_match(parsed[:query], fetch: fetch)
{ reply: AlaSpecies.format_species(parsed[:query], match, fetch: fetch) }
when :myth
return { error: "Use !ala myth in a channel." } unless network && channel
AlaMyth.start_round(network: network, channel: channel, store: store)
when :guess
return { error: "Use !ala guess in a channel." } unless network && channel
AlaMyth.submit_guess(
network: network,
channel: channel,
user: user.to_s,
guess: parsed[:guess],
fetch: fetch,
store: store
)
else
{ reply: AlaMyth.help_reply }
end
end