47 uint32 targetLen = _worldPacket.ReadBits(9);
48 uint32 textLen = _worldPacket.ReadBits(11);
49 Target = _worldPacket.ReadString(targetLen);
50 Text = _worldPacket.ReadString(textLen);
56 _worldPacket >> ChannelGUID;
57 uint32 targetLen = _worldPacket.ReadBits(9);
58 uint32 textLen = _worldPacket.ReadBits(11);
59 if (_worldPacket.ReadBit())
60 IsSecure = _worldPacket.ReadBit();
62 Target = _worldPacket.ReadString(targetLen);
63 Text = _worldPacket.ReadString(textLen);
80 _worldPacket >> Params;
85 uint32 targetLen = _worldPacket.ReadBits(9);
86 _worldPacket.ResetBitPos();
88 _worldPacket >> Params;
89 _worldPacket >> *ChannelGUID;
90 Target = _worldPacket.ReadString(targetLen);
95 uint32 len = _worldPacket.ReadBits(11);
96 Text = _worldPacket.ReadString(len);
101 uint32 len = _worldPacket.ReadBits(11);
102 Text = _worldPacket.ReadString(len);
107 uint32 len = _worldPacket.ReadBits(11);
108 Text = _worldPacket.ReadString(len);
112 SlashCmd(chat.SlashCmd), _Language(chat._Language), SenderGUID(chat.SenderGUID),
113 SenderGuildGUID(chat.SenderGuildGUID), SenderAccountGUID(chat.SenderAccountGUID), TargetGUID(chat.TargetGUID),
114 SenderVirtualAddress(chat.SenderVirtualAddress), TargetVirtualAddress(chat.TargetVirtualAddress), SenderName(chat.SenderName), TargetName(chat.TargetName),
115 Prefix(chat.Prefix), _Channel(chat._Channel), ChatText(chat.ChatText), AchievementID(chat.AchievementID), _ChatFlags(chat._ChatFlags),
116 DisplayTime(chat.DisplayTime), HideChatLog(chat.HideChatLog), FakeSenderName(chat.FakeSenderName)
121 uint32 achievementId , std::string_view channelName ,
LocaleConstant locale , std::string_view addonPrefix )
127 SenderAccountGUID.Clear();
128 SenderGuildGUID.Clear();
135 _Language = language;
138 SetSender(sender, locale);
141 SetReceiver(receiver, locale);
145 AchievementID = achievementId;
146 _Channel = std::move(channelName);
147 Prefix = std::move(addonPrefix);
153 SenderGUID = sender->
GetGUID();
156 SenderName = creatureSender->GetNameForLocaleIdx(locale);
160 SenderAccountGUID = playerSender->GetSession()->GetAccountGUID();
161 _ChatFlags = playerSender->GetChatFlags();
163 SenderGuildGUID = ObjectGuid::Create<HighGuid::Guild>(playerSender->GetGuildId());
169 TargetGUID = receiver->
GetGUID();
171 TargetName = creatureReceiver->GetNameForLocaleIdx(locale);
176 _worldPacket <<
uint8(SlashCmd);
177 _worldPacket <<
uint32(_Language);
178 _worldPacket << SenderGUID;
179 _worldPacket << SenderGuildGUID;
180 _worldPacket << SenderAccountGUID;
181 _worldPacket << TargetGUID;
182 _worldPacket <<
uint32(TargetVirtualAddress);
183 _worldPacket <<
uint32(SenderVirtualAddress);
184 _worldPacket <<
int32(AchievementID);
185 _worldPacket << float(DisplayTime);
186 _worldPacket <<
int32(SpellID);
187 _worldPacket.WriteBits(SenderName.length(), 11);
188 _worldPacket.WriteBits(TargetName.length(), 11);
189 _worldPacket.WriteBits(Prefix.length(), 5);
190 _worldPacket.WriteBits(_Channel.length(), 7);
191 _worldPacket.WriteBits(ChatText.length(), 12);
192 _worldPacket.WriteBits(_ChatFlags, 15);
193 _worldPacket.WriteBit(HideChatLog);
194 _worldPacket.WriteBit(FakeSenderName);
195 _worldPacket.WriteBit(Unused_801.has_value());
196 _worldPacket.WriteBit(ChannelGUID.has_value());
197 _worldPacket.FlushBits();
199 _worldPacket.WriteString(SenderName);
200 _worldPacket.WriteString(TargetName);
201 _worldPacket.WriteString(Prefix);
202 _worldPacket.WriteString(_Channel);
203 _worldPacket.WriteString(ChatText);
206 _worldPacket <<
uint32(*Unused_801);
209 _worldPacket << *ChannelGUID;
211 return &_worldPacket;
216 _worldPacket << Guid;
218 _worldPacket <<
uint32(SpellVisualKitIDs.size());
219 _worldPacket <<
int32(SequenceVariation);
220 if (!SpellVisualKitIDs.empty())
221 _worldPacket.append(SpellVisualKitIDs.data(), SpellVisualKitIDs.size());
223 return &_worldPacket;
228 _worldPacket >> Target;
230 _worldPacket >> SoundIndex;
231 SpellVisualKitIDs.resize(_worldPacket.read<
uint32>());
232 _worldPacket >> SequenceVariation;
233 for (
int32& spellVisualKitId : SpellVisualKitIDs)
234 _worldPacket >> spellVisualKitId;
239 _worldPacket << SourceGUID;
240 _worldPacket << SourceAccountGUID;
242 _worldPacket << SoundIndex;
243 _worldPacket << TargetGUID;
245 return &_worldPacket;
250 _worldPacket.
WriteBits(NotifyText.size(), 12);
251 _worldPacket.FlushBits();
253 _worldPacket.WriteString(NotifyText);
255 return &_worldPacket;
261 _worldPacket.FlushBits();
263 _worldPacket.WriteString(
Name);
265 return &_worldPacket;
270 _worldPacket <<
int32(MessageID);
272 _worldPacket.WriteBits(StringParam.length(), 11);
273 _worldPacket.FlushBits();
275 _worldPacket.WriteString(StringParam);
277 return &_worldPacket;
282 Prefixes.resize(_worldPacket.read<
uint32>());
283 for (std::string& prefix : Prefixes)
284 prefix.assign(_worldPacket.ReadString(_worldPacket.ReadBits(5)));
289 _worldPacket <<
int32(ZoneID);
290 _worldPacket.WriteBits(MessageText.length(), 12);
291 _worldPacket.FlushBits();
292 _worldPacket.WriteString(MessageText);
294 return &_worldPacket;
299 _worldPacket >> IgnoredGUID;
300 _worldPacket >> Reason;
306 _worldPacket.WriteString(
Name);
308 return &_worldPacket;
313 _worldPacket <<
int32(Reason);
315 return &_worldPacket;
320 _worldPacket >> WhisperTarget;
325 _worldPacket << WhisperTarget;
326 _worldPacket <<
int32(Status);
328 return &_worldPacket;
333 ChatDisabled = _worldPacket.ReadBit();
339 _worldPacket.WriteBit(ChatDisabled);
340 _worldPacket.FlushBits();
342 return &_worldPacket;
ByteBuffer & operator>>(ByteBuffer &data, WorldPackets::Chat::ChatAddonMessageParams ¶ms)
std::unordered_set< uint32 > params[2]
uint32 ReadBits(int32 bits)
void WriteBits(std::size_t value, int32 bits)
std::string ReadString(uint32 length, bool requireValidUtf8=true)
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
void Initialize(ChatMsg chatType, Language language, WorldObject const *sender, WorldObject const *receiver, std::string_view message, uint32 achievementId=0, std::string_view channelName="", LocaleConstant locale=DEFAULT_LOCALE, std::string_view addonPrefix="")
WorldPacket const * Write() override
void SetReceiver(WorldObject const *receiver, LocaleConstant locale)
void SetSender(WorldObject const *sender, LocaleConstant locale)
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
OpcodeClient GetOpcode() const
@ CMSG_CHAT_MESSAGE_INSTANCE_CHAT
@ CMSG_CHAT_MESSAGE_RAID_WARNING
@ CMSG_CHAT_MESSAGE_PARTY
uint32 GetVirtualRealmAddress()
constexpr std::size_t size()