/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it * and/or modify it under version 2 of the License, or (at your option), any later version. */ #include "HelpAction.h" #include "ChatActionContext.h" #include "Event.h" #include "Playerbots.h" HelpAction::HelpAction(PlayerbotAI* botAI) : Action(botAI, "help") { chatContext = new ChatActionContext(); } HelpAction::~HelpAction() { delete chatContext; } bool HelpAction::Execute(Event event) { TellChatCommands(); TellStrategies(); return true; } void HelpAction::TellChatCommands() { std::ostringstream out; out << "Whisper any of: "; out << CombineSupported(chatContext->supports()); out << ", [item], [quest] or [object] link"; botAI->TellError(out.str()); } void HelpAction::TellStrategies() { std::ostringstream out; out << "Possible strategies (co/nc/dead commands): "; out << CombineSupported(botAI->GetAiObjectContext()->GetSupportedStrategies()); botAI->TellError(out.str()); } std::string const HelpAction::CombineSupported(std::set commands) { std::ostringstream out; for (std::set::iterator i = commands.begin(); i != commands.end();) { out << *i; if (++i != commands.end()) out << ", "; } return out.str(); }