summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2016-10-08 13:45:47 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2016-10-08 14:35:36 +0200
commitedd1ab0b8251abd5b52f6edbf4a7c4665da222a5 (patch)
tree42536d97116d9a842bcf134875b76ecbc95700aa /src
parente22b70f1d91bbb6f5f70cb25854525ff812fef50 (diff)
downloadmanager-edd1ab0b8251abd5b52f6edbf4a7c4665da222a5.tar.gz
manager-edd1ab0b8251abd5b52f6edbf4a7c4665da222a5.zip
Clear IRC admin when regaining ingame admin
Diffstat (limited to 'src')
-rw-r--r--src/crsm.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index 79ff0ad..9e59275 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -529,7 +529,7 @@ void CRSM::greet(QString pcName)
if(Session.Clonk.LeaveAdmins.contains(info))
{
qint64 timeGone;
- if((timeGone = Session.Clonk.LeaveAdmins.value(info).secsTo(QDateTime::currentDateTime())) < Config.Clonk.Chat.RegainAdminTime && !Session.Clonk.Admin.empty())
+ if((timeGone = Session.Clonk.LeaveAdmins.value(info).secsTo(QDateTime::currentDateTime())) < Config.Clonk.Chat.RegainAdminTime && (!Session.Clonk.Admin.empty() || !Session.IRC.Admin.empty()))
{
writeToServer(info.nick + "! Der Rundenadmin wurde freigegeben, weil du das Spiel verlassen hast.\nDu hast noch " + QString::number(Config.Clonk.Chat.RegainAdminTime - timeGone) + "s Zeit um den Rundenadmin zurückzuholen.\n");
}
@@ -2384,18 +2384,23 @@ CMD_FUNCTION_IMPL(admin)
return Success;
}
ClientInfo& interfaceAdmin = *interfaceAdminPtr;
+ bool noLeaveAdmin = userType < Admin && !(Session.Clonk.LeaveAdmins.contains(client) && Session.Clonk.LeaveAdmins.value(client).secsTo(QDateTime::currentDateTime()) < Config.Clonk.Chat.RegainAdminTime);
if(args.isEmpty() && interfaceAdmin == client)
{
respond(client, "Du bist bereits Rundenadmin!\n");
return Success;
}
- else if((!Session.IRC.Admin.empty() || !Session.Clonk.Admin.empty()) && userType < Admin && !(Session.Clonk.LeaveAdmins.contains(client) && Session.Clonk.LeaveAdmins.value(client).secsTo(QDateTime::currentDateTime()) < Config.Clonk.Chat.RegainAdminTime))
+ else if((!Session.IRC.Admin.empty() || !Session.Clonk.Admin.empty()) && noLeaveAdmin)
{
respond(client, Session.IRC.Admin.toString() + (!Session.IRC.Admin.nick.isEmpty() && !Session.Clonk.Admin.nick.isEmpty() ? " und " : "") + Session.Clonk.Admin.toString() + " ist bereits Rundenadmin!\n");
return Success;
}
else if(args.isEmpty())
{
+ if(!noLeaveAdmin)
+ {
+ Session.IRC.Admin.clear();
+ }
interfaceAdmin = client;
respond(client, client.toString() + " wurde als Rundenadmin eingetragen!\n");
return Success;