TrinityCore
Loading...
Searching...
No Matches
QueryPackets.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 TRINITYCORE_QUERY_PACKETS_H
19#define TRINITYCORE_QUERY_PACKETS_H
20
21#include "Packet.h"
23#include "ItemPacketsCommon.h"
24#include "NPCHandler.h"
25#include "ObjectGuid.h"
26#include "PacketUtilities.h"
27#include "Position.h"
28#include "RaceMask.h"
29#include "SharedDefines.h"
30#include "UnitDefines.h"
31#include <array>
32
33class Player;
34struct QuestPOIData;
36
37namespace WorldPackets
38{
39 namespace Query
40 {
41 class QueryCreature final : public ClientPacket
42 {
43 public:
44 explicit QueryCreature(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_CREATURE, std::move(packet)) { }
45
46 void Read() override;
47
49 };
50
52 {
54 float Scale = 1.0f;
55 float Probability = 1.0f;
56 };
57
59 {
60 float TotalProbability = 0.0f;
61 std::vector<CreatureXDisplay> CreatureDisplay;
62 };
63
65 {
66 std::string Title;
67 std::string TitleAlt;
68 std::string CursorName;
73 float HpMulti = 0.0f;
74 float EnergyMulti = 0.0f;
75 bool Leader = false;
76 std::vector<int32> QuestItems;
77 std::vector<int32> QuestCurrencies;
86 std::array<uint32, 3> Flags = { };
87 std::array<uint32, 2> ProxyCreatureID = { };
88 std::array<std::string, 4> Name = { };
89 std::array<std::string, 4> NameAlt = { };
90 };
91
93 {
94 public:
96
97 WorldPacket const* Write() override;
98
99 bool Allow = false;
102 };
103
104 class QueryPlayerNames final : public ClientPacket
105 {
106 public:
107 explicit QueryPlayerNames(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_PLAYER_NAMES, std::move(packet)) { }
108
109 void Read() override;
110
112 };
113
133
140
142 {
144 std::string_view Name;
145 };
146
155
157 {
158 public:
160
161 WorldPacket const* Write() override;
162
163 std::vector<NameCacheLookupResult> Players;
164 };
165
166 class QueryPageText final : public ClientPacket
167 {
168 public:
169 explicit QueryPageText(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_PAGE_TEXT, std::move(packet)) { }
170
171 void Read() override;
172
175 };
176
178 {
179 public:
181
182 WorldPacket const* Write() override;
183
185 {
190 std::string Text;
191 };
192
194 bool Allow = false;
195 std::vector<PageTextInfo> Pages;
196 };
197
198 class QueryNPCText final : public ClientPacket
199 {
200 public:
201 explicit QueryNPCText(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_NPC_TEXT, std::move(packet)) { }
202
203 void Read() override;
204
207 };
208
210 {
211 public:
213
214 WorldPacket const* Write() override;
215
217 bool Allow = false;
218 std::array<float, MAX_NPC_TEXT_OPTIONS> Probabilities = { };
219 std::array<uint32, MAX_NPC_TEXT_OPTIONS> BroadcastTextID = { };
220 };
221
222 class QueryGameObject final : public ClientPacket
223 {
224 public:
225 explicit QueryGameObject(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_GAME_OBJECT, std::move(packet)) { }
226
227 void Read() override;
228
231 };
232
234 {
235 std::string Name[4];
236 std::string IconName;
237 std::string CastBarCaption;
238 std::string UnkString;
241 std::array<uint32, MAX_GAMEOBJECT_DATA> Data = { };
242 float Size = 0.0f;
243 std::vector<int32> QuestItems;
246 };
247
249 {
250 public:
252
253 WorldPacket const* Write() override;
254
257 bool Allow = false;
259 };
260
262 {
263 public:
265
266 void Read() override;
267
269 };
270
271 class CorpseLocation final : public ServerPacket
272 {
273 public:
274 explicit CorpseLocation() : ServerPacket(SMSG_CORPSE_LOCATION, 1 + (5 * 4) + 16) { }
275
276 WorldPacket const* Write() override;
277
283 bool Valid = false;
284 };
285
287 {
288 public:
290
291 void Read() override;
292
295 };
296
298 {
299 public:
301
302 WorldPacket const* Write() override;
303
306 float Facing = 0.0f;
307 };
308
309 class QueryTime final : public ClientPacket
310 {
311 public:
312 explicit QueryTime(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_TIME, std::move(packet)) { }
313
314 void Read() override { }
315 };
316
317 class QueryTimeResponse final : public ServerPacket
318 {
319 public:
321
322 WorldPacket const* Write() override;
323
325 };
326
327 class QuestPOIQuery final : public ClientPacket
328 {
329 public:
330 explicit QuestPOIQuery(WorldPacket&& packet) : ClientPacket(CMSG_QUEST_POI_QUERY, std::move(packet)) { }
331
332 void Read() override;
333
335 std::array<int32, 175> MissingQuestPOIs = { };
336 };
337
339 {
340 public:
342
343 WorldPacket const* Write() override;
344
345 std::vector<QuestPOIData const*> QuestPOIDataStats;
346 };
347
349 {
350 public:
352
353 void Read() override;
354
356 };
357
359 {
361 std::vector<int32> NPCs;
362 };
363
365 {
366 public:
368
369 WorldPacket const* Write() override;
370
371 std::vector<QuestCompletionNPC> QuestCompletionNPCs;
372 };
373
374 class QueryPetName final : public ClientPacket
375 {
376 public:
377 explicit QueryPetName(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_PET_NAME, std::move(packet)) { }
378
379 void Read() override;
380
382 };
383
385 {
386 public:
388
389 WorldPacket const* Write() override;
390
392 bool Allow = false;
393
394 bool HasDeclined = false;
397 std::string Name;
398 };
399
400 class ItemTextQuery final : public ClientPacket
401 {
402 public:
403 explicit ItemTextQuery(WorldPacket&& packet) : ClientPacket(CMSG_ITEM_TEXT_QUERY, std::move(packet)) { }
404
405 void Read() override;
406
408 };
409
411 {
412 std::string Text;
413 };
414
416 {
417 public:
419
420 WorldPacket const* Write() override;
421
423 bool Valid = false;
425 };
426
427 class QueryRealmName final : public ClientPacket
428 {
429 public:
430 explicit QueryRealmName(WorldPacket&& packet) : ClientPacket(CMSG_QUERY_REALM_NAME, std::move(packet)) { }
431
432 void Read() override;
433
435 };
436
448
450 {
451 public:
453
454 void Read() override;
455
458 };
459
466
473
475 {
476 None = 0,
477 WarMode = 1
478 };
479
481 {
482 std::vector<TreasurePickItem> ItemPicks;
483 std::vector<TreasurePickCurrency> CurrencyPicks;
486 };
487
489 {
490 std::vector<TreasurePickItem> ItemPicks;
491 std::vector<TreasurePickCurrency> CurrencyPicks;
492 std::vector<TreasurePickerBonus> Bonuses;
495 bool IsChoice = false;
496 };
497
509
510 ByteBuffer& operator<<(ByteBuffer& data, PlayerGuidLookupData const& lookupData);
511 }
512}
513
514ByteBuffer& operator<<(ByteBuffer& data, QuestPOIData const& questPOIData);
515
516#endif // TRINITYCORE_QUERY_PACKETS_H
uint8_t uint8
Definition Define.h:156
int8_t int8
Definition Define.h:152
int32_t int32
Definition Define.h:150
uint64_t uint64
Definition Define.h:153
uint32_t uint32
Definition Define.h:154
@ SMSG_TREASURE_PICKER_RESPONSE
Definition Opcodes.h:2397
@ SMSG_QUERY_GAME_OBJECT_RESPONSE
Definition Opcodes.h:2137
@ SMSG_QUEST_COMPLETION_NPC_RESPONSE
Definition Opcodes.h:2154
@ SMSG_QUERY_PAGE_TEXT_RESPONSE
Definition Opcodes.h:2144
@ SMSG_QUERY_PET_NAME_RESPONSE
Definition Opcodes.h:2146
@ SMSG_CORPSE_TRANSPORT_QUERY
Definition Opcodes.h:1378
@ SMSG_QUERY_ITEM_TEXT_RESPONSE
Definition Opcodes.h:2141
@ SMSG_QUERY_NPC_TEXT_RESPONSE
Definition Opcodes.h:2143
@ SMSG_CORPSE_LOCATION
Definition Opcodes.h:1376
@ SMSG_REALM_QUERY_RESPONSE
Definition Opcodes.h:2197
@ SMSG_QUERY_TIME_RESPONSE
Definition Opcodes.h:2152
@ SMSG_QUERY_CREATURE_RESPONSE
Definition Opcodes.h:2136
@ SMSG_QUEST_POI_QUERY_RESPONSE
Definition Opcodes.h:2169
@ SMSG_QUERY_PLAYER_NAMES_RESPONSE
Definition Opcodes.h:2147
@ CMSG_QUERY_PAGE_TEXT
Definition Opcodes.h:770
@ CMSG_QUERY_REALM_NAME
Definition Opcodes.h:779
@ CMSG_QUERY_GAME_OBJECT
Definition Opcodes.h:763
@ CMSG_QUERY_QUEST_COMPLETION_NPCS
Definition Opcodes.h:776
@ CMSG_QUEST_POI_QUERY
Definition Opcodes.h:797
@ CMSG_QUERY_CREATURE
Definition Opcodes.h:762
@ CMSG_QUERY_TREASURE_PICKER
Definition Opcodes.h:783
@ CMSG_ITEM_TEXT_QUERY
Definition Opcodes.h:515
@ CMSG_QUERY_NPC_TEXT
Definition Opcodes.h:769
@ CMSG_QUERY_TIME
Definition Opcodes.h:782
@ CMSG_QUERY_PET_NAME
Definition Opcodes.h:772
@ CMSG_QUERY_CORPSE_LOCATION_FROM_CLIENT
Definition Opcodes.h:759
@ CMSG_QUERY_PLAYER_NAMES
Definition Opcodes.h:773
@ CMSG_QUERY_CORPSE_TRANSPORT
Definition Opcodes.h:760
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:25
ByteBuffer & operator<<(ByteBuffer &data, QuestPOIData const &questPOIData)
QuestRewardContextFlags
Definition QuestDef.h:421
@ RACE_NONE
Definition RaceMask.h:28
@ CLASS_NONE
@ GENDER_NONE
CreatureFamily
CreatureType
WorldPacket const * Write() override
TaggedPosition<::Position::XYZ > Position
TaggedPosition<::Position::XYZ > Position
WorldPacket const * Write() override
ItemTextQuery(WorldPacket &&packet)
WorldPacket const * Write() override
QueryCreature(WorldPacket &&packet)
QueryGameObject(WorldPacket &&packet)
WorldPacket const * Write() override
WorldPacket const * Write() override
std::array< float, MAX_NPC_TEXT_OPTIONS > Probabilities
std::array< uint32, MAX_NPC_TEXT_OPTIONS > BroadcastTextID
QueryNPCText(WorldPacket &&packet)
WorldPacket const * Write() override
QueryPageText(WorldPacket &&packet)
WorldPacket const * Write() override
QueryPetName(WorldPacket &&packet)
std::vector< NameCacheLookupResult > Players
QueryPlayerNames(WorldPacket &&packet)
QueryRealmName(WorldPacket &&packet)
WorldPacket const * Write() override
QueryTime(WorldPacket &&packet)
std::vector< QuestCompletionNPC > QuestCompletionNPCs
WorldPacket const * Write() override
std::vector< QuestPOIData const * > QuestPOIDataStats
std::array< int32, 175 > MissingQuestPOIs
QuestPOIQuery(WorldPacket &&packet)
WorldPackets::Auth::VirtualRealmNameInfo NameInfo
WorldPacket const * Write() override
WorldPacket const * Write() override
ByteBuffer & operator<<(ByteBuffer &data, PlayerGuidLookupData const &lookupData)
STL namespace.
std::vector< CreatureXDisplay > CreatureDisplay
std::array< uint32, 3 > Flags
std::array< std::string, 4 > Name
std::vector< int32 > QuestItems
std::vector< int32 > QuestCurrencies
std::array< std::string, 4 > NameAlt
std::array< uint32, 2 > ProxyCreatureID
std::array< uint32, MAX_GAMEOBJECT_DATA > Data
Optional< HouseLookupData > HouseData
Optional< PlayerGuidLookupData > Data
Optional< GuildGuidLookupData > GuildData
bool Initialize(ObjectGuid const &guid, Player const *player=nullptr)
Optional< QuestRewardContextFlags > ContextFlags
Optional< QuestRewardContextFlags > ContextFlags
TreasurePickerBonusContext Context
std::vector< TreasurePickCurrency > CurrencyPicks
std::vector< TreasurePickItem > ItemPicks
std::vector< TreasurePickerBonus > Bonuses
std::vector< TreasurePickItem > ItemPicks
std::vector< TreasurePickCurrency > CurrencyPicks