[Commands] Cleanup #nukeitem Command. (#1782)

* [Commands] Cleanup #nukeitem Command.
- Cleanup message and logic.

* Typo.
This commit is contained in:
Kinglykrab 2021-11-21 09:59:07 -05:00 committed by GitHub
parent 69d5fee471
commit dfe43ce189
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 9 deletions

View File

@ -267,7 +267,7 @@ int command_init(void)
command_add("npctypespawn", "[npctypeid] [factionid] - Spawn an NPC from the db", AccountStatus::Steward, command_npctypespawn) ||
command_add("nudge", "- Nudge your target's current position by specific values", AccountStatus::QuestTroupe, command_nudge) ||
command_add("nukebuffs", "- Strip all buffs on you or your target", AccountStatus::Guide, command_nukebuffs) ||
command_add("nukeitem", "[itemid] - Remove itemid from your player target's inventory", AccountStatus::GMLeadAdmin, command_nukeitem) ||
command_add("nukeitem", "[Item ID] - Removes the specified Item ID from you or your player target's inventory", AccountStatus::GMLeadAdmin, command_nukeitem) ||
command_add("object", "List|Add|Edit|Move|Rotate|Copy|Save|Undo|Delete - Manipulate static and tradeskill objects within the zone", AccountStatus::GMAdmin, command_object) ||
command_add("oocmute", "[1/0] - Mutes OOC chat", AccountStatus::GMMgmt, command_oocmute) ||
command_add("opcode", "- opcode management", AccountStatus::GMImpossible, command_opcode) ||

View File

@ -2,15 +2,40 @@
void command_nukeitem(Client *c, const Seperator *sep)
{
int numitems, itemid;
if (c->GetTarget() && c->GetTarget()->IsClient() && (sep->IsNumber(1) || sep->IsHexNumber(1))) {
itemid = sep->IsNumber(1) ? atoi(sep->arg[1]) : hextoi(sep->arg[1]);
numitems = c->GetTarget()->CastToClient()->NukeItem(itemid);
c->Message(Chat::White, " %u items deleted", numitems);
int arguments = sep->argnum;
if (!arguments || !sep->IsNumber(1)) {
c->Message(Chat::White, "Usage: #nukeitem [Item ID] - Removes the specified Item ID from you or your player target's inventory");
return;
}
else {
c->Message(Chat::White, "Usage: (targted) #nukeitem itemnum - removes the item from the player's inventory");
Client *target = c;
if (c->GetTarget() && c->GetTarget()->IsClient()) {
target = c->GetTarget()->CastToClient();
}
auto item_id = std::stoi(sep->arg[1]);
auto deleted_count = target->NukeItem(item_id);
if (deleted_count) {
c->Message(
Chat::White,
fmt::format(
"{} {} ({}) deleted from {}.",
deleted_count,
database.CreateItemLink(item_id),
item_id,
c == target ? "yourself" : target->GetCleanName()
).c_str()
);
} else {
c->Message(
Chat::White,
fmt::format(
"Could not find any {} ({}) to delete from {}.",
database.CreateItemLink(item_id),
item_id,
c == target ? "yourself" : target->GetCleanName()
).c_str()
);
}
}