TrinityCore
Loading...
Searching...
No Matches
GuildPackets.cpp
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#include "GuildPackets.h"
19
24
27
29{
30 _worldPacket << GuildId;
31 _worldPacket << Info.GuildName;
32 for (std::string const& rankName : Info.Ranks)
33 _worldPacket << rankName;
34
35 _worldPacket << uint32(Info.EmblemStyle);
36 _worldPacket << uint32(Info.EmblemColor);
37 _worldPacket << uint32(Info.BorderStyle);
38 _worldPacket << uint32(Info.BorderColor);
39 _worldPacket << uint32(Info.BackgroundColor);
40 _worldPacket << uint32(Info.RankCount);
41
42 return &_worldPacket;
43}
44
46{
47 _worldPacket >> GuildName;
48}
49
51{
52 _worldPacket << GuildName;
53 _worldPacket << CreateDate;
54 _worldPacket << int32(NumMembers);
55 _worldPacket << int32(NumAccounts);
56
57 return &_worldPacket;
58}
59
61{
62 _worldPacket << uint32(MemberData.size());
63 _worldPacket << WelcomeText;
64 _worldPacket << InfoText;
65 _worldPacket << uint32(RankData.size());
66
67 for (GuildRankData const& rank : RankData)
68 _worldPacket << rank;
69
70 for (GuildRosterMemberData const& member : MemberData)
71 _worldPacket << member;
72
73 return &_worldPacket;
74}
75
77{
78 _worldPacket >> MotdText;
79}
80
82{
83 _worldPacket << int32(Command);
84 _worldPacket << Name;
85 _worldPacket << int32(Result);
86
87 return &_worldPacket;
88}
89
91{
92 _worldPacket >> Name;
93}
94
96{
97 _worldPacket << InviterName;
98 _worldPacket << GuildName;
99
100 return &_worldPacket;
101}
102
104{
105 data << rosterMemberData.Guid;
106 data << uint8(rosterMemberData.Status);
107 data << rosterMemberData.Name;
108 data << int32(rosterMemberData.RankID);
109 data << uint8(rosterMemberData.Level);
110 data << uint8(rosterMemberData.ClassID);
111 data << uint8(rosterMemberData.Gender);
112 data << int32(rosterMemberData.AreaID);
113 if (!rosterMemberData.Status)
114 data << float(rosterMemberData.LastSave);
115
116 data << rosterMemberData.Note;
117 data << rosterMemberData.OfficerNote;
118
119 return data;
120}
121
123{
124 _worldPacket << uint8(Type);
125 _worldPacket << uint8(Params.size());
126 for (std::string_view param : Params)
127 _worldPacket << param;
128
129 switch (Type)
130 {
131 case GE_JOINED:
132 case GE_LEFT:
133 case GE_SIGNED_ON:
134 case GE_SIGNED_OFF:
135 _worldPacket << Guid;
136 break;
137 default:
138 break;
139 }
140
141 return &_worldPacket;
142}
143
145{
146 _worldPacket.reserve(1 + Entry.size() * sizeof(GuildEventEntry));
147
148 _worldPacket << uint8(Entry.size());
149
150 for (GuildEventEntry const& entry : Entry)
151 {
152 _worldPacket << uint8(entry.TransactionType);
153 _worldPacket << entry.PlayerGUID;
154 if (entry.TransactionType != GUILD_EVENT_LOG_JOIN_GUILD && entry.TransactionType != GUILD_EVENT_LOG_LEAVE_GUILD)
155 _worldPacket << entry.OtherGUID;
156 if (entry.TransactionType == GUILD_EVENT_LOG_PROMOTE_PLAYER || entry.TransactionType == GUILD_EVENT_LOG_DEMOTE_PLAYER)
157 _worldPacket << uint8(entry.RankID);
158 _worldPacket << uint32(entry.TransactionDate);
159 }
160
161 return &_worldPacket;
162}
163
165{
166 _worldPacket << uint32(RankID);
167 _worldPacket << int32(Flags);
168 _worldPacket << int32(WithdrawGoldLimit);
169 _worldPacket << int8(NumTabs);
170
171 for (GuildRankTabPermissions const& tab : Tab)
172 {
173 _worldPacket << int32(tab.Flags);
174 _worldPacket << int32(tab.WithdrawItemLimit);
175 }
176
177 return &_worldPacket;
178}
179
181{
182 _worldPacket >> RankID;
183 _worldPacket >> Flags;
184 _worldPacket >> RankName;
185 _worldPacket >> WithdrawGoldLimit;
186
187 for (uint8 i = 0; i < GUILD_BANK_MAX_TABS; i++)
188 {
189 _worldPacket >> TabFlags[i];
190 _worldPacket >> TabWithdrawItemLimit[i];
191 }
192}
193
195{
196 data << uint32(rankData.Flags);
197 data << uint32(rankData.WithdrawGoldLimit);
198
199 for (uint8 i = 0; i < GUILD_BANK_MAX_TABS; i++)
200 {
201 data << uint32(rankData.TabFlags[i]);
202 data << uint32(rankData.TabWithdrawItemLimit[i]);
203 }
204
205 return data;
206}
207
209{
210 _worldPacket >> Name;
211}
212
214{
215 _worldPacket >> InfoText;
216}
217
219{
220 _worldPacket >> NoteeName;
221 _worldPacket >> Note;
222}
223
225{
226 _worldPacket >> Demotee;
227}
228
230{
231 _worldPacket >> Promotee;
232}
233
235{
236 _worldPacket >> Removee;
237}
238
240{
241 _worldPacket >> Banker;
242 _worldPacket >> FullUpdate;
243}
244
246{
247 _worldPacket >> Banker;
248 _worldPacket >> BankTab;
249}
250
252{
253 _worldPacket >> Banker;
254 _worldPacket >> BankTab;
255 _worldPacket >> Name;
256 _worldPacket >> Icon;
257}
258
260{
261 _worldPacket >> Banker;
262 _worldPacket >> Money;
263}
264
266{
267 _worldPacket >> Banker;
268 _worldPacket >> Tab;
269 _worldPacket >> FullUpdate;
270}
271
273{
274 _worldPacket << RemainingWithdrawMoney;
275
276 return &_worldPacket;
277}
278
280{
281 _worldPacket >> Banker;
282 _worldPacket >> Money;
283}
284
286{
287 _worldPacket << uint64(Money);
288 _worldPacket << uint8(Tab);
289 _withdrawalsRemainingPos = _worldPacket.wpos();
290 _worldPacket << int32(WithdrawalsRemaining);
291 _worldPacket << uint8(FullUpdate);
292
293 if (!Tab && FullUpdate)
294 {
295 _worldPacket << uint8(TabInfo.size());
296 for (GuildBankTabInfo const& tab : TabInfo)
297 {
298 _worldPacket << tab.Name;
299 _worldPacket << tab.Icon;
300 }
301 }
302
303 _worldPacket << uint8(ItemInfo.size());
304 for (GuildBankItemInfo const& item : ItemInfo)
305 {
306 _worldPacket << uint8(item.Slot);
307 _worldPacket << uint32(item.ItemID);
308 if (item.ItemID)
309 {
310 _worldPacket << int32(item.Flags);
311 _worldPacket << int32(item.RandomPropertiesID);
312 if (item.RandomPropertiesID)
313 _worldPacket << int32(item.RandomPropertiesSeed);
314
315 _worldPacket << int32(item.Count);
316 _worldPacket << int32(item.EnchantmentID);
317 _worldPacket << uint8(item.Charges);
318 _worldPacket << uint8(item.SocketEnchant.size());
319
320 for (GuildBankSocketEnchant const& socketEnchant : item.SocketEnchant)
321 {
322 _worldPacket << uint8(socketEnchant.SocketIndex);
323 _worldPacket << int32(socketEnchant.SocketEnchantID);
324 }
325 }
326 }
327
328 return &_worldPacket;
329}
330
332{
333 WithdrawalsRemaining = withdrawalsRemaining;
334 _worldPacket.put<int32>(_withdrawalsRemainingPos, withdrawalsRemaining);
335}
336
338{
339 _worldPacket >> Banker;
340 _worldPacket >> BankOnly;
341
342 if (BankOnly)
343 {
344 // dest
345 _worldPacket >> BankTab;
346 _worldPacket >> BankSlot;
347 _worldPacket >> ItemID;
348
349 // src
350 _worldPacket >> BankTab1;
351 _worldPacket >> BankSlot1;
352 _worldPacket >> ItemID1;
353
354 _worldPacket >> AutoStore;
355 _worldPacket >> BankItemCount;
356 }
357 else
358 {
359 _worldPacket >> BankTab;
360 _worldPacket >> BankSlot;
361 _worldPacket >> ItemID;
362
363 _worldPacket >> AutoStore;
364 if (AutoStore)
365 {
366 _worldPacket >> BankItemCount;
367 _worldPacket >> ToSlot;
368 _worldPacket >> StackCount;
369 }
370 else
371 {
372 _worldPacket >> ContainerSlot;
373 _worldPacket >> ContainerItemSlot;
374 _worldPacket >> ToSlot;
375 _worldPacket >> StackCount;
376 }
377 }
378}
379
381{
382 _worldPacket >> Tab;
383}
384
386{
387 _worldPacket << uint8(Tab);
388 _worldPacket << uint8(Entry.size());
389
390 for (GuildBankLogEntry const& logEntry : Entry)
391 {
392 _worldPacket << int8(logEntry.EntryType);
393 _worldPacket << logEntry.PlayerGUID;
394
395 switch (logEntry.EntryType)
396 {
399 _worldPacket << uint32(logEntry.ItemID);
400 _worldPacket << uint32(logEntry.Count);
401 break;
404 _worldPacket << uint32(logEntry.ItemID);
405 _worldPacket << uint32(logEntry.Count);
406 _worldPacket << uint8(logEntry.OtherTab);
407 break;
408 default:
409 _worldPacket << uint32(logEntry.Money);
410 break;
411 }
412
413 _worldPacket << uint32(logEntry.TimeOffset);
414 }
415
416 return &_worldPacket;
417}
418
420{
421 _worldPacket >> Tab;
422}
423
425{
426 _worldPacket << uint8(Tab);
427 _worldPacket << Text;
428
429 return &_worldPacket;
430}
431
433{
434 _worldPacket >> Tab;
435 _worldPacket >> TabText;
436}
437
439{
440 _worldPacket >> NewMasterName;
441}
442
444{
445 _worldPacket >> Vendor;
446 _worldPacket >> EStyle;
447 _worldPacket >> EColor;
448 _worldPacket >> BStyle;
449 _worldPacket >> BColor;
450 _worldPacket >> Bg;
451}
452
454{
455 _worldPacket << int32(Error);
456
457 return &_worldPacket;
458}
uint8_t uint8
Definition Define.h:135
int8_t int8
Definition Define.h:131
int32_t int32
Definition Define.h:129
uint64_t uint64
Definition Define.h:132
uint32_t uint32
Definition Define.h:133
@ GE_LEFT
Definition Guild.h:159
@ GE_JOINED
Definition Guild.h:158
@ GE_SIGNED_OFF
Definition Guild.h:168
@ GE_SIGNED_ON
Definition Guild.h:167
@ GUILD_BANK_MAX_TABS
Definition Guild.h:50
@ GUILD_BANK_LOG_MOVE_ITEM
Definition Guild.h:191
@ GUILD_BANK_LOG_WITHDRAW_ITEM
Definition Guild.h:190
@ GUILD_BANK_LOG_DEPOSIT_ITEM
Definition Guild.h:189
@ GUILD_BANK_LOG_MOVE_ITEM2
Definition Guild.h:195
@ GUILD_EVENT_LOG_LEAVE_GUILD
Definition Guild.h:207
@ GUILD_EVENT_LOG_PROMOTE_PLAYER
Definition Guild.h:204
@ GUILD_EVENT_LOG_DEMOTE_PLAYER
Definition Guild.h:205
@ GUILD_EVENT_LOG_JOIN_GUILD
Definition Guild.h:203
ByteBuffer & operator<<(ByteBuffer &buf, ObjectGuid const &guid)
void reserve(size_t ressize)
Definition ByteBuffer.h:419
WorldPacket const * Write() override
void SetWithdrawalsRemaining(int32 withdrawalsRemaining)
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket const * Write() override
WorldPacket _worldPacket
Definition Packet.h:42
@ SMSG_GUILD_QUERY_RESPONSE
Definition Opcodes.h:114
uint32 const Entry[5]
uint32 TabWithdrawItemLimit[GUILD_BANK_MAX_TABS]
uint32 TabFlags[GUILD_BANK_MAX_TABS]