Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/game/StarUniverseServer.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2025-04-30 12:49:47 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2025-04-30 12:49:47 +1000
commitd3d4345e057d95d784e34be9b23e7fe07fb9a7c1 (patch)
treef59fa890e5be1d590e42a337448cecfc6b61850a /source/game/StarUniverseServer.cpp
parent86e229012f84744a1e878124d9a6e2991c0460bb (diff)
parent885502bf11057e7de961f178bc85ce93a9f40723 (diff)
Merge branch 'main' into pr/218
Diffstat (limited to 'source/game/StarUniverseServer.cpp')
-rw-r--r--source/game/StarUniverseServer.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/source/game/StarUniverseServer.cpp b/source/game/StarUniverseServer.cpp
index f32f650..977dc71 100644
--- a/source/game/StarUniverseServer.cpp
+++ b/source/game/StarUniverseServer.cpp
@@ -1064,16 +1064,19 @@ void UniverseServer::processChat() {
for (auto const& p : take(m_pendingChat)) {
if (auto clientContext = m_clients.get(p.first)) {
for (auto const& chat : p.second) {
+ auto& message = get<0>(chat);
+ auto sendMode = get<1>(chat);
+ auto& data = get<2>(chat);
if (clientContext->remoteAddress())
- Logger::info("Chat: <{}> {}", clientContext->playerName(), chat.first);
+ Logger::info("Chat: <{}> {}", clientContext->playerName(), message);
auto team = m_teamManager->getTeam(clientContext->playerUuid());
- if (chat.second == ChatSendMode::Broadcast)
- m_chatProcessor->broadcast(p.first, chat.first);
- else if (chat.second == ChatSendMode::Party && team.isValid())
- m_chatProcessor->message(p.first, MessageContext::Mode::Party, team.value().hex(), chat.first);
+ if (sendMode == ChatSendMode::Broadcast)
+ m_chatProcessor->broadcast(p.first, message, std::move(data));
+ else if (sendMode == ChatSendMode::Party && team.isValid())
+ m_chatProcessor->message(p.first, MessageContext::Mode::Party, team.value().hex(), message, std::move(data));
else
- m_chatProcessor->message(p.first, MessageContext::Mode::Local, printWorldId(clientContext->playerWorldId()), chat.first);
+ m_chatProcessor->message(p.first, MessageContext::Mode::Local, printWorldId(clientContext->playerWorldId()), message, std::move(data));
}
}
}
@@ -1527,7 +1530,7 @@ void UniverseServer::packetsReceived(UniverseConnectionServer*, ConnectionId cli
} else if (auto chatSend = as<ChatSendPacket>(packet)) {
RecursiveMutexLocker locker(m_mainLock);
- m_pendingChat[clientId].append({std::move(chatSend->text), chatSend->sendMode});
+ m_pendingChat[clientId].append(make_tuple(std::move(chatSend->text), chatSend->sendMode, std::move(chatSend->data)));
} else if (auto clientContextUpdatePacket = as<ClientContextUpdatePacket>(packet)) {
clientContext->readUpdate(std::move(clientContextUpdatePacket->updateData));