diff --git a/dChatServer/ChatPacketHandler.cpp b/dChatServer/ChatPacketHandler.cpp index de01f866..e72ff4ba 100644 --- a/dChatServer/ChatPacketHandler.cpp +++ b/dChatServer/ChatPacketHandler.cpp @@ -404,39 +404,37 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) { LOG("Got a message from (%s) [%d]: %s", senderName.c_str(), channel, message.c_str()); - if (channel != 8) return; + if (channel == 8) { - auto* team = playerContainer.GetTeam(playerID); + auto* team = playerContainer.GetTeam(playerID); + if (!team) return; - if (team == nullptr) return; + for (const auto memberId : team->memberIDs) { + auto* otherMember = playerContainer.GetPlayerData(memberId); + if (!otherMember) return; + const auto otherName = std::string(otherMember->playerName.c_str()); - for (const auto memberId : team->memberIDs) { - auto* otherMember = playerContainer.GetPlayerData(memberId); + CBITSTREAM; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); + bitStream.Write(otherMember->playerID); - if (otherMember == nullptr) return; + BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); + bitStream.Write(otherMember->playerID); + bitStream.Write(8); + bitStream.Write(69); + bitStream.Write(LUWString(senderName)); + bitStream.Write(sender->playerID); + bitStream.Write(0); + bitStream.Write(0); //not mythran nametag + bitStream.Write(LUWString(otherName)); + bitStream.Write(0); //not mythran for receiver + bitStream.Write(0); //teams? + bitStream.Write(LUWString(message, 512)); - const auto otherName = std::string(otherMember->playerName.c_str()); - - CBITSTREAM; - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); - bitStream.Write(otherMember->playerID); - - BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE); - bitStream.Write(otherMember->playerID); - bitStream.Write(8); - bitStream.Write(69); - bitStream.Write(LUWString(senderName)); - bitStream.Write(sender->playerID); - bitStream.Write(0); - bitStream.Write(0); //not mythran nametag - bitStream.Write(LUWString(otherName)); - bitStream.Write(0); //not mythran for receiver - bitStream.Write(0); //teams? - bitStream.Write(LUWString(message, 512)); - - SystemAddress sysAddr = otherMember->sysAddr; - SEND_PACKET; - } + SystemAddress sysAddr = otherMember->sysAddr; + SEND_PACKET; + } + } else LOG("Private chat channel is %i", channel); } void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) { @@ -714,14 +712,18 @@ void ChatPacketHandler::HandleTeamStatusRequest(Packet* packet) { } void ChatPacketHandler::HandleGuildLeave(Packet* packet){ - CINSTREAM; + CINSTREAM_SKIP_HEADER; LWOOBJID playerID = LWOOBJID_EMPTY; inStream.Read(playerID); - inStream.Read(playerID); - Game::logger->Log("ChatPacketHandler", "HandleGuildLeave %llu", playerID); + LOG("HandleGuildLeave %llu", playerID); + } void ChatPacketHandler::HandleGuildGetAll(Packet* packet){ + CINSTREAM_SKIP_HEADER; + LWOOBJID playerID = LWOOBJID_EMPTY; + inStream.Read(playerID); + LOG("HandleGuildGetAll %llu", playerID); } diff --git a/dChatServer/ChatServer.cpp b/dChatServer/ChatServer.cpp index 4ca350c5..bec22138 100644 --- a/dChatServer/ChatServer.cpp +++ b/dChatServer/ChatServer.cpp @@ -325,6 +325,7 @@ void HandlePacket(Packet* packet) { case eChatMessageType::GUILD_GET_ALL: LOG("GUILD_GET_ALL"); + ChatPacketHandler::HandleGuildGetAll(packet); break; default: diff --git a/dGame/dGameMessages/GameMessages.cpp b/dGame/dGameMessages/GameMessages.cpp index 5106e2d1..c1f1787a 100644 --- a/dGame/dGameMessages/GameMessages.cpp +++ b/dGame/dGameMessages/GameMessages.cpp @@ -4905,7 +4905,7 @@ void GameMessages::HandleParseChatMessage(RakNet::BitStream* inStream, Entity* e inStream->Read(character); wsString.push_back(character); } - + LOG("state: %i, str: %s", iClientState, GeneralUtils::UTF16ToWTF8(wsString).c_str()); if (wsString[0] == L'/') { SlashCommandHandler::HandleChatCommand(wsString, entity, sysAddr); } diff --git a/dNet/ClientPackets.cpp b/dNet/ClientPackets.cpp index 5ee4bb7b..9f0d9438 100644 --- a/dNet/ClientPackets.cpp +++ b/dNet/ClientPackets.cpp @@ -492,7 +492,7 @@ void ClientPackets::HandleGuildCreation(const SystemAddress& sysAddr, Packet* pa //Send the guild create response: SendGuildCreateResponse(sysAddr, eGuildCreationResponse::CREATED, guildId, name); - // GameMessages::SendDisplayGuildCreateBox(, true, sysAddr) + // TODO: enable guild ui here }