Skip to content

Commit

Permalink
Fix up kickAllPlayers
Browse files Browse the repository at this point in the history
  • Loading branch information
SmallJoker committed Feb 1, 2024
1 parent 5de31f9 commit 75ab8e1
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 11 deletions.
13 changes: 11 additions & 2 deletions src/server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ Server::~Server()
kick_msg = g_settings->get("kick_msg_shutdown");
}
m_env->saveLoadedPlayers(true);
m_env->kickAllPlayers(SERVER_ACCESSDENIED_SHUTDOWN,
kickAllPlayers(SERVER_ACCESSDENIED_SHUTDOWN,
kick_msg, reconnect);
}

Expand Down Expand Up @@ -590,7 +590,7 @@ void Server::step()
std::string async_err = m_async_fatal_error.get();
if (!async_err.empty()) {
if (!m_simple_singleplayer_mode) {
m_env->kickAllPlayers(SERVER_ACCESSDENIED_CRASH,
kickAllPlayers(SERVER_ACCESSDENIED_CRASH,
g_settings->get("kick_msg_crash"),
g_settings->getBool("ask_reconnect_on_crash"));
}
Expand Down Expand Up @@ -2870,6 +2870,15 @@ void Server::DenyAccess(session_t peer_id, AccessDeniedCode reason,
DisconnectPeer(peer_id);
}

void Server::kickAllPlayers(AccessDeniedCode reason,
const std::string &str_reason, bool reconnect)
{
std::vector<session_t> clients = m_clients.getClientIDs();
for (const session_t client_id : clients) {
DenyAccess(client_id, reason, str_reason, reconnect);
}
}

void Server::DisconnectPeer(session_t peer_id)
{
m_modchannel_mgr->leaveAllChannels(peer_id);
Expand Down
2 changes: 2 additions & 0 deletions src/server.h
Original file line number Diff line number Diff line change
Expand Up @@ -352,6 +352,8 @@ class Server : public con::PeerHandler, public MapEventReceiver,
void DenySudoAccess(session_t peer_id);
void DenyAccess(session_t peer_id, AccessDeniedCode reason,
const std::string &custom_reason = "", bool reconnect = false);
void kickAllPlayers(AccessDeniedCode reason,
const std::string &str_reason, bool reconnect);
void acceptAuth(session_t peer_id, bool forSudoMode);
void DisconnectPeer(session_t peer_id);
bool getClientConInfo(session_t peer_id, con::rtt_stat_type type, float *retval);
Expand Down
7 changes: 0 additions & 7 deletions src/serverenvironment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -625,13 +625,6 @@ bool ServerEnvironment::removePlayerFromDatabase(const std::string &name)
return m_player_database->removePlayer(name);
}

void ServerEnvironment::kickAllPlayers(AccessDeniedCode reason,
const std::string &str_reason, bool reconnect)
{
for (RemotePlayer *player : m_players)
m_server->DenyAccess(player->getPeerId(), reason, str_reason, reconnect);
}

void ServerEnvironment::saveLoadedPlayers(bool force)
{
for (RemotePlayer *player : m_players) {
Expand Down
2 changes: 0 additions & 2 deletions src/serverenvironment.h
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,6 @@ class ServerEnvironment final : public Environment
float getSendRecommendedInterval()
{ return m_recommended_send_interval; }

void kickAllPlayers(AccessDeniedCode reason,
const std::string &str_reason, bool reconnect);
// Save players
void saveLoadedPlayers(bool force = false);
void savePlayer(RemotePlayer *player);
Expand Down

0 comments on commit 75ab8e1

Please sign in to comment.