diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2017-05-30 20:27:57 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2017-05-30 20:27:57 +0200 |
| commit | 8bd7d77ba07d84b7829201befe30c07b12c5568a (patch) | |
| tree | 5c0def8fc1e2a05d22891ec18c5e7ab173fb3401 /src/crsm.cpp | |
| parent | c20ac02beb8520953d90d0d9114371fe36187ed0 (diff) | |
| download | manager-8bd7d77ba07d84b7829201befe30c07b12c5568a.tar.gz manager-8bd7d77ba07d84b7829201befe30c07b12c5568a.zip | |
Move IngameChat functionality into its own ClonkOutputInterface
Diffstat (limited to 'src/crsm.cpp')
| -rw-r--r-- | src/crsm.cpp | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp index 6adc72f..aa1ef13 100644 --- a/src/crsm.cpp +++ b/src/crsm.cpp @@ -12,7 +12,7 @@ #define MGMT_BUFFER_FILENAME "CRSM-MGMT-Buffer" CRSM::CRSM(QObject *parent) : - QObject(parent), Session(this), parser(Session) + QObject(parent), Session(this), parser(Session), ingameChat(Config.IRC.IngameChannel, *this) { control.setController(this); parser.addTarget(this); @@ -68,6 +68,7 @@ CRSM::CRSM(QObject *parent) : { watchdog(); } + unRegisterIngameChat(); } QFile sessionFile(Config.CRSM.SessionFile); if(sessionFile.exists()) sessionFile.remove(); @@ -286,14 +287,6 @@ bool CRSM::clientMessage(ClientInfo& client, const QString& message, ClonkOutput } return true; } - else if(Session.IRC.UseIngameChat) - { - sendIrcMessage("[Clonk]<" + client.nick+ "> " + message, Config.IRC.IngameChannel, false, false); - } - } - else if(Session.IRC.UseIngameChat) - { - sendIrcMessage("[Clonk] " + client.nick + " " + message, Config.IRC.IngameChannel, true, false); } } return false; @@ -306,10 +299,6 @@ bool CRSM::clientConnected(const ClientInfo& client) connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater())); greetMapper.setMapping(timer, client.pcName); timer->start(1000); - if(Session.IRC.UseIngameChat) - { - sendIrcMessage("[Clonk] " + client.toString() + " verbunden.", Config.IRC.IngameChannel, false, false); - } if(Session.CountDown != -1 && Session.CountDown <= Config.Clonk.Server.JoinStopCountDown) { control.abortCountdown(); @@ -319,13 +308,9 @@ bool CRSM::clientConnected(const ClientInfo& client) bool CRSM::clientRemoved(const ClientInfo& client, const QString& reason) { + Q_UNUSED(reason); control.serverMessage(client.nick + " ist ein L34V0R!"); - if(Session.IRC.UseIngameChat) - { - sendIrcMessage("[Clonk] " + client.toString() + " entfernt (" + reason + ").", Config.IRC.IngameChannel, false, false); - } - if(client == Session.Clonk.Admin) { Session.Clonk.LeaveAdmins.insert(client, QDateTime::currentDateTime()); @@ -859,6 +844,7 @@ void CRSM::startScen(const ScenarioSettings &scen, QStringList argList) Session.Scenario = scen; Session.IRC.UseIngameChat = Config.IRC.UseIngameChat; + unRegisterIngameChat(); Session.Clonk.Server.pcName = Config.Auto.Volatile.Clonk.ServerPCName; Session.Clonk.Server.nick = Config.Auto.Volatile.Clonk.ServerNick; @@ -1325,6 +1311,7 @@ QString CRSM::ircActivateIngameChat(bool activated) if(Session.IRC.UseIngameChat != activated) { Session.IRC.UseIngameChat = activated; + unRegisterIngameChat(); ircSetIngameChannelTopic(); return "Ingamechat wurde " + (Session.IRC.UseIngameChat ? QString("") : QString("de")) + "aktiviert."; } @@ -2377,6 +2364,18 @@ void CRSM::watchdog() } } +void CRSM::unRegisterIngameChat() +{ + if(Session.IRC.UseIngameChat) + { + parser.addTarget(&ingameChat); + } + else + { + parser.removeTarget(&ingameChat); + } +} + CMD_FUNCTION_IMPL(help) bool recursive = args.startsWith("recursive ") && client.interface == Management; ClientInterface interface = client.interface; @@ -2896,7 +2895,7 @@ CMD_FUNCTION_IMPL(io) CMD_FUNCTION_IMPL(passToClonkPcName) if(args == Config.Auto.Volatile.Clonk.ServerNick || args == Config.Auto.Volatile.Clonk.ServerPCName) - { + { // FIXME: wrong cmd for passToClonkPcNameGrouped respond(client, Config.CRSM.CommandSigns.first() + cmd + " kann nicht auf den Server angewendet werden!\n"); return Success; } |
