*Improvements to .kick command with new conf setting - by Machiavelli
--HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
UPDATE `trinity_string` SET `content_default`='Player |cffff0000%s|r kicked by |cffff0000%s|r. Reason: |cffff0000%s|r.' WHERE (`entry`='282');
|
||||
UPDATE `command` SET `help`='Syntax: .kick [$charactername] [$reason]\r\n\r\nKick the given character name from the world with or without reason. If no character name is provided then the selected player (except for yourself) will be kicked. If no reason is provided, default is \"No Reason\".' WHERE (`name`='kick');
|
||||
+29
-2
@@ -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();
|
||||
@@ -1698,11 +1700,22 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args)
|
||||
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);
|
||||
@@ -1717,12 +1730,26 @@ bool ChatHandler::HandleKickPlayerCommand(const char *args)
|
||||
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;
|
||||
|
||||
@@ -988,6 +988,7 @@ void World::LoadConfigSettings(bool reload)
|
||||
if(m_configs[CONFIG_PVP_TOKEN_COUNT] < 1)
|
||||
m_configs[CONFIG_PVP_TOKEN_COUNT] = 1;
|
||||
m_configs[CONFIG_NO_RESET_TALENT_COST] = sConfig.GetBoolDefault("NoResetTalentsCost", false);
|
||||
m_configs[CONFIG_SHOW_KICK_IN_WORLD] = sConfig.GetBoolDefault("ShowKickInWorld", false);
|
||||
|
||||
std::string forbiddenmaps = sConfig.GetStringDefault("ForbiddenMaps", "");
|
||||
char * forbiddenMaps = new char[forbiddenmaps.length() + 1];
|
||||
|
||||
@@ -196,6 +196,7 @@ enum WorldConfigs
|
||||
CONFIG_PVP_TOKEN_ID,
|
||||
CONFIG_PVP_TOKEN_COUNT,
|
||||
CONFIG_NO_RESET_TALENT_COST,
|
||||
CONFIG_SHOW_KICK_IN_WORLD,
|
||||
|
||||
CONFIG_VALUE_COUNT
|
||||
};
|
||||
|
||||
@@ -1251,6 +1251,12 @@ Ra.Secure = 1
|
||||
# example: "538,90"
|
||||
# Note that it's HIGHLY DISCOURAGED to forbid starting maps (0, 1, 530)!
|
||||
#
|
||||
# ShowKickInWorld
|
||||
# determines wether a message is broadcasted to the entire server when a player gets kicked
|
||||
# Default: 0
|
||||
# 1 = Enable
|
||||
# 0 = Disable
|
||||
#
|
||||
###################################################################################################################
|
||||
|
||||
PlayerStart.AllReputation = 0
|
||||
@@ -1264,4 +1270,4 @@ PvPToken.MapAllowType = 4
|
||||
PvPToken.ItemID = 29434
|
||||
PvPToken.ItemCount = 1
|
||||
NoResetTalentsCost = 0
|
||||
|
||||
ShowKickInWorld = 0
|
||||
Reference in New Issue
Block a user