summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/crsm.cpp49
1 files changed, 32 insertions, 17 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index 2e1d6c0..1503d0e 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -427,30 +427,45 @@ void CRSM::ircMessageReceived(IrcMessage *message)
}
else if(!privMessage->isAction() && !(command = getCommand(mess)).isEmpty())
{
- if(!cmd(command, client))
- {
- respond(client, "Unbekannter Befehl: \"" + command + "\"!");
- }
+ // command is handled afterwards
}
- else if(privMessage->isPrivate() && ircMods.contains(target))
+ else if(privMessage->isPrivate())
{
- if(aliasWishEditor == target)
- {
- editAliasWishes(mess);
- }
- else if(ircModIOList.contains(message->nick()))
+ bool handled = false;
+ if(ircMods.contains(target))
{
- QString writeMessage;
- if(mess.at(0) == '\\' || mess.at(0) == '/')
+ if(aliasWishEditor == target)
{
- mess[0] = '/';
+ editAliasWishes(mess);
+ handled = true;
}
- else
+ else if(ircModIOList.contains(message->nick()))
{
- writeMessage = "[IRC]<" + message->nick() + "> ";
+ QString writeMessage;
+ if(mess.at(0) == '\\' || mess.at(0) == '/')
+ {
+ mess[0] = '/';
+ }
+ else
+ {
+ writeMessage = "[IRC]<" + message->nick() + "> ";
+ }
+ writeMessage += mess;
+ writeToServer(writeMessage + "\n");
+ handled = true;
}
- writeMessage += mess;
- writeToServer(writeMessage + "\n");
+ }
+ if(!handled)
+ {
+ command = mess;
+ }
+ }
+
+ if(!command.isEmpty())
+ {
+ if(!cmd(command, client))
+ {
+ respond(client, "Unbekannter Befehl: \"" + command + "\"!");
}
}