summaryrefslogtreecommitdiff
path: root/src/actions
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions')
-rw-r--r--src/actions/commands.cpp31
-rw-r--r--src/actions/commands.h1
2 files changed, 32 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
diff --git a/src/actions/commands.h b/src/actions/commands.h
index 085b89663..29fa6ef27 100644
--- a/src/actions/commands.h
+++ b/src/actions/commands.h
@@ -76,6 +76,7 @@ namespace Actions
decHandler(setPetName);
decHandler(setHomunculusName);
decHandler(fireHomunculus);
+ decHandler(buy);
} // namespace Actions
#undef decHandler