summaryrefslogtreecommitdiff
path: root/src/actions/commands.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/actions/commands.cpp')
-rw-r--r--src/actions/commands.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/actions/commands.cpp b/src/actions/commands.cpp
index 6708567cf..151e54474 100644
--- a/src/actions/commands.cpp
+++ b/src/actions/commands.cpp
@@ -22,10 +22,14 @@
#include "actormanager.h"
#include "configuration.h"
+#include "flooritem.h"
+#include "inventory.h"
+#include "item.h"
#include "actions/actiondef.h"
#include "being/localplayer.h"
+#include "being/playerinfo.h"
#include "being/playerrelations.h"
#include "gui/chatconsts.h"
@@ -43,6 +47,8 @@
#include "net/pethandler.h"
#include "net/serverfeatures.h"
+#include "resources/iteminfo.h"
+
#include "utils/chatutils.h"
#include "utils/gettext.h"
#include "utils/process.h"
@@ -245,6 +251,43 @@ impHandler(chatNuke)
return true;
}
+impHandler(chatAdd)
+{
+ if (!chatWindow)
+ return false;
+
+ if (event.args.empty())
+ return true;
+
+ const int id = atoi(event.args.c_str());
+ if (!id)
+ return true;
+
+ Inventory *const inv = PlayerInfo::getInventory();
+ const Item *item = nullptr;
+ if (inv)
+ {
+ // +++ need add also color here
+ item = inv->findItem(id, 1);
+ }
+
+ if (item)
+ {
+ // +++ need add also color here
+ chatWindow->addItemText(item->getInfo().getName());
+ return true;
+ }
+
+ const FloorItem *const floorItem = actorManager->findItem(id);
+
+ if (floorItem)
+ {
+ // +++ need add also color here
+ chatWindow->addItemText(floorItem->getInfo().getName());
+ }
+ return true;
+}
+
impHandler0(present)
{
if (chatWindow)