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