diff --git a/source/glest_game/menu/menu_state_masterserver.cpp b/source/glest_game/menu/menu_state_masterserver.cpp index 5bcfb50c2..cfdd94312 100644 --- a/source/glest_game/menu/menu_state_masterserver.cpp +++ b/source/glest_game/menu/menu_state_masterserver.cpp @@ -567,8 +567,11 @@ void MenuStateMasterserver::render(){ } } renderer.renderScrollBar(&userScrollBar); - - renderer.renderChatManager(&chatManager); + if(ircClient != NULL && + ircClient->isConnected() == true && + ircClient->getHasJoinedChannel() == true) { + renderer.renderChatManager(&chatManager); + } renderer.renderConsole(&consoleIRC,true,true); } @@ -913,15 +916,19 @@ void MenuStateMasterserver::showMessageBox(const string &text, const string &hea void MenuStateMasterserver::keyDown(char key) { Config &configKeys = Config::getInstance(std::pair(cfgMainKeys,cfgUserKeys)); - if(chatManager.getEditEnabled() == true) { - //printf("keyDown key [%d] chatManager.getText() [%s]\n",key,chatManager.getText().c_str()); - MutexSafeWrapper safeMutexIRCPtr(&mutexIRCClient); - if(key == vkReturn && ircClient != NULL) { - ircClient->SendIRCCmdMessage(IRC_CHANNEL, chatManager.getText()); - } - } + if (ircClient != NULL && ircClient->isConnected() == true + && ircClient->getHasJoinedChannel() == true) { + //chatmanger only if connected to irc! + if (chatManager.getEditEnabled() == true) { + //printf("keyDown key [%d] chatManager.getText() [%s]\n",key,chatManager.getText().c_str()); + MutexSafeWrapper safeMutexIRCPtr(&mutexIRCClient); + if (key == vkReturn && ircClient != NULL) { + ircClient->SendIRCCmdMessage(IRC_CHANNEL, chatManager.getText()); + } + } - chatManager.keyDown(key); + chatManager.keyDown(key); + } if(chatManager.getEditEnabled() == false) { if(key == configKeys.getCharKey("ToggleMusic")) { Config &config = Config::getInstance(); @@ -949,15 +956,21 @@ void MenuStateMasterserver::keyDown(char key) { } void MenuStateMasterserver::keyPress(char c) { - chatManager.keyPress(c); + if (ircClient != NULL && ircClient->isConnected() == true + && ircClient->getHasJoinedChannel() == true) { + chatManager.keyPress(c); + } } void MenuStateMasterserver::keyUp(char key) { - chatManager.keyUp(key); + if (ircClient != NULL && ircClient->isConnected() == true + && ircClient->getHasJoinedChannel() == true) { + chatManager.keyUp(key); - if(chatManager.getEditEnabled()) { - //send key to the chat manager - chatManager.keyUp(key); - } + if (chatManager.getEditEnabled()) { + //send key to the chat manager + chatManager.keyUp(key); + } + } } }}//end namespace diff --git a/source/shared_lib/sources/platform/posix/ircclient.cpp b/source/shared_lib/sources/platform/posix/ircclient.cpp index 14a6418d7..a1f662709 100644 --- a/source/shared_lib/sources/platform/posix/ircclient.cpp +++ b/source/shared_lib/sources/platform/posix/ircclient.cpp @@ -78,7 +78,7 @@ void event_join(irc_session_t * session, const char * event, const char * origin if(ctx != NULL) { if(ctx->getHasJoinedChannel() == false) { irc_cmd_user_mode (session, "+i"); - irc_cmd_msg (session, params[0], "MG Bot says hello!"); + //irc_cmd_msg (session, params[0], "MG Bot says hello!"); ctx->setHasJoinedChannel(true); ctx->GetIRCConnectedNickList(ctx->getArgs()[2],true);