summaryrefslogtreecommitdiffstats
path: root/src/crsm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crsm.cpp')
-rw-r--r--src/crsm.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index e187123..be71967 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -569,9 +569,10 @@ void CRSM::ircMessageReceived(IrcMessage *message)
IrcJoinMessage* joinMessage = (IrcJoinMessage*)message;
QString joinChannel = joinMessage->channel();
- if(greetAllowed(ClientInfo::ircClient(joinMessage->nick(), joinMessage->channel())))
+ auto setting = greetingSetting(ClientInfo::ircClient(joinMessage->nick(), joinMessage->channel()));
+ if(setting != GreetingSetting::Disabled)
{
- sendIrcMessage("Hallo, " + message->nick() + "!", joinChannel, false, false);
+ sendIrcMessage("Hallo, " + message->nick() + "!", joinChannel, false, setting == GreetingSetting::Notice);
}
if(joinChannel == Config.IRC.IngameChannel && Session.IRC.UseIngameChat)
@@ -650,7 +651,7 @@ void CRSM::greet(QString pcName)
const ClientInfo &info = Session.Clonk.Clients.value(pcName);
- if(!greetAllowed(info))
+ if(greetingSetting(info) == GreetingSetting::Disabled)
{
return;
}
@@ -2293,52 +2294,52 @@ void CRSM::sendIrcMessage(const QString& message, const QString& target, bool ac
}
}
-bool CRSM::greetAllowed(const ClientInfo &client)
+GreetingSetting::Mode CRSM::greetingSetting(const ClientInfo &client)
{
if(client.interface == Clonk && Config.CRSM.Greeting.contains(GreetingSetting::clonk()) && !Config.CRSM.Greeting.contains(GreetingSetting::clonk().invert()))
{
- return true;
+ return GreetingSetting::Normal;
}
else if(client.interface == IRC)
{
- int nickSetting = -1;
- int chanSetting = -1;
- int ircSetting = -1;
+ GreetingSetting::Mode nickSetting = GreetingSetting::Unset;
+ GreetingSetting::Mode chanSetting = GreetingSetting::Unset;
+ GreetingSetting::Mode ircSetting = GreetingSetting::Unset;
foreach(const GreetingSetting& setting, Config.CRSM.Greeting)
{
if(setting.interface == IRC)
{
if(setting.target == client.nick)
{
- nickSetting = !setting.negative;
+ nickSetting = setting.mode;
}
else if(setting.target == client.target)
{
- chanSetting = !setting.negative;
+ chanSetting = setting.mode;
}
else if(setting.target.isEmpty())
{
- ircSetting = !setting.negative;
+ ircSetting = setting.mode;
}
}
}
- if(nickSetting != -1)
+ if(nickSetting != GreetingSetting::Unset)
{
- return nickSetting != 0;
+ return nickSetting;
}
- if(chanSetting != -1)
+ if(chanSetting != GreetingSetting::Unset)
{
- return chanSetting != 0;
+ return chanSetting;
}
- if(ircSetting != -1)
+ if(ircSetting != GreetingSetting::Unset)
{
- return ircSetting != 0;
+ return ircSetting;
}
}
- return false;
+ return GreetingSetting::Disabled;
}
void CRSM::handleIrcMessage(const ClientInfo &client, QString message, const QString &target, bool privateMessage, bool action, bool own)