diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/crsm.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp index e819b4e..0e756af 100644 --- a/src/crsm.cpp +++ b/src/crsm.cpp @@ -218,14 +218,28 @@ void CRSM::readServerOutput() } } + static QRegExp lobbyStartExp(R"((?:Los geht's!|Action go!)\s*)"); + if(lobbyStartExp.exactMatch(what)) + { + Session.Running = true; + + if(Config.IRC.UseIngameChat && !Config.IRC.IngameChannel.isEmpty()) + { + connection->sendCommand(IrcCommand::createTopic(Config.IRC.IngameChannel, "Aktuelles Szenario: " + Session.ScenarioName + " | Lädt | Ingamechat ist " + (Session.IrcUseIngameChat ? "" : "de") + "aktviert.")); + } + } + static QRegExp startExp("^Start!\\s*$"); if(startExp.exactMatch(what)) { - if(Session.League) + if(!Session.League) { writeToServer(QString("/set maxplayer 0\n")); } - Session.Running = true; + if(Config.IRC.UseIngameChat && !Config.IRC.IngameChannel.isEmpty()) + { + connection->sendCommand(IrcCommand::createTopic(Config.IRC.IngameChannel, "Aktuelles Szenario: " + Session.ScenarioName + " | Läuft | Ingamechat ist " + (Session.IrcUseIngameChat ? "" : "de") + "aktviert.")); + } } @@ -671,7 +685,7 @@ void CRSM::startScen(const ScenarioSettings &scen, QStringList argList) Session.IrcUseIngameChat = Config.IRC.UseIngameChat; if(Config.IRC.UseIngameChat && !Config.IRC.IngameChannel.isEmpty()) { - connection->sendCommand(IrcCommand::createTopic(Config.IRC.IngameChannel, "Aktuelles Szenario: " + Session.ScenarioName + " | Ingamechat ist " + (Session.IrcUseIngameChat ? "" : "de") + "aktviert.")); + connection->sendCommand(IrcCommand::createTopic(Config.IRC.IngameChannel, "Aktuelles Szenario: " + Session.ScenarioName + " | Lobby | Ingamechat ist " + (Session.IrcUseIngameChat ? "" : "de") + "aktviert.")); } filename = scen.name; while(Config.Hosting.Alias.contains(filename)) |
