summaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
authorsudlud <sudlud@users.noreply.github.com>2024-02-19 21:23:13 +0100
committerGitHub <noreply@github.com>2024-02-19 21:23:13 +0100
commitd94d10aa9fbd33ed4c35cc08920b1cd0bb820efd (patch)
tree5b5bd638e98ba4cf55aec30e1840856f9c809ab2 /src/server/game/Handlers/ItemHandler.cpp
parent7e419fba5a0f75bafe8d5f3c7245df24f3310f63 (diff)
fix(Core): Prevent gift wrapping of limited duration items (#18334)
fix(Core): Prevent gift wrapping of items with duration - remaining duration is not beeing stored in character_gifts - gift wrapping of items with duration preserved them infinitely
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 655418b48a..7307b6e8f4 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -1346,6 +1346,12 @@ void WorldSession::HandleWrapItemOpcode(WorldPacket& recvData)
return;
}
+ if (item->GetTemplate()->Duration > 0)
+ {
+ _player->SendEquipError(EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED, item, nullptr);
+ return;
+ }
+
CharacterDatabaseTransaction trans = CharacterDatabase.BeginTransaction();
CharacterDatabasePreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_CHAR_GIFT);