diff options
Diffstat (limited to 'src/actions/commands.cpp')
-rw-r--r-- | src/actions/commands.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp index c8d4f2b21..cd35ba9aa 100644 --- a/src/actions/commands.cpp +++ b/src/actions/commands.cpp @@ -37,9 +37,11 @@ #include "gui/widgets/tabs/chat/whispertab.h" #include "net/adminhandler.h" +#include "net/buysellhandler.h" #include "net/chathandler.h" #include "net/guildhandler.h" #include "net/homunculushandler.h" +#include "net/npchandler.h" #include "net/pethandler.h" #include "net/serverfeatures.h" @@ -711,4 +713,33 @@ impHandler0(fireHomunculus) return true; } +impHandler(buy) +{ + const std::string args = event.args; + Being *being = nullptr; + if (args.empty()) + { + being = localPlayer->getTarget(); + } + else + { + being = actorManager->findBeingByName( + args, ActorType::Unknown); + } + if (!being) + return false; + + if (being->getType() == ActorType::Npc) + { + npcHandler->buy(being->getId()); + return true; + } + else if (being->getType() == ActorType::Player) + { + buySellHandler->requestSellList(being->getName()); + return true; + } + return false; +} + } // namespace Actions |