mirror of
https://github.com/EQEmu/Server.git
synced 2026-08-30 17:58:16 +00:00
[GM Commands] Split GM Commands Into Separate Files (#1766)
* Split GM commands into their own files * Code cleanup
This commit is contained in:
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#include "../client.h"
|
||||
|
||||
void command_interrogateinv(Client *c, const Seperator *sep)
|
||||
{
|
||||
// 'command_interrogateinv' is an in-memory inventory interrogation tool only.
|
||||
//
|
||||
// it does not verify against actual database entries..but, the output can be
|
||||
// used to verify that something has been corrupted in a player's inventory.
|
||||
// any error condition should be assumed that the item in question will be
|
||||
// lost when the player logs out or zones (or incurrs any action that will
|
||||
// consume the Client-Inventory object instance in question.)
|
||||
//
|
||||
// any item instances located at a greater depth than a reported error should
|
||||
// be treated as an error themselves regardless of whether they report as the
|
||||
// same or not.
|
||||
|
||||
if (strcasecmp(sep->arg[1], "help") == 0) {
|
||||
if (c->Admin() < commandInterrogateInv) {
|
||||
c->Message(Chat::White, "Usage: #interrogateinv");
|
||||
c->Message(Chat::White, " Displays your inventory's current in-memory nested storage references");
|
||||
}
|
||||
else {
|
||||
c->Message(Chat::White, "Usage: #interrogateinv [log] [silent]");
|
||||
c->Message(
|
||||
Chat::White,
|
||||
" Displays your or your Player target inventory's current in-memory nested storage references"
|
||||
);
|
||||
c->Message(Chat::White, " [log] - Logs interrogation to file");
|
||||
c->Message(Chat::White, " [silent] - Omits the in-game message portion of the interrogation");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Client *target = nullptr;
|
||||
std::map<int16, const EQ::ItemInstance *> instmap;
|
||||
bool log = false;
|
||||
bool silent = false;
|
||||
bool error = false;
|
||||
bool allowtrip = false;
|
||||
|
||||
if (c->Admin() < commandInterrogateInv) {
|
||||
if (c->GetInterrogateInvState()) {
|
||||
c->Message(Chat::Red, "The last use of #interrogateinv on this inventory instance discovered an error...");
|
||||
c->Message(Chat::Red, "Logging out, zoning or re-arranging items at this point will result in item loss!");
|
||||
return;
|
||||
}
|
||||
target = c;
|
||||
allowtrip = true;
|
||||
}
|
||||
else {
|
||||
if (c->GetTarget() == nullptr) {
|
||||
target = c;
|
||||
}
|
||||
else if (c->GetTarget()->IsClient()) {
|
||||
target = c->GetTarget()->CastToClient();
|
||||
}
|
||||
else {
|
||||
c->Message(Chat::Default, "Use of this command is limited to Client entities");
|
||||
return;
|
||||
}
|
||||
|
||||
if (strcasecmp(sep->arg[1], "log") == 0) {
|
||||
log = true;
|
||||
}
|
||||
if (strcasecmp(sep->arg[2], "silent") == 0) {
|
||||
silent = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool success = target->InterrogateInventory(c, log, silent, allowtrip, error);
|
||||
|
||||
if (!success) {
|
||||
c->Message(Chat::Red, "An unknown error occurred while processing Client::InterrogateInventory()");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user