def execute(m, args = nil)
unless m.channel
m.reply "Use !boggle in a channel"
return
end
network = bot.config.server
channel = m.channel.name
user = m.user.nick
parsed = BoggleGame.parse_command(args.to_s)
if parsed[:error]
themed_flood_safe_reply(m, parsed[:error])
return
end
data = GameStore.load(plugin: BoggleGame::PLUGIN, network: network, channel: channel)
result = case parsed[:action]
when :new
BoggleGame.start_round
when :find
BoggleGame.submit_word(data: data, user: user, word: parsed[:word])
when :end
BoggleGame.end_round(data: data)
when :status
{ message: BoggleGame.format_status(data) }
when :current
BoggleGame.current(data: data)
when :hint
BoggleGame.hint(data: data)
when :info
BoggleGame.info(data: data)
else
{ message: BoggleGame.usage_message }
end
if result[:error]
themed_flood_safe_reply(m, result[:error])
return
end
GameStore.save(plugin: BoggleGame::PLUGIN, network: network, channel: channel, game: result[:data]) if result[:data]
themed_flood_safe_reply(m, result[:message])
end