core/PlayerManager.cpp
changeset 1905 70e7cadd76a2
parent 1831 af5c93c936d7
child 1906 d0aad17b4950
     1.1 --- a/core/PlayerManager.cpp	Sat Mar 01 06:33:25 2008 +0000
     1.2 +++ b/core/PlayerManager.cpp	Sat Mar 01 07:14:16 2008 +0000
     1.3 @@ -961,10 +961,22 @@
     1.4  		}
     1.5  	}
     1.6  
     1.7 +	if (strcmp(info->pattern, "@me") == 0)
     1.8 +	{
     1.9 +		info->targets[0] = info->admin;
    1.10 +		info->num_targets = 1;
    1.11 +		strncopy(info->target_name, 
    1.12 +			pAdmin ? pAdmin->GetName() : "Console",
    1.13 +			info->target_name_maxlength);
    1.14 +		info->target_name_style = COMMAND_TARGETNAME_RAW;
    1.15 +		return;
    1.16 +	}
    1.17 +
    1.18  	if ((info->flags & COMMAND_FILTER_NO_MULTI) != COMMAND_FILTER_NO_MULTI)
    1.19  	{
    1.20  		bool is_multi = false;
    1.21  		bool bots_only = false;
    1.22 +		int skip_client = -1;
    1.23  
    1.24  		if (strcmp(info->pattern, "@all") == 0)
    1.25  		{
    1.26 @@ -1018,6 +1030,13 @@
    1.27  			info->target_name_style = COMMAND_TARGETNAME_ML;
    1.28  			info->flags |= COMMAND_FILTER_NO_BOTS;
    1.29  		}
    1.30 +		else if (strcmp(info->pattern, "@!me") == 0)
    1.31 +		{
    1.32 +			is_multi = true;
    1.33 +			strncopy(info->target_name, "all players", info->target_name_maxlength);
    1.34 +			info->target_name_style = COMMAND_TARGETNAME_ML;
    1.35 +			skip_client = info->admin;
    1.36 +		}
    1.37  
    1.38  		if (is_multi)
    1.39  		{
    1.40 @@ -1029,7 +1048,8 @@
    1.41  				}
    1.42  				if (FilterCommandTarget(pAdmin, pTarget, info->flags) > 0)
    1.43  				{
    1.44 -					if (!bots_only || pTarget->IsFakeClient())
    1.45 +					if ((!bots_only || pTarget->IsFakeClient())
    1.46 +						&& skip_client != i)
    1.47  					{
    1.48  						info->targets[total++] = i;
    1.49  					}