mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-28 08:06:23 +00:00
fix(Core/Command): additem checks (#2898)
* Add check if the player has 0 items to be destroyed * Add check if the player has less than items trying to be destroyed
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1587062218041221300');
|
||||
|
||||
DELETE FROM `acore_string` WHERE `entry` IN (30081,30082);
|
||||
INSERT INTO `acore_string` (`entry`, `content_default`) VALUES
|
||||
(30081, "%s does not have itemID = %i, thus cannot be removed."),
|
||||
(30082, "%s does not have that many of itemID = %i, thus none were removed.");
|
||||
|
||||
UPDATE `command` SET `help` = "Syntax: .additem #itemID/[#itemName]/#itemLink #itemCount\r\nAdds the specified item to you or the selected character.\nIf #itemCount is negative, you will remove #itemID." WHERE `name` = "additem";
|
||||
@@ -1314,6 +1314,9 @@ enum AcoreStrings
|
||||
LANG_INSTANT_FLIGHT_ON = 30078,
|
||||
LANG_INSTANT_FLIGHT_OFF = 30079,
|
||||
|
||||
LANG_DEBUG_OPCODE_FILE_MISSING = 30080
|
||||
LANG_DEBUG_OPCODE_FILE_MISSING = 30080,
|
||||
|
||||
LANG_REMOVEITEM_FAILURE = 30081,
|
||||
LANG_REMOVEITEM_ERROR = 30082
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -1466,8 +1466,23 @@ public:
|
||||
// Subtract
|
||||
if (count < 0)
|
||||
{
|
||||
playerTarget->DestroyItemCount(itemId, -count, true, false);
|
||||
handler->PSendSysMessage(LANG_REMOVEITEM, itemId, -count, handler->GetNameLink(playerTarget).c_str());
|
||||
if (!playerTarget->HasItemCount(itemId, 0))
|
||||
{
|
||||
// output that player don't have any items to destroy
|
||||
handler->PSendSysMessage(LANG_REMOVEITEM_FAILURE, handler->GetNameLink(playerTarget).c_str(), itemId);
|
||||
}
|
||||
else if (!playerTarget->HasItemCount(itemId, -count))
|
||||
{
|
||||
// output that player don't have as many items that you want to destroy
|
||||
handler->PSendSysMessage(LANG_REMOVEITEM_ERROR, handler->GetNameLink(playerTarget).c_str(), itemId);
|
||||
}
|
||||
else
|
||||
{
|
||||
// output successful amount of destroyed items
|
||||
playerTarget->DestroyItemCount(itemId, -count, true, false);
|
||||
handler->PSendSysMessage(LANG_REMOVEITEM, itemId, -count, handler->GetNameLink(playerTarget).c_str());
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user