mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-09-05 23:08:31 +00:00
wip: test chat client
This commit is contained in:
@@ -355,6 +355,18 @@ void ChatPacketHandler::HandleGMLevelUpdate(Packet* packet) {
|
||||
inStream.Read(player.gmLevel);
|
||||
}
|
||||
|
||||
void ChatPacketHandler::HandleGMAnnounce(Packet* packet) {
|
||||
CINSTREAM_SKIP_HEADER;
|
||||
uint32_t titleLen, messageLen;
|
||||
inStream.Read(titleLen);
|
||||
std::string title(titleLen, 0);
|
||||
inStream.Read(title.data(), titleLen);
|
||||
inStream.Read(messageLen);
|
||||
std::string message(messageLen, 0);
|
||||
inStream.Read(message.data(), messageLen);
|
||||
LOG("GM Announcement from %s: '%s' '%s'", packet->systemAddress.ToString(), title.c_str(), message.c_str());
|
||||
}
|
||||
|
||||
|
||||
void ChatPacketHandler::HandleWho(Packet* packet) {
|
||||
CINSTREAM_SKIP_HEADER;
|
||||
|
@@ -50,6 +50,7 @@ namespace ChatPacketHandler {
|
||||
void HandleFriendResponse(Packet* packet);
|
||||
void HandleRemoveFriend(Packet* packet);
|
||||
void HandleGMLevelUpdate(Packet* packet);
|
||||
void HandleGMAnnounce(Packet* packet);
|
||||
void HandleWho(Packet* packet);
|
||||
void HandleShowAll(Packet* packet);
|
||||
|
||||
|
@@ -122,10 +122,13 @@ int main(int argc, char** argv) {
|
||||
uint32_t framesSinceMasterDisconnect = 0;
|
||||
uint32_t framesSinceLastSQLPing = 0;
|
||||
|
||||
// Independant chat server
|
||||
bool isStandalone = argc > 1 && strcmp(argv[1], "--standalone") == 0;
|
||||
|
||||
Game::logger->Flush(); // once immediately before main loop
|
||||
while (!Game::ShouldShutdown()) {
|
||||
//Check if we're still connected to master:
|
||||
if (!Game::server->GetIsConnectedToMaster()) {
|
||||
if (!isStandalone && !Game::server->GetIsConnectedToMaster()) {
|
||||
framesSinceMasterDisconnect++;
|
||||
|
||||
if (framesSinceMasterDisconnect >= chatFramerate)
|
||||
@@ -281,6 +284,7 @@ void HandlePacket(Packet* packet) {
|
||||
break;
|
||||
case eChatMessageType::GM_ANNOUNCE:{
|
||||
// we just forward this packet to every connected server
|
||||
ChatPacketHandler::HandleGMAnnounce(packet);
|
||||
inStream.ResetReadPointer();
|
||||
Game::server->Send(inStream, packet->systemAddress, true); // send to everyone except origin
|
||||
}
|
||||
|
Reference in New Issue
Block a user