1919#include " model.h"
2020#include " discord.h"
2121#include " log.h"
22+ #include < dcserver/status.hpp>
2223#include < algorithm>
2324#include < cctype>
2425
@@ -126,7 +127,7 @@ void Player::ackRUdp(uint32_t seq)
126127 ackedRelSeq = seq;
127128 std::error_code ec;
128129 timer.cancel (ec);
129- ping = ping * 0 .7f + (Clock::now () - lastRUdpSend) / 1 .0ms * 0 .3f ;
130+ ping = ping * 0 .5f + (Clock::now () - lastRUdpSend) / 1 .0ms * 0 .5f ;
130131 if (!relQueue.empty ()) {
131132 sendRel (relQueue.front ().second , relQueue.front ().first );
132133 relQueue.pop_front ();
@@ -252,6 +253,8 @@ void LobbyServer::addPlayer(Player *player)
252253 player->getName ().c_str (), player->getId (),
253254 player->getEndpoint ().address ().to_string ().c_str (), player->getEndpoint ().port ());
254255 players[player->getEndpoint ()] = player;
256+ status::join (getDCNetGameId (game), player->getEndpoint ().address ().to_string (),
257+ player->getEndpoint ().port (), player->getName ());
255258}
256259
257260void LobbyServer::removePlayer (Player *player)
@@ -260,14 +263,18 @@ void LobbyServer::removePlayer(Player *player)
260263 player->getLobby ()->removePlayer (player);
261264 players.erase (player->getEndpoint ());
262265 INFO_LOG (game, " Player %s [%x] left lobby server" , player->getName ().c_str (), player->getId ());
266+ status::leave (getDCNetGameId (game), player->getEndpoint ().address ().to_string (),
267+ player->getEndpoint ().port (), player->getName ());
263268 delete player;
264269}
265270
266271void LobbyServer::send (Packet& packet, const asio::ip::udp::endpoint& endpoint)
267272{
268273 size_t pktsize = packet.finalize ();
269- std::error_code ec2;
270- socket.send_to (asio::buffer (packet.data , pktsize), endpoint, 0 , ec2);
274+ std::error_code ec;
275+ socket.send_to (asio::buffer (packet.data , pktsize), endpoint, 0 , ec);
276+ if (ec)
277+ WARN_LOG (game, " send to %s:%d failed: %s" , endpoint.address ().to_string ().c_str (), endpoint.port (), ec.message ().c_str ());
271278}
272279
273280static inline void strtolower (std::string& str) {
@@ -937,14 +944,6 @@ Room *LobbyServer::addRoom(const std::string& name, uint32_t attributes, Player
937944 return room;
938945}
939946
940- void LobbyServer::getStatus (int & playerCount, int & gameCount)
941- {
942- playerCount = players.size ();
943- gameCount = 0 ;
944- for (const Lobby& lobby : lobbies)
945- gameCount += lobby.getRooms ().size ();
946- }
947-
948947bool Room::DumpNetData = false ;
949948
950949Room::Room (Lobby& lobby, uint32_t id, const std::string& name, uint32_t attributes, Player *owner, asio::io_context& io_context)
@@ -1139,9 +1138,13 @@ void Lobby::addRoom(Room *room)
11391138 if (pl != owner)
11401139 lobbyUsers.push_back (pl->getName ());
11411140 discordGameCreated (server.game , owner->getName (), room->getName (), lobbyUsers);
1141+ status::createGame (getDCNetGameId (server.game ));
1142+
11421143}
11431144
1144- void Lobby::removeRoom (Room *room) {
1145+ void Lobby::removeRoom (Room *room)
1146+ {
1147+ status::deleteGame (getDCNetGameId (server.game ));
11451148 rooms.erase (room->getId ());
11461149 delete room;
11471150}
0 commit comments