diff options
Diffstat (limited to 'src/crsm.cpp')
| -rw-r--r-- | src/crsm.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp index 9bc2a19..ac2ea04 100644 --- a/src/crsm.cpp +++ b/src/crsm.cpp @@ -314,20 +314,22 @@ void CRSM::scenarioFinished() } Session.clear(); if((autoHost || userlist.length() > 0) && !finish) + { nextScen(); - else if(!Config.IRC.IngameChannel.isEmpty()) + } + else { ircSetIngameChannelTopic(); - QFile lastScenFile(LAST_SCEN_FILE_NAME); - QFile curScenFile(CUR_SCEN_FILE_NAME); - curScenFile.open(QFile::ReadOnly); - lastScenFile.open(QFile::WriteOnly); - lastScenFile.write(curScenFile.readAll()); - lastScenFile.close(); - curScenFile.close(); - curScenFile.open(QFile::WriteOnly); - curScenFile.close(); } + QFile lastScenFile(LAST_SCEN_FILE_NAME); + QFile curScenFile(CUR_SCEN_FILE_NAME); + curScenFile.open(QFile::ReadOnly); + lastScenFile.open(QFile::WriteOnly); + lastScenFile.write(curScenFile.readAll()); + lastScenFile.close(); + curScenFile.close(); + curScenFile.open(QFile::WriteOnly); + curScenFile.close(); } void CRSM::ircMessageReceived(IrcMessage *message) @@ -428,7 +430,7 @@ void CRSM::ircMessageReceived(IrcMessage *message) IrcJoinMessage* joinMessage = (IrcJoinMessage*) message; QString joinChannel = joinMessage->channel(); connection->sendCommand(IrcCommand::createMessage(joinChannel, "Hallo " + message->nick() + "!")); - if(joinChannel == Config.IRC.IngameChannel) + if(joinChannel == Config.IRC.IngameChannel && Session.IRC.UseIngameChat) { writeToServer("[IRC] " + message->nick() + " hat den Channel betreten." + "\n"); } @@ -462,7 +464,7 @@ void CRSM::ircMessageReceived(IrcMessage *message) { IrcPartMessage* partMessage = (IrcPartMessage*)message; QString leaveChannel = partMessage->channel(); - if(leaveChannel == Config.IRC.IngameChannel) + if(leaveChannel == Config.IRC.IngameChannel && Session.IRC.UseIngameChat) { writeToServer("[IRC] " + message->nick() + " hat den Channel verlassen." + "\n"); } @@ -471,7 +473,7 @@ void CRSM::ircMessageReceived(IrcMessage *message) { IrcModeMessage* modeMessage = (IrcModeMessage*)message; QRegExp modeExp("^\\+[a-zA-Z]*(a|o)"); - if(message->parameters().size() >= 3 && modeMessage->target() == Config.IRC.IngameChannel && modeExp.exactMatch(modeMessage->mode()) && modeMessage->argument() == Config.IRC.Nick) + if(Config.IRC.UseIngameChat && message->parameters().size() >= 3 && modeMessage->target() == Config.IRC.IngameChannel && modeExp.exactMatch(modeMessage->mode()) && modeMessage->argument() == Config.IRC.Nick) { ircSetIngameChannelTopic(); } @@ -1536,7 +1538,7 @@ void CRSM::prepareAndConnectIrc() } else { - Config.IRC.UseIngameChat = false; + Session.IRC.UseIngameChat = Config.IRC.UseIngameChat = false; } connection->setPassword(Config.IRC.Password); @@ -1645,6 +1647,11 @@ void CRSM::applyConfig() } } + if(!Config.IRC.UseIngameChat) + { + Session.IRC.UseIngameChat = false; + } + setupCmds(); out(Stats.read(Config.CRSM.StatsFile)); out(Packs.read(Config.CRSM.PacksFile, Config.Auto.Volatile.Clonk.Directory)); |
