diff options
author | megamage <none@none> | 2008-12-28 10:52:24 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-12-28 10:52:24 -0600 |
commit | 3bbf8d6be8cd67d99fc8c1df3a971fe4e7e680ef (patch) | |
tree | 0264a08b586df36f290a6b1b6a839dcf9b829c75 /src/game/Level2.cpp | |
parent | ac9cced914fb4c9db0b2b64f7fd9f9ab8c7802ee (diff) | |
parent | 9fa37dc69344a28a585bc2dee6713d7ebaa03d28 (diff) |
HG 698.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Level2.cpp')
-rw-r--r-- | src/game/Level2.cpp | 128 |
1 files changed, 60 insertions, 68 deletions
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index 5f3b12b0eb8..97a094585d1 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -1679,80 +1679,72 @@ bool ChatHandler::HandleNpcFactionIdCommand(const char* args) //kick player bool ChatHandler::HandleKickPlayerCommand(const char *args) { - char* kickName = strtok((char*)args, " "); - char* kickReason = strtok(NULL, "\n"); + if(!*args) + return false; + + const char* kickName = strtok((char*)args, " "); + if(!kickName) + { - if (!kickName) - { - Player* player = getSelectedPlayer(); + SendSysMessage(LANG_NO_CHAR_SELECTED); + SetSentErrorMessage(true); + return false; + } + + std::string name = kickName; - if(!player) - { - SendSysMessage(LANG_NO_CHAR_SELECTED); - SetSentErrorMessage(true); - return false; - } + if(!normalizePlayerName(name)) + { + SendSysMessage(LANG_PLAYER_NOT_FOUND); + SetSentErrorMessage(true); + return false; + } + + if(m_session && name==m_session->GetPlayer()->GetName()) + { + SendSysMessage(LANG_COMMAND_KICKSELF); + SetSentErrorMessage(true); + return false; + } - if(player==m_session->GetPlayer()) - { - SendSysMessage(LANG_COMMAND_KICKSELF); - SetSentErrorMessage(true); - return false; - } - - if(player->GetSession()->GetSecurity() > m_session->GetSecurity()) - { - SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); //maybe replacement string for this later on - SetSentErrorMessage(true); - return false; - } + Player* player = objmgr.GetPlayer(kickName); + if(!player) + { + SendSysMessage(LANG_PLAYER_NOT_FOUND); + SetSentErrorMessage(true); + return false; + } + + if(player->GetSession()->GetSecurity() > m_session->GetSecurity()) + { + SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); //maybe replacement string for this later on + SetSentErrorMessage(true); + return false; + } + + char* kickReason = strtok(NULL, "\n"); + std::string reason = "No Reason"; + if(kickReason) + {reason = kickReason;} - player->GetSession()->KickPlayer(); - } - else + if(sWorld.KickPlayer(name.c_str())) { - std::string name = kickName; - std::string reason = "No Reason"; - if(kickReason) - reason = kickReason; - - if(!normalizePlayerName(name)) - { - SendSysMessage(LANG_PLAYER_NOT_FOUND); - SetSentErrorMessage(true); - return false; - } - - if(m_session && name==m_session->GetPlayer()->GetName()) - { - SendSysMessage(LANG_COMMAND_KICKSELF); - SetSentErrorMessage(true); - return false; - } - - if(objmgr.GetPlayer(kickName)->GetSession()->GetSecurity() > m_session->GetSecurity()) - { - SendSysMessage(LANG_YOURS_SECURITY_IS_LOW); //maybe replacement string for this later on - SetSentErrorMessage(true); - return false; - } - - if(sWorld.KickPlayer(name)) - { - if(sWorld.getConfig(CONFIG_SHOW_KICK_IN_WORLD) == 1) - { - sWorld.SendWorldText(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str()); - } - else - { - PSendSysMessage(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str()); - } - } - else - PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER, name.c_str()); - } + if(sWorld.getConfig(CONFIG_SHOW_KICK_IN_WORLD) == 1) + { + sWorld.SendWorldText(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str()); + } + else + { + PSendSysMessage(LANG_COMMAND_KICKMESSAGE, name.c_str(), m_session->GetPlayer()->GetName(), reason.c_str()); + } + } + else + { + PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER, name.c_str()); + return false; + } - return true; + return true; } //show info of player |