diff options
author | megamage <none@none> | 2008-12-26 18:22:01 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-12-26 18:22:01 -0600 |
commit | ce5d6610616a9b5f5ce625332ed26cd7b4f455e5 (patch) | |
tree | f500314d8997e14233fc5a5d8220e1ae1f350006 /src/game/Level2.cpp | |
parent | 1892a6dbea799a8d66778e721d134650642e487a (diff) | |
parent | 4d86f8e6796548f1b76cc19c7f9e5f5c58c7e0fa (diff) |
*Update to Trinity 676.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Level2.cpp')
-rw-r--r-- | src/game/Level2.cpp | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp index db5a0b5c660..5f3b12b0eb8 100644 --- a/src/game/Level2.cpp +++ b/src/game/Level2.cpp @@ -1680,6 +1680,8 @@ bool ChatHandler::HandleNpcFactionIdCommand(const char* args) bool ChatHandler::HandleKickPlayerCommand(const char *args) { char* kickName = strtok((char*)args, " "); + char* kickReason = strtok(NULL, "\n"); + if (!kickName) { Player* player = getSelectedPlayer(); @@ -1697,12 +1699,23 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args) 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->GetSession()->KickPlayer(); } else { std::string name = kickName; + std::string reason = "No Reason"; + if(kickReason) + reason = kickReason; + if(!normalizePlayerName(name)) { SendSysMessage(LANG_PLAYER_NOT_FOUND); @@ -1716,13 +1729,27 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args) 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)) { - PSendSysMessage(LANG_COMMAND_KICKMESSAGE,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()); + PSendSysMessage(LANG_COMMAND_KICKNOTFOUNDPLAYER, name.c_str()); } return true; |