more work

This commit is contained in:
Aaron Kimbre 2023-11-16 13:26:35 -06:00
parent 449202e39f
commit 124e10e923
4 changed files with 36 additions and 33 deletions

View File

@ -404,39 +404,37 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) {
LOG("Got a message from (%s) [%d]: %s", senderName.c_str(), channel, message.c_str()); 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) { CBITSTREAM;
auto* otherMember = playerContainer.GetPlayerData(memberId); 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<uint8_t>(8);
bitStream.Write<unsigned int>(69);
bitStream.Write(LUWString(senderName));
bitStream.Write(sender->playerID);
bitStream.Write<uint16_t>(0);
bitStream.Write<uint8_t>(0); //not mythran nametag
bitStream.Write(LUWString(otherName));
bitStream.Write<uint8_t>(0); //not mythran for receiver
bitStream.Write<uint8_t>(0); //teams?
bitStream.Write(LUWString(message, 512));
const auto otherName = std::string(otherMember->playerName.c_str()); SystemAddress sysAddr = otherMember->sysAddr;
SEND_PACKET;
CBITSTREAM; }
BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT_INTERNAL, eChatInternalMessageType::ROUTE_TO_PLAYER); } else LOG("Private chat channel is %i", channel);
bitStream.Write(otherMember->playerID);
BitStreamUtils::WriteHeader(bitStream, eConnectionType::CHAT, eChatMessageType::PRIVATE_CHAT_MESSAGE);
bitStream.Write(otherMember->playerID);
bitStream.Write<uint8_t>(8);
bitStream.Write<unsigned int>(69);
bitStream.Write(LUWString(senderName));
bitStream.Write(sender->playerID);
bitStream.Write<uint16_t>(0);
bitStream.Write<uint8_t>(0); //not mythran nametag
bitStream.Write(LUWString(otherName));
bitStream.Write<uint8_t>(0); //not mythran for receiver
bitStream.Write<uint8_t>(0); //teams?
bitStream.Write(LUWString(message, 512));
SystemAddress sysAddr = otherMember->sysAddr;
SEND_PACKET;
}
} }
void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) { void ChatPacketHandler::HandlePrivateChatMessage(Packet* packet) {
@ -714,14 +712,18 @@ void ChatPacketHandler::HandleTeamStatusRequest(Packet* packet) {
} }
void ChatPacketHandler::HandleGuildLeave(Packet* packet){ void ChatPacketHandler::HandleGuildLeave(Packet* packet){
CINSTREAM; CINSTREAM_SKIP_HEADER;
LWOOBJID playerID = LWOOBJID_EMPTY; LWOOBJID playerID = LWOOBJID_EMPTY;
inStream.Read(playerID); inStream.Read(playerID);
inStream.Read(playerID); LOG("HandleGuildLeave %llu", playerID);
Game::logger->Log("ChatPacketHandler", "HandleGuildLeave %llu", playerID);
} }
void ChatPacketHandler::HandleGuildGetAll(Packet* packet){ void ChatPacketHandler::HandleGuildGetAll(Packet* packet){
CINSTREAM_SKIP_HEADER;
LWOOBJID playerID = LWOOBJID_EMPTY;
inStream.Read(playerID);
LOG("HandleGuildGetAll %llu", playerID);
} }

View File

@ -325,6 +325,7 @@ void HandlePacket(Packet* packet) {
case eChatMessageType::GUILD_GET_ALL: case eChatMessageType::GUILD_GET_ALL:
LOG("GUILD_GET_ALL"); LOG("GUILD_GET_ALL");
ChatPacketHandler::HandleGuildGetAll(packet);
break; break;
default: default:

View File

@ -4905,7 +4905,7 @@ void GameMessages::HandleParseChatMessage(RakNet::BitStream* inStream, Entity* e
inStream->Read(character); inStream->Read(character);
wsString.push_back(character); wsString.push_back(character);
} }
LOG("state: %i, str: %s", iClientState, GeneralUtils::UTF16ToWTF8(wsString).c_str());
if (wsString[0] == L'/') { if (wsString[0] == L'/') {
SlashCommandHandler::HandleChatCommand(wsString, entity, sysAddr); SlashCommandHandler::HandleChatCommand(wsString, entity, sysAddr);
} }

View File

@ -492,7 +492,7 @@ void ClientPackets::HandleGuildCreation(const SystemAddress& sysAddr, Packet* pa
//Send the guild create response: //Send the guild create response:
SendGuildCreateResponse(sysAddr, eGuildCreationResponse::CREATED, guildId, name); SendGuildCreateResponse(sysAddr, eGuildCreationResponse::CREATED, guildId, name);
// GameMessages::SendDisplayGuildCreateBox(, true, sysAddr) // TODO: enable guild ui here
} }