diff options
| -rw-r--r-- | src/crsm.cpp | 9 |
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; |
