Allow disable chat in server side
This commit is contained in:
parent
05fad217e3
commit
e0de1318d2
@ -97,6 +97,7 @@ ClientLobby::ClientLobby(const TransportAddress& a, std::shared_ptr<Server> s)
|
||||
m_spectator = false;
|
||||
m_server_live_joinable = false;
|
||||
m_server_send_live_load_world = false;
|
||||
m_server_enabled_chat = true;
|
||||
} // ClientLobby
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -607,6 +608,7 @@ void ClientLobby::connectionAccepted(Event* event)
|
||||
NetworkConfig::get()->setStateFrequency(state_frequency_in_server);
|
||||
if (auto_start_timer != std::numeric_limits<float>::max())
|
||||
NetworkingLobby::getInstance()->setStartingTimerTo(auto_start_timer);
|
||||
m_server_enabled_chat = data.getUInt8() == 1;
|
||||
} // connectionAccepted
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -103,6 +103,8 @@ private:
|
||||
|
||||
bool m_server_send_live_load_world;
|
||||
|
||||
bool m_server_enabled_chat;
|
||||
|
||||
uint64_t m_auto_back_to_lobby_time;
|
||||
|
||||
uint64_t m_start_live_game_time;
|
||||
@ -162,6 +164,7 @@ public:
|
||||
void changeSpectateTarget(PlayerAction action, int value,
|
||||
Input::InputType type) const;
|
||||
void addSpectateHelperMessage() const;
|
||||
bool serverEnabledChat() const { return m_server_enabled_chat; }
|
||||
};
|
||||
|
||||
#endif // CLIENT_LOBBY_HPP
|
||||
|
@ -317,7 +317,7 @@ bool ServerLobby::notifyEvent(Event* event)
|
||||
//-----------------------------------------------------------------------------
|
||||
void ServerLobby::handleChat(Event* event)
|
||||
{
|
||||
if (!checkDataSize(event, 1)) return;
|
||||
if (!checkDataSize(event, 1) || !ServerConfig::m_chat) return;
|
||||
|
||||
// Update so that the peer is not kicked
|
||||
event->getPeer()->updateLastActivity();
|
||||
@ -2295,7 +2295,8 @@ void ServerLobby::handleUnencryptedConnection(std::shared_ptr<STKPeer> peer,
|
||||
message_ack->addUInt16(0);
|
||||
|
||||
message_ack->addFloat(auto_start_timer)
|
||||
.addUInt32(ServerConfig::m_state_frequency);
|
||||
.addUInt32(ServerConfig::m_state_frequency)
|
||||
.addUInt8(ServerConfig::m_chat ? 1 : 0);
|
||||
|
||||
peer->setSpectator(false);
|
||||
if (game_started)
|
||||
|
@ -144,6 +144,10 @@ namespace ServerConfig
|
||||
"motd", "Message of today shown in lobby, you can enter encoded XML "
|
||||
"words here or a file.txt and let STK load it."));
|
||||
|
||||
SERVER_CFG_PREFIX BoolServerConfigParam m_chat
|
||||
SERVER_CFG_DEFAULT(BoolServerConfigParam(true, "chat",
|
||||
"If off this server will ignore chat message from all players."));
|
||||
|
||||
SERVER_CFG_PREFIX FloatServerConfigParam m_voting_timeout
|
||||
SERVER_CFG_DEFAULT(FloatServerConfigParam(30.0f, "voting-timeout",
|
||||
"Timeout in seconds for voting tracks in server."));
|
||||
|
@ -79,6 +79,12 @@ RacePausedDialog::RacePausedDialog(const float percentWidth,
|
||||
m_text_box->setActive(true);
|
||||
getWidget("send")->setVisible(true);
|
||||
m_text_box->addListener(this);
|
||||
auto cl = LobbyProtocol::get<ClientLobby>();
|
||||
if (cl && !cl->serverEnabledChat())
|
||||
{
|
||||
m_text_box->setActive(false);
|
||||
getWidget("send")->setActive(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -192,10 +192,10 @@ void NetworkingLobby::init()
|
||||
m_start_button->setVisible(false);
|
||||
m_config_button->setVisible(false);
|
||||
m_state = LS_CONNECTING;
|
||||
getWidget("chat")->setVisible(false);
|
||||
getWidget("chat")->setActive(false);
|
||||
getWidget("send")->setVisible(false);
|
||||
getWidget("send")->setActive(false);
|
||||
m_chat_box->setVisible(false);
|
||||
m_chat_box->setActive(false);
|
||||
m_send_button->setVisible(false);
|
||||
m_send_button->setActive(false);
|
||||
|
||||
// Connect to server now if we have saved players and not disconnected
|
||||
if (!LobbyProtocol::get<LobbyProtocol>() &&
|
||||
@ -213,19 +213,19 @@ void NetworkingLobby::init()
|
||||
{
|
||||
m_chat_box->addListener(this);
|
||||
m_chat_box->setText("");
|
||||
getWidget("chat")->setVisible(true);
|
||||
getWidget("chat")->setActive(true);
|
||||
getWidget("send")->setVisible(true);
|
||||
getWidget("send")->setActive(true);
|
||||
m_chat_box->setVisible(true);
|
||||
m_chat_box->setActive(true);
|
||||
m_send_button->setVisible(true);
|
||||
m_send_button->setActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_chat_box->setText(
|
||||
_("Chat is disabled, enable in options menu."));
|
||||
getWidget("chat")->setVisible(true);
|
||||
getWidget("chat")->setActive(false);
|
||||
getWidget("send")->setVisible(true);
|
||||
getWidget("send")->setActive(false);
|
||||
m_chat_box->setVisible(true);
|
||||
m_chat_box->setActive(false);
|
||||
m_send_button->setVisible(true);
|
||||
m_send_button->setActive(false);
|
||||
}
|
||||
if (auto cl = LobbyProtocol::get<ClientLobby>())
|
||||
{
|
||||
@ -298,6 +298,19 @@ void NetworkingLobby::onUpdate(float delta)
|
||||
m_header->setText(_("Lobby (ping: %dms)", ping), false);
|
||||
|
||||
auto cl = LobbyProtocol::get<ClientLobby>();
|
||||
if (cl && UserConfigParams::m_lobby_chat)
|
||||
{
|
||||
if (cl->serverEnabledChat() && !m_send_button->isActivated())
|
||||
{
|
||||
m_chat_box->setActive(true);
|
||||
m_send_button->setActive(true);
|
||||
}
|
||||
else if (!cl->serverEnabledChat() && m_send_button->isActivated())
|
||||
{
|
||||
m_chat_box->setActive(false);
|
||||
m_send_button->setActive(false);
|
||||
}
|
||||
}
|
||||
if (cl && cl->isWaitingForGame())
|
||||
{
|
||||
m_start_button->setVisible(false);
|
||||
@ -704,18 +717,18 @@ void NetworkingLobby::finishAddingPlayers()
|
||||
if (UserConfigParams::m_lobby_chat)
|
||||
{
|
||||
m_chat_box->addListener(this);
|
||||
getWidget("chat")->setVisible(true);
|
||||
getWidget("chat")->setActive(true);
|
||||
getWidget("send")->setVisible(true);
|
||||
getWidget("send")->setActive(true);
|
||||
m_chat_box->setVisible(true);
|
||||
m_chat_box->setActive(true);
|
||||
m_send_button->setVisible(true);
|
||||
m_send_button->setActive(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_chat_box->setText(_("Chat is disabled, enable in options menu."));
|
||||
getWidget("chat")->setVisible(true);
|
||||
getWidget("chat")->setActive(false);
|
||||
getWidget("send")->setVisible(true);
|
||||
getWidget("send")->setActive(false);
|
||||
m_chat_box->setVisible(true);
|
||||
m_chat_box->setActive(false);
|
||||
m_send_button->setVisible(true);
|
||||
m_send_button->setActive(false);
|
||||
}
|
||||
} // finishAddingPlayers
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user