From 3363acba6f1e8e51937ae2e354a8086c5c56b8cd Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 20 May 2018 06:11:17 +0300 Subject: Show gm revive button in death dialog if player have rights for @alive command. --- src/listeners/playerpostdeathlistener.h | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) (limited to 'src/listeners') diff --git a/src/listeners/playerpostdeathlistener.h b/src/listeners/playerpostdeathlistener.h index c5c6c47fb..58ceee324 100644 --- a/src/listeners/playerpostdeathlistener.h +++ b/src/listeners/playerpostdeathlistener.h @@ -30,11 +30,12 @@ #include "gui/windows/npcdialog.h" +#include "net/adminhandler.h" #include "net/playerhandler.h" #include "localconsts.h" -extern OkDialog *deathNotice; +extern Window *deathNotice; /** * Listener used for handling death message. @@ -47,18 +48,30 @@ struct PlayerPostDeathListener final : public ActionListener A_DELETE_COPY(PlayerPostDeathListener) - void action(const ActionEvent &event A_UNUSED) override final + void action(const ActionEvent &event) override final { - if (playerHandler != nullptr) - playerHandler->respawn(); + const bool respawn = !(event.getId() == "no"); deathNotice = nullptr; + if (respawn) + { + if (playerHandler != nullptr) + playerHandler->respawn(); - DialogsManager::closeDialogs(); - PopupManager::closePopupMenu(); + DialogsManager::closeDialogs(); + PopupManager::closePopupMenu(); + NpcDialog::clearDialogs(); - NpcDialog::clearDialogs(); - if (localPlayer != nullptr) - localPlayer->respawn(); + if (localPlayer != nullptr) + localPlayer->respawn(); + } + else + { + DialogsManager::closeDialogs(); + PopupManager::closePopupMenu(); + NpcDialog::clearDialogs(); + if (localPlayer != nullptr) + adminHandler->alive(localPlayer->getName()); + } } }; -- cgit v1.2.3-70-g09d2