#include "../client.h" void command_countitem(Client *c, const Seperator *sep) { int arguments = sep->argnum; if (!arguments || !sep->IsNumber(1)) { c->Message(Chat::White, "Usage: #countitem [Item ID]"); return; } Mob* target = c; if ( c->GetTarget() && ( c->GetTarget()->IsClient() || c->GetTarget()->IsNPC() ) ) { target = c->GetTarget(); } auto item_id = Strings::ToUnsignedInt(sep->arg[1]); if (!database.GetItem(item_id)) { c->Message( Chat::White, fmt::format( "Item ID {} could not be found.", item_id ).c_str() ); return; } uint16 item_count = 0; if (target->IsClient()) { item_count = target->CastToClient()->CountItem(item_id); } else if (target->IsNPC()) { item_count = target->CastToNPC()->CountItem(item_id); } c->Message( Chat::White, fmt::format( "{} {} {} {}.", c->GetTargetDescription(target, TargetDescriptionType::UCYou), c == target ? "have" : "has", ( item_count ? std::to_string(item_count) : "no" ), database.CreateItemLink(item_id) ).c_str() ); }