33 uint8 unknown1, unknown2;
34 std::string channelName, password;
36 recvPacket >> channelId >> unknown1 >> unknown2 >> channelName >> password;
38 TC_LOG_DEBUG(
"chat.system",
"CMSG_JOIN_CHANNEL {} Channel: {}, unk1: {}, unk2: {}, channel: {}, password: {}",
39 GetPlayerInfo(), channelId, unknown1, unknown2, channelName, password);
48 if (!zone || !
GetPlayer()->CanJoinConstantChannelInZone(channel, zone))
52 if (channelName.empty() || isdigit((
unsigned char)channelName[0]))
73 if (
Channel* channel = cMgr->GetSystemChannel(channelId, zone))
84 if (
Channel* channel = cMgr->GetCustomChannel(channelName))
85 channel->JoinChannel(
GetPlayer(), password);
86 else if (
Channel* channel = cMgr->CreateCustomChannel(channelName))
88 channel->SetPassword(password);
89 channel->JoinChannel(
GetPlayer(), password);
98 std::string channelName;
99 recvPacket >> channelId >> channelName;
101 TC_LOG_DEBUG(
"chat.system",
"CMSG_LEAVE_CHANNEL {} Channel: {}, channelId: {}",
104 if (channelName.empty() && !channelId)
114 if (!zone || !
GetPlayer()->CanJoinConstantChannelInZone(channel, zone))
120 if (
Channel* channel = cMgr->GetChannel(channelId, channelName,
GetPlayer(),
true, zone))
121 channel->LeaveChannel(
GetPlayer(),
true);
124 cMgr->LeftChannel(channelId, zone);
130 std::string channelName;
131 recvPacket >> channelName;
143 std::string channelName, password;
144 recvPacket >> channelName >> password;
146 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_PASSWORD {} Channel: {}, Password: {}",
153 channel->Password(
GetPlayer(), password);
158 std::string channelName, targetName;
159 recvPacket >> channelName >> targetName;
161 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_SET_OWNER {} Channel: {}, Target: {}",
168 channel->SetOwner(
GetPlayer(), targetName);
173 std::string channelName;
174 recvPacket >> channelName;
176 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_OWNER {} Channel: {}",
180 channel->SendWhoOwner(
GetPlayer()->GetGUID());
185 std::string channelName, targetName;
186 recvPacket >> channelName >> targetName;
188 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_MODERATOR {} Channel: {}, Target: {}",
195 channel->SetModerator(
GetPlayer(), targetName);
200 std::string channelName, targetName;
201 recvPacket >> channelName >> targetName;
203 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_UNMODERATOR {} Channel: {}, Target: {}",
210 channel->UnsetModerator(
GetPlayer(), targetName);
215 std::string channelName, targetName;
216 recvPacket >> channelName >> targetName;
218 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_MUTE {} Channel: {}, Target: {}",
225 channel->SetMute(
GetPlayer(), targetName);
230 std::string channelName, targetName;
231 recvPacket >> channelName >> targetName;
233 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_UNMUTE {} Channel: {}, Target: {}",
240 channel->UnsetMute(
GetPlayer(), targetName);
245 std::string channelName, targetName;
246 recvPacket >> channelName >> targetName;
248 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_INVITE {} Channel: {}, Target: {}",
255 channel->Invite(
GetPlayer(), targetName);
260 std::string channelName, targetName;
261 recvPacket >> channelName >> targetName;
263 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_KICK {} Channel: {}, Target: {}",
275 std::string channelName, targetName;
276 recvPacket >> channelName >> targetName;
278 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_BAN {} Channel: {}, Target: {}",
290 std::string channelName, targetName;
291 recvPacket >> channelName >> targetName;
293 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_UNBAN {} Channel: {}, Target: {}",
305 std::string channelName;
306 recvPacket >> channelName;
308 TC_LOG_DEBUG(
"chat.system",
"CMSG_CHANNEL_ANNOUNCEMENTS {} Channel: {}",
323 std::string channelName;
324 recvPacket >> channelName;
326 TC_LOG_DEBUG(
"chat.system",
"CMSG_GET_CHANNEL_MEMBER_COUNT {} Channel: {}",
331 TC_LOG_DEBUG(
"chat.system",
"SMSG_CHANNEL_MEMBER_COUNT {} Channel: {} Count: {}",
337 data <<
uint8(channel->GetFlags());
338 data <<
uint32(channel->GetNumPlayers());
345 std::string channelName;
346 recvPacket >> channelName;
348 TC_LOG_DEBUG(
"chat.system",
"CMSG_SET_CHANNEL_WATCH {} Channel: {}",
static size_t const MAX_CHANNEL_PASS_STR
static size_t const MAX_CHANNEL_NAME_STR
@ CHAT_INVALID_NAME_NOTICE
DBCStorage< ChatChannelsEntry > sChatChannelsStore(ChatChannelsEntryfmt)
DBCStorage< AreaTableEntry > sAreaTableStore(AreaTableEntryfmt)
#define TC_LOG_DEBUG(filterType__,...)
#define TC_LOG_ERROR(filterType__,...)
bool normalizePlayerName(std::string &name)
static ChannelMgr * forTeam(uint32 team)
static Channel * GetChannelForPlayerByNamePart(std::string const &namePart, Player *playerSearcher)
void HandleGetChannelMemberCount(WorldPacket &recvPacket)
void HandleChannelInvite(WorldPacket &recvPacket)
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
bool DisallowHyperlinksAndMaybeKick(std::string const &str)
void HandleChannelList(WorldPacket &recvPacket)
void HandleChannelPassword(WorldPacket &recvPacket)
LocaleConstant GetSessionDbcLocale() const
std::string GetPlayerInfo() const
Player * GetPlayer() const
void HandleJoinChannel(WorldPacket &recvPacket)
void HandleSetChannelWatch(WorldPacket &recvPacket)
void HandleChannelUnban(WorldPacket &recvPacket)
void HandleChannelMute(WorldPacket &recvPacket)
void HandleChannelUnmute(WorldPacket &recvPacket)
void HandleChannelBan(WorldPacket &recvPacket)
void HandleChannelUnmoderator(WorldPacket &recvPacket)
void HandleChannelModerator(WorldPacket &recvPacket)
void HandleLeaveChannel(WorldPacket &recvPacket)
void HandleChannelSetOwner(WorldPacket &recvPacket)
void HandleChannelOwner(WorldPacket &recvPacket)
void HandleChannelAnnouncements(WorldPacket &recvPacket)
void HandleChannelKick(WorldPacket &recvPacket)
void HandleChannelDisplayListQuery(WorldPacket &recvPacket)
@ CMSG_CHANNEL_DISPLAY_LIST
@ SMSG_CHANNEL_MEMBER_COUNT