TrinityCore
Loading...
Searching...
No Matches
ChatPackets.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_CHAT_PACKETS_H
19#define TRINITYCORE_CHAT_PACKETS_H
20
21#include "Packet.h"
22#include "Common.h"
23#include "ObjectGuid.h"
24#include "Optional.h"
25#include "PacketUtilities.h"
26#include "SharedDefines.h"
27
28class WorldObject;
30
31namespace WorldPackets
32{
33 namespace Chat
34 {
35 // CMSG_CHAT_MESSAGE_GUILD
36 // CMSG_CHAT_MESSAGE_OFFICER
37 // CMSG_CHAT_MESSAGE_YELL
38 // CMSG_CHAT_MESSAGE_SAY
39 // CMSG_CHAT_MESSAGE_PARTY
40 // CMSG_CHAT_MESSAGE_RAID
41 // CMSG_CHAT_MESSAGE_RAID_WARNING
42 // CMSG_CHAT_MESSAGE_INSTANCE_CHAT
43 class ChatMessage final : public ClientPacket
44 {
45 public:
46 explicit ChatMessage(WorldPacket&& packet) : ClientPacket(std::move(packet)) { }
47
48 void Read() override;
49
50 std::string Text;
52 bool IsSecure = true;
53 };
54
55 // CMSG_CHAT_MESSAGE_WHISPER
56 // CMSG_MESSAGE_WHISPER
57 class ChatMessageWhisper final : public ClientPacket
58 {
59 public:
60 explicit ChatMessageWhisper(WorldPacket&& packet) : ClientPacket(std::move(packet)) { }
61
62 void Read() override;
63
67 std::string Target;
68 std::string Text;
69 };
70
71 // CMSG_CHAT_MESSAGE_CHANNEL
72 class ChatMessageChannel final : public ClientPacket
73 {
74 public:
76
77 void Read() override;
78
81 std::string Text;
82 std::string Target;
84 };
85
87 {
88 std::string Prefix;
89 std::string Text;
91 bool IsLogged = false;
92 };
93
94 // CMSG_CHAT_ADDON_MESSAGE
95 class ChatAddonMessage final : public ClientPacket
96 {
97 public:
98 explicit ChatAddonMessage(WorldPacket&& packet) : ClientPacket(CMSG_CHAT_ADDON_MESSAGE, std::move(packet)) { }
99
100 void Read() override;
101
103 };
104
105 // CMSG_CHAT_ADDON_MESSAGE_CHANNEL
120
121 class ChatMessageDND final : public ClientPacket
122 {
123 public:
124 explicit ChatMessageDND(WorldPacket&& packet) : ClientPacket(CMSG_CHAT_MESSAGE_DND, std::move(packet)) { }
125
126 void Read() override;
127
128 std::string Text;
129 };
130
131 class ChatMessageAFK final : public ClientPacket
132 {
133 public:
134 explicit ChatMessageAFK(WorldPacket&& packet) : ClientPacket(CMSG_CHAT_MESSAGE_AFK, std::move(packet)) { }
135
136 void Read() override;
137
138 std::string Text;
139 };
140
141 class ChatMessageEmote final : public ClientPacket
142 {
143 public:
144 explicit ChatMessageEmote(WorldPacket&& packet) : ClientPacket(CMSG_CHAT_MESSAGE_EMOTE, std::move(packet)) { }
145
146 void Read() override;
147
148 std::string Text;
149 };
150
151 // SMSG_CHAT
152 class TC_GAME_API Chat final : public ServerPacket
153 {
154 public:
155 explicit Chat() : ServerPacket(SMSG_CHAT, 100) { }
156 Chat(Chat const& chat);
157
158 void Initialize(ChatMsg chatType, Language language, WorldObject const* sender, WorldObject const* receiver, std::string_view message, uint32 achievementId = 0,
159 std::string_view channelName = "", LocaleConstant locale = DEFAULT_LOCALE, std::string_view addonPrefix = "");
160 void SetSender(WorldObject const* sender, LocaleConstant locale);
161 void SetReceiver(WorldObject const* receiver, LocaleConstant locale);
162
163 WorldPacket const* Write() override;
164
165 uint8 SlashCmd = 0;
171 uint32 SenderVirtualAddress = 0;
172 uint32 TargetVirtualAddress = 0;
173 std::string SenderName;
174 std::string TargetName;
175 std::string Prefix;
176 std::string _Channel;
177 std::string ChatText;
178 uint32 AchievementID = 0;
179 uint16 _ChatFlags = 0;
180 float DisplayTime = 0.0f;
181 int32 SpellID = 0;
183 bool HideChatLog = false;
184 bool FakeSenderName = false;
187 };
188
189 class Emote final : public ServerPacket
190 {
191 public:
192 explicit Emote() : ServerPacket(SMSG_EMOTE, 18 + 4) { }
193
194 WorldPacket const* Write() override;
195
198 std::vector<int32> SpellVisualKitIDs;
200 };
201
202 class CTextEmote final : public ClientPacket
203 {
204 public:
205 explicit CTextEmote(WorldPacket&& packet) : ClientPacket(CMSG_SEND_TEXT_EMOTE, std::move(packet)) { }
206
207 void Read() override;
208
214 };
215
216 class STextEmote final : public ServerPacket
217 {
218 public:
219 explicit STextEmote() : ServerPacket(SMSG_TEXT_EMOTE, 3 * 18 + 2 * 4) { }
220
221 WorldPacket const* Write() override;
222
228 };
229
230 class ClearBossEmotes final : public ServerPacket
231 {
232 public:
234
235 WorldPacket const* Write() override { return &_worldPacket; }
236 };
237
239 {
240 public:
241 explicit PrintNotification(std::string const& notifyText) : ServerPacket(SMSG_PRINT_NOTIFICATION, 2 + notifyText.size()), NotifyText(notifyText) { }
242
243 WorldPacket const* Write() override;
244
245 std::string NotifyText;
246 };
247
248 class EmoteClient final : public ClientPacket
249 {
250 public:
251 explicit EmoteClient(WorldPacket&& packet) : ClientPacket(CMSG_EMOTE, std::move(packet)) { }
252
253 void Read() override { }
254 };
255
256 class ChatPlayerNotfound final : public ServerPacket
257 {
258 public:
259 explicit ChatPlayerNotfound(std::string const& name) : ServerPacket(SMSG_CHAT_PLAYER_NOTFOUND, 2 + name.size()), Name(name) { }
260
261 WorldPacket const* Write() override;
262
263 std::string Name;
264 };
265
266 class ChatServerMessage final : public ServerPacket
267 {
268 public:
270
271 WorldPacket const* Write() override;
272
274 std::string_view StringParam;
275 };
276
278 {
279 public:
280 enum
281 {
282 MAX_PREFIXES = 64
283 };
284
286
287 void Read() override;
288
290 };
291
293 {
294 public:
296
297 void Read() override { }
298 };
299
300 class DefenseMessage final : public ServerPacket
301 {
302 public:
304
305 WorldPacket const* Write() override;
306
308 std::string MessageText;
309 };
310
311 class ChatReportIgnored final : public ClientPacket
312 {
313 public:
315
316 void Read() override;
317
320 };
321
323 {
324 public:
325 explicit ChatPlayerAmbiguous(std::string const& name) : ServerPacket(SMSG_CHAT_PLAYER_AMBIGUOUS, 2 + name.length()), Name(name) { }
326
327 WorldPacket const* Write() override;
328
329 std::string Name;
330 };
331
332 class ChatRestricted final : public ServerPacket
333 {
334 public:
336
337 WorldPacket const* Write() override;
338
340 };
341
343 {
344 public:
346
347 void Read() override;
348
350 };
351
362
363 class UpdateAADCStatus final : public ClientPacket
364 {
365 public:
366 explicit UpdateAADCStatus(WorldPacket&& packet) : ClientPacket(CMSG_UPDATE_AADC_STATUS, std::move(packet)) { }
367
368 void Read() override;
369
370 bool ChatDisabled = false;
371 };
372
374 {
375 public:
377
378 WorldPacket const* Write() override;
379
380 bool Success = false;
381 bool ChatDisabled = false;
382 };
383 }
384}
385
386#endif // TRINITYCORE_CHAT_PACKETS_H
ChatWhisperTargetStatus
LocaleConstant
Definition Common.h:51
#define DEFAULT_LOCALE
Definition Common.h:69
#define TC_GAME_API
Definition Define.h:129
uint8_t uint8
Definition Define.h:156
int32_t int32
Definition Define.h:150
uint16_t uint16
Definition Define.h:155
uint32_t uint32
Definition Define.h:154
@ SMSG_DEFENSE_MESSAGE
Definition Opcodes.h:1408
@ SMSG_CLEAR_BOSS_EMOTES
Definition Opcodes.h:1334
@ SMSG_CHAT_SERVER_MESSAGE
Definition Opcodes.h:1326
@ SMSG_UPDATE_AADC_STATUS_RESPONSE
Definition Opcodes.h:2411
@ SMSG_CHAT
Definition Opcodes.h:1313
@ SMSG_EMOTE
Definition Opcodes.h:1435
@ SMSG_TEXT_EMOTE
Definition Opcodes.h:2372
@ SMSG_CHAT_RESTRICTED
Definition Opcodes.h:1325
@ SMSG_CHAT_PLAYER_AMBIGUOUS
Definition Opcodes.h:1321
@ SMSG_PRINT_NOTIFICATION
Definition Opcodes.h:2123
@ SMSG_CHAT_PLAYER_NOTFOUND
Definition Opcodes.h:1322
@ SMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_RESPONSE
Definition Opcodes.h:1315
@ CMSG_CHAT_ADDON_MESSAGE_TARGETED
Definition Opcodes.h:193
@ CMSG_CHAT_MESSAGE_EMOTE
Definition Opcodes.h:219
@ CMSG_CHAT_MESSAGE_CHANNEL
Definition Opcodes.h:217
@ CMSG_SEND_TEXT_EMOTE
Definition Opcodes.h:893
@ CMSG_CHAT_REPORT_IGNORED
Definition Opcodes.h:231
@ CMSG_EMOTE
Definition Opcodes.h:339
@ CMSG_CHAT_MESSAGE_AFK
Definition Opcodes.h:216
@ CMSG_CHAT_UNREGISTER_ALL_ADDON_PREFIXES
Definition Opcodes.h:234
@ CMSG_CHAT_MESSAGE_DND
Definition Opcodes.h:218
@ CMSG_CHAT_CAN_LOCAL_WHISPER_TARGET_REQUEST
Definition Opcodes.h:194
@ CMSG_CHAT_ADDON_MESSAGE
Definition Opcodes.h:192
@ CMSG_UPDATE_AADC_STATUS
Definition Opcodes.h:1014
@ CMSG_CHAT_REGISTER_ADDON_PREFIXES
Definition Opcodes.h:229
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition Optional.h:25
Language
@ LANG_UNIVERSAL
ChatMsg
@ CHAT_MSG_PARTY
Array< int32, 2 > SpellVisualKitIDs
CTextEmote(WorldPacket &&packet)
ChatAddonMessage(WorldPacket &&packet)
Definition ChatPackets.h:98
ChatMessageAFK(WorldPacket &&packet)
ChatMessageChannel(WorldPacket &&packet)
Definition ChatPackets.h:75
ChatMessageDND(WorldPacket &&packet)
ChatMessageEmote(WorldPacket &&packet)
ChatMessageWhisper(WorldPacket &&packet)
Definition ChatPackets.h:60
ChatMessage(WorldPacket &&packet)
Definition ChatPackets.h:46
WorldPacket const * Write() override
ChatPlayerAmbiguous(std::string const &name)
WorldPacket const * Write() override
ChatPlayerNotfound(std::string const &name)
Array< std::string, MAX_PREFIXES > Prefixes
ChatReportIgnored(WorldPacket &&packet)
WorldPacket const * Write() override
WorldPacket const * Write() override
Optional< ObjectGuid > ChannelGUID
std::string Prefix
Addon Prefix.
Optional< uint32 > EncounterEventID
Optional< uint32 > BroadcastTextID
std::string _Channel
Channel Name.
WorldPacket const * Write() override
WorldPacket const * Write() override
EmoteClient(WorldPacket &&packet)
WorldPacket const * Write() override
std::vector< int32 > SpellVisualKitIDs
PrintNotification(std::string const &notifyText)
WorldPacket const * Write() override
WorldPacket const * Write() override
UpdateAADCStatus(WorldPacket &&packet)
WorldPacket _worldPacket
Definition Packet.h:43
STL namespace.