TrinityCore
ItemPackets.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef ItemPackets_h__
19#define ItemPackets_h__
20
21#include "Packet.h"
23#include "DBCEnums.h"
24#include "ItemDefines.h"
25#include "ItemPacketsCommon.h"
26#include "ObjectGuid.h"
27#include "Optional.h"
28#include <array>
29
30struct VoidStorageItem;
31
32namespace WorldPackets
33{
34 namespace Item
35 {
36 class BuyBackItem final : public ClientPacket
37 {
38 public:
40
41 void Read() override;
42
45 };
46
47 class BuyItem final : public ClientPacket
48 {
49 public:
50 BuyItem(WorldPacket&& packet) : ClientPacket(CMSG_BUY_ITEM, std::move(packet)) { }
51
52 void Read() override;
53
61 };
62
64 {
65 public:
66 BuySucceeded() : ServerPacket(SMSG_BUY_SUCCEEDED, 16 + 4 + 4 + 4 + 4) { }
67
68 WorldPacket const* Write() override;
69
74 };
75
76 class BuyFailed final : ServerPacket
77 {
78 public:
80
81 WorldPacket const* Write() override;
82
86 };
87
88 class GetItemPurchaseData final : public ClientPacket
89 {
90 public:
92
93 void Read() override;
94
96 };
97
99 {
102 };
103
105 {
108 };
109
111 {
115 };
116
118 {
119 public:
120 SetItemPurchaseData() : ServerPacket(SMSG_SET_ITEM_PURCHASE_DATA, 4 + 4 + 4 + 5 * (4 + 4) + 5 * (4 + 4) + 16) { }
121
122 WorldPacket const* Write() override;
123
128 };
129
130 class ItemPurchaseRefund final : public ClientPacket
131 {
132 public:
134
135 void Read() override;
136
138 };
139
141 {
142 public:
143 ItemPurchaseRefundResult() : ServerPacket(SMSG_ITEM_PURCHASE_REFUND_RESULT, 1 + 4 + 5 * (4 + 4) + 5 * (4 + 4) + 16) { }
144
145 WorldPacket const* Write() override;
146
150 };
151
153 {
154 public:
156
157 WorldPacket const* Write() override;
158
160 };
161
162 class RepairItem final : public ClientPacket
163 {
164 public:
166
167 void Read() override;
168
171 bool UseGuildBank = false;
172 };
173
174 class SellItem final : public ClientPacket
175 {
176 public:
177 SellItem(WorldPacket&& packet) : ClientPacket(CMSG_SELL_ITEM, std::move(packet)) { }
178
179 void Read() override;
180
184 };
185
186 class ItemTimeUpdate final : public ServerPacket
187 {
188 public:
190
191 WorldPacket const* Write() override;
192
195 };
196
197 class SetProficiency final : public ServerPacket
198 {
199 public:
201
202 WorldPacket const* Write() override;
203
206 };
207
209 {
210 public:
212
213 WorldPacket const* Write() override;
214
223 };
224
225 class SplitItem final : public ClientPacket
226 {
227 public:
228 SplitItem(WorldPacket&& packet) : ClientPacket(CMSG_SPLIT_ITEM, std::move(packet)) { }
229
230 void Read() override;
231
238 };
239
240 class SwapInvItem final : public ClientPacket
241 {
242 public:
244
245 void Read() override;
246
250 };
251
252 class SwapItem final : public ClientPacket
253 {
254 public:
255 SwapItem(WorldPacket&& packet) : ClientPacket(CMSG_SWAP_ITEM, std::move(packet)) { }
256
257 void Read() override;
258
264 };
265
266 class AutoEquipItem final : public ClientPacket
267 {
268 public:
270
271 void Read() override;
272
276 };
277
278 class AutoEquipItemSlot final : public ClientPacket
279 {
280 public:
282
283 void Read() override;
284
288 };
289
290 class AutoStoreBagItem final : public ClientPacket
291 {
292 public:
294
295 void Read() override;
296
301 };
302
303 class DestroyItem final : public ClientPacket
304 {
305 public:
307
308 void Read() override;
309
313 };
314
315 class SellResponse final : public ServerPacket
316 {
317 public:
319
320 WorldPacket const* Write() override;
321
323 std::vector<ObjectGuid> ItemGUIDs;
325 };
326
327 class ItemPushResult final : public ServerPacket
328 {
329 public:
331 {
335 };
336
337 ItemPushResult() : ServerPacket(SMSG_ITEM_PUSH_RESULT, 16 + 1 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 16 + 1 + 1 + 1 + 1) { }
338
339 WorldPacket const* Write() override;
340
345 int32 QuestLogItemID = 0; // Item ID used for updating quest progress
346 // only set if different than real ID (similar to CreatureTemplate.KillCredit)
355 std::vector<UiEventToast> Toasts;
358 bool Pushed = false;
360 bool Created = false;
361 bool Unused_1017 = false;
362 bool IsBonusRoll = false;
363 bool IsEncounterLoot = false;
364 };
365
366 class ReadItem final : public ClientPacket
367 {
368 public:
369 ReadItem(WorldPacket&& packet) : ClientPacket(CMSG_READ_ITEM, std::move(packet)) { }
370
371 void Read() override;
372
375 };
376
378 {
379 public:
381
382 WorldPacket const* Write() override;
383
387 };
388
389 class ReadItemResultOK final : public ServerPacket
390 {
391 public:
393
394 WorldPacket const* Write() override;
395
397 };
398
399 class WrapItem final : public ClientPacket
400 {
401 public:
402 WrapItem(WorldPacket&& packet) : ClientPacket(CMSG_WRAP_ITEM, std::move(packet)) { }
403
404 void Read() override;
405
407 };
408
410 {
411 public:
413
414 void Read() override;
415
417 };
418
419 class ItemCooldown final : public ServerPacket
420 {
421 public:
423
424 WorldPacket const* Write() override;
425
429 };
430
431 class EnchantmentLog final : public ServerPacket
432 {
433 public:
435
436 WorldPacket const* Write() override;
437
444 };
445
447 {
448 public:
450
451 WorldPacket const* Write() override;
452
457 };
458
459 class UseCritterItem final : public ClientPacket
460 {
461 public:
463
464 void Read() override;
465
467 };
468
469 class SocketGems final : public ClientPacket
470 {
471 public:
473
474 void Read() override;
475
477 std::array<ObjectGuid, MAX_ITEM_PROTO_SOCKETS> GemItem = { };
478 };
479
480 class SocketGemsSuccess final : public ServerPacket
481 {
482 public:
484
485 WorldPacket const* Write() override;
486
488 };
489
490 class SortBags final : public ClientPacket
491 {
492 public:
493 SortBags(WorldPacket&& packet) : ClientPacket(CMSG_SORT_BAGS, std::move(packet)) { }
494
495 void Read() override { }
496 };
497
498 class SortBankBags final : public ClientPacket
499 {
500 public:
502
503 void Read() override { }
504 };
505
507 {
508 public:
510
511 void Read() override { }
512 };
513
514 class BagCleanupFinished final : public ServerPacket
515 {
516 public:
518
519 WorldPacket const* Write() override { return &_worldPacket; }
520 };
521
522 class RemoveNewItem final : public ClientPacket
523 {
524 public:
526
527 void Read() override;
528
530 };
531
533 {
534 public:
536
537 WorldPacket const* Write() override { return &_worldPacket; }
538 };
539 }
540}
541
542#endif // ItemPackets_h__
uint8_t uint8
Definition: Define.h:144
int32_t int32
Definition: Define.h:138
uint64_t uint64
Definition: Define.h:141
uint32_t uint32
Definition: Define.h:142
@ EQUIP_ERR_OK
Definition: ItemDefines.h:26
BuyResult
Definition: ItemDefines.h:149
@ BUY_ERR_CANT_FIND_ITEM
Definition: ItemDefines.h:150
SellResult
Definition: ItemDefines.h:163
@ SELL_ERR_UNK
Definition: ItemDefines.h:168
ItemVendorType
Definition: ItemDefines.h:201
@ ITEM_VENDOR_TYPE_NONE
Definition: ItemDefines.h:202
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition: Optional.h:25
Definition: Item.h:170
AutoEquipItemSlot(WorldPacket &&packet)
Definition: ItemPackets.h:281
AutoEquipItem(WorldPacket &&packet)
Definition: ItemPackets.h:269
AutoStoreBagItem(WorldPacket &&packet)
Definition: ItemPackets.h:293
WorldPacket const * Write() override
Definition: ItemPackets.h:519
BuyBackItem(WorldPacket &&packet)
Definition: ItemPackets.h:39
WorldPacket const * Write() override
Definition: ItemPackets.cpp:47
BuyItem(WorldPacket &&packet)
Definition: ItemPackets.h:50
WorldPacket const * Write() override
Definition: ItemPackets.cpp:37
CancelTempEnchantment(WorldPacket &&packet)
Definition: ItemPackets.h:412
DestroyItem(WorldPacket &&packet)
Definition: ItemPackets.h:306
WorldPacket const * Write() override
GetItemPurchaseData(WorldPacket &&packet)
Definition: ItemPackets.h:91
WorldPacket const * Write() override
WorldPacket const * Write() override
Definition: ItemPackets.h:537
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
Optional< ItemPurchaseContents > Contents
Definition: ItemPackets.h:149
ItemPurchaseRefund(WorldPacket &&packet)
Definition: ItemPackets.h:133
Optional< Crafting::CraftingData > CraftingData
Definition: ItemPackets.h:356
Optional< uint32 > FirstCraftOperationID
Definition: ItemPackets.h:357
WorldPacket const * Write() override
std::vector< UiEventToast > Toasts
Definition: ItemPackets.h:355
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
ReadItem(WorldPacket &&packet)
Definition: ItemPackets.h:369
RemoveNewItem(WorldPacket &&packet)
Definition: ItemPackets.h:525
RepairItem(WorldPacket &&packet)
Definition: ItemPackets.h:165
SellItem(WorldPacket &&packet)
Definition: ItemPackets.h:177
WorldPacket const * Write() override
std::vector< ObjectGuid > ItemGUIDs
Definition: ItemPackets.h:323
WorldPacket const * Write() override
Definition: ItemPackets.cpp:89
WorldPacket const * Write() override
WorldPacket const * Write() override
SocketGems(WorldPacket &&packet)
Definition: ItemPackets.h:472
std::array< ObjectGuid, MAX_ITEM_PROTO_SOCKETS > GemItem
Definition: ItemPackets.h:477
SortBags(WorldPacket &&packet)
Definition: ItemPackets.h:493
SortBankBags(WorldPacket &&packet)
Definition: ItemPackets.h:501
SortReagentBankBags(WorldPacket &&packet)
Definition: ItemPackets.h:509
SplitItem(WorldPacket &&packet)
Definition: ItemPackets.h:228
SwapInvItem(WorldPacket &&packet)
Definition: ItemPackets.h:243
SwapItem(WorldPacket &&packet)
Definition: ItemPackets.h:255
UseCritterItem(WorldPacket &&packet)
Definition: ItemPackets.h:462
WrapItem(WorldPacket &&packet)
Definition: ItemPackets.h:402
WorldPacket _worldPacket
Definition: Packet.h:43
@ CMSG_REPAIR_ITEM
Definition: Opcodes.h:696
@ CMSG_BUY_ITEM
Definition: Opcodes.h:152
@ CMSG_AUTO_EQUIP_ITEM
Definition: Opcodes.h:99
@ CMSG_BUY_BACK_ITEM
Definition: Opcodes.h:150
@ CMSG_SORT_BAGS
Definition: Opcodes.h:812
@ CMSG_READ_ITEM
Definition: Opcodes.h:691
@ CMSG_SOCKET_GEMS
Definition: Opcodes.h:811
@ CMSG_AUTO_STORE_BAG_ITEM
Definition: Opcodes.h:102
@ CMSG_USE_CRITTER_ITEM
Definition: Opcodes.h:881
@ CMSG_SORT_BANK_BAGS
Definition: Opcodes.h:813
@ CMSG_SPLIT_ITEM
Definition: Opcodes.h:822
@ CMSG_SORT_REAGENT_BANK_BAGS
Definition: Opcodes.h:814
@ CMSG_CANCEL_TEMP_ENCHANTMENT
Definition: Opcodes.h:179
@ CMSG_WRAP_ITEM
Definition: Opcodes.h:897
@ CMSG_GET_ITEM_PURCHASE_DATA
Definition: Opcodes.h:376
@ CMSG_AUTO_EQUIP_ITEM_SLOT
Definition: Opcodes.h:100
@ CMSG_DESTROY_ITEM
Definition: Opcodes.h:315
@ CMSG_REMOVE_NEW_ITEM
Definition: Opcodes.h:693
@ CMSG_SWAP_INV_ITEM
Definition: Opcodes.h:837
@ CMSG_ITEM_PURCHASE_REFUND
Definition: Opcodes.h:443
@ CMSG_SWAP_ITEM
Definition: Opcodes.h:838
@ CMSG_SELL_ITEM
Definition: Opcodes.h:755
@ SMSG_READ_ITEM_RESULT_FAILED
Definition: Opcodes.h:1831
@ SMSG_ITEM_EXPIRE_PURCHASE_REFUND
Definition: Opcodes.h:1462
@ SMSG_ENCHANTMENT_LOG
Definition: Opcodes.h:1225
@ SMSG_SET_PROFICIENCY
Definition: Opcodes.h:1924
@ SMSG_ITEM_PUSH_RESULT
Definition: Opcodes.h:1465
@ SMSG_INVENTORY_FULL_OVERFLOW
Definition: Opcodes.h:1455
@ SMSG_BUY_FAILED
Definition: Opcodes.h:1046
@ SMSG_BAG_CLEANUP_FINISHED
Definition: Opcodes.h:983
@ SMSG_SOCKET_GEMS_SUCCESS
Definition: Opcodes.h:1938
@ SMSG_SELL_RESPONSE
Definition: Opcodes.h:1890
@ SMSG_READ_ITEM_RESULT_OK
Definition: Opcodes.h:1832
@ SMSG_BUY_SUCCEEDED
Definition: Opcodes.h:1047
@ SMSG_ITEM_COOLDOWN
Definition: Opcodes.h:1460
@ SMSG_ITEM_PURCHASE_REFUND_RESULT
Definition: Opcodes.h:1464
@ SMSG_SET_ITEM_PURCHASE_DATA
Definition: Opcodes.h:1915
@ SMSG_INVENTORY_CHANGE_FAILURE
Definition: Opcodes.h:1453
@ SMSG_ITEM_TIME_UPDATE
Definition: Opcodes.h:1466
@ SMSG_ITEM_ENCHANT_TIME_UPDATE
Definition: Opcodes.h:1461
STL namespace.
ItemPurchaseRefundCurrency Currencies[5]
Definition: ItemPackets.h:114