plugins/basecomm/gag.sp
author David Anderson <dvander@alliedmods.net>
Fri Nov 16 14:08:02 2007 +0000 (2007-11-16)
changeset 1682 a7478db7aa6b
parent 1659 8f76184834fb
child 1789 55172f6df9a4
permissions -rw-r--r--
fixed amb1160 - a bunch of menus could display invalid clients
pred@1536
     1
enum CommType
pred@1536
     2
{
pred@1536
     3
	CommType_Mute,
pred@1536
     4
	CommType_UnMute,
pred@1536
     5
	CommType_Gag,
pred@1536
     6
	CommType_UnGag,
pred@1536
     7
	CommType_Silence,
pred@1536
     8
	CommType_UnSilence
pred@1536
     9
};
pred@1536
    10
pred@1536
    11
DisplayGagTypesMenu(client)
pred@1536
    12
{
pred@1536
    13
	new Handle:menu = CreateMenu(MenuHandler_GagTypes);
pred@1536
    14
	
pred@1536
    15
	decl String:title[100];
pred@1536
    16
	Format(title, sizeof(title), "%T:", "Choose Type", client);
pred@1536
    17
	SetMenuTitle(menu, title);
pred@1536
    18
	SetMenuExitBackButton(menu, true);
pred@1536
    19
	
pred@1536
    20
	new target = g_GagTarget[client];
pred@1536
    21
	
pred@1536
    22
	if (!g_Muted[target])
pred@1536
    23
	{
pred@1536
    24
		AddMenuItem(menu, "0", "Mute Player");
pred@1536
    25
	}
pred@1536
    26
	else
pred@1536
    27
	{
pred@1536
    28
		AddMenuItem(menu, "1", "UnMute Player");
pred@1536
    29
	}
pred@1536
    30
	
pred@1536
    31
	if (!g_Gagged[target])
pred@1536
    32
	{
pred@1536
    33
		AddMenuItem(menu, "2", "Gag Player");
pred@1536
    34
	}
pred@1536
    35
	else
pred@1536
    36
	{
pred@1536
    37
		AddMenuItem(menu, "3", "UnGag Player");
pred@1536
    38
	}
pred@1536
    39
	
pred@1536
    40
	if (!g_Muted[target] || !g_Gagged[target])
pred@1536
    41
	{
pred@1536
    42
		AddMenuItem(menu, "4", "Silence Player");
pred@1536
    43
	}
pred@1536
    44
	else
pred@1536
    45
	{
pred@1536
    46
		AddMenuItem(menu, "5", "UnSilence Player");
pred@1536
    47
	}
pred@1536
    48
		
pred@1536
    49
	DisplayMenu(menu, client, MENU_TIME_FOREVER);
pred@1536
    50
}
pred@1536
    51
pred@1536
    52
DisplayGagPlayerMenu(client)
pred@1536
    53
{
pred@1536
    54
	new Handle:menu = CreateMenu(MenuHandler_GagPlayer);
pred@1536
    55
	
pred@1536
    56
	decl String:title[100];
dvander@1592
    57
	Format(title, sizeof(title), "%T:", "Gag/Mute player", client);
pred@1536
    58
	SetMenuTitle(menu, title);
pred@1536
    59
	SetMenuExitBackButton(menu, true);
pred@1536
    60
	
dvander@1682
    61
	AddTargetsToMenu(menu, client, true, false);
pred@1536
    62
	
pred@1536
    63
	DisplayMenu(menu, client, MENU_TIME_FOREVER);
pred@1536
    64
}
pred@1536
    65
pred@1536
    66
public AdminMenu_Gag(Handle:topmenu, 
pred@1536
    67
					  TopMenuAction:action,
pred@1536
    68
					  TopMenuObject:object_id,
pred@1536
    69
					  param,
pred@1536
    70
					  String:buffer[],
pred@1536
    71
					  maxlength)
pred@1536
    72
{
pred@1536
    73
	if (action == TopMenuAction_DisplayOption)
pred@1536
    74
	{
dvander@1592
    75
		Format(buffer, maxlength, "%T", "Gag/Mute player", param);
pred@1536
    76
	}
pred@1536
    77
	else if (action == TopMenuAction_SelectOption)
pred@1536
    78
	{
pred@1536
    79
		DisplayGagPlayerMenu(param);
pred@1536
    80
	}
pred@1536
    81
}
pred@1536
    82
pred@1536
    83
public MenuHandler_GagPlayer(Handle:menu, MenuAction:action, param1, param2)
pred@1536
    84
{
pred@1536
    85
	if (action == MenuAction_End)
pred@1536
    86
	{
pred@1536
    87
		CloseHandle(menu);
pred@1536
    88
	}
pred@1536
    89
	else if (action == MenuAction_Cancel)
pred@1536
    90
	{
pred@1536
    91
		if (param2 == MenuCancel_ExitBack && hTopMenu != INVALID_HANDLE)
pred@1536
    92
		{
pred@1536
    93
			DisplayTopMenu(hTopMenu, param1, TopMenuPosition_LastCategory);
pred@1536
    94
		}
pred@1536
    95
	}
pred@1536
    96
	else if (action == MenuAction_Select)
pred@1536
    97
	{
pred@1536
    98
		decl String:info[32];
pred@1536
    99
		new userid, target;
pred@1536
   100
		
pred@1536
   101
		GetMenuItem(menu, param2, info, sizeof(info));
pred@1536
   102
		userid = StringToInt(info);
pred@1536
   103
pred@1536
   104
		if ((target = GetClientOfUserId(userid)) == 0)
pred@1536
   105
		{
pred@1536
   106
			PrintToChat(param1, "[SM] %t", "Player no longer available");
pred@1536
   107
		}
pred@1536
   108
		else if (!CanUserTarget(param1, target))
pred@1536
   109
		{
pred@1536
   110
			PrintToChat(param1, "[SM] %t", "Unable to target");
pred@1536
   111
		}
pred@1536
   112
		else
pred@1536
   113
		{
pred@1536
   114
			g_GagTarget[param1] = GetClientOfUserId(userid);
pred@1536
   115
			DisplayGagTypesMenu(param1);
pred@1536
   116
		}
pred@1536
   117
	}
pred@1536
   118
}
pred@1536
   119
pred@1536
   120
public MenuHandler_GagTypes(Handle:menu, MenuAction:action, param1, param2)
pred@1536
   121
{
pred@1536
   122
	if (action == MenuAction_End)
pred@1536
   123
	{
pred@1536
   124
		CloseHandle(menu);
pred@1536
   125
	}
pred@1536
   126
	else if (action == MenuAction_Cancel)
pred@1536
   127
	{
pred@1536
   128
		if (param2 == MenuCancel_ExitBack && hTopMenu != INVALID_HANDLE)
pred@1536
   129
		{
pred@1536
   130
			DisplayTopMenu(hTopMenu, param1, TopMenuPosition_LastCategory);
pred@1536
   131
		}
pred@1536
   132
	}
pred@1536
   133
	else if (action == MenuAction_Select)
pred@1536
   134
	{
pred@1536
   135
		decl String:info[32];
pred@1536
   136
		new CommType:type;
pred@1536
   137
		
pred@1536
   138
		GetMenuItem(menu, param2, info, sizeof(info));
pred@1536
   139
		type = CommType:StringToInt(info);
dvander@1627
   140
		
dvander@1627
   141
		decl String:name[MAX_NAME_LENGTH];
dvander@1627
   142
		GetClientName(g_GagTarget[param1], name, sizeof(name));
pred@1536
   143
pred@1536
   144
		switch (type)
pred@1536
   145
		{
dvander@1627
   146
			case CommType_Mute:
dvander@1627
   147
			{
dvander@1627
   148
				PerformMute(param1, g_GagTarget[param1]);
dvander@1627
   149
				ShowActivity2(param1, "[SM] ", "%t", "Muted target", "_s", name);
dvander@1627
   150
			}
dvander@1627
   151
			case CommType_UnMute:
dvander@1627
   152
			{
dvander@1627
   153
				PerformUnMute(param1, g_GagTarget[param1]);
dvander@1627
   154
				ShowActivity2(param1, "[SM] ", "%t", "Unmuted target", "_s", name);
dvander@1627
   155
			}
dvander@1627
   156
			case CommType_Gag:
dvander@1627
   157
			{
dvander@1627
   158
				PerformGag(param1, g_GagTarget[param1]);
dvander@1627
   159
				ShowActivity2(param1, "[SM] ", "%t", "Gagged target", "_s", name);
dvander@1627
   160
			}
dvander@1627
   161
			case CommType_UnGag:
dvander@1627
   162
			{
dvander@1627
   163
				PerformUnGag(param1, g_GagTarget[param1]);
dvander@1627
   164
				ShowActivity2(param1, "[SM] ", "%t", "Ungagged target", "_s", name);
dvander@1627
   165
			}
dvander@1627
   166
			case CommType_Silence:
dvander@1627
   167
			{
dvander@1627
   168
				PerformSilence(param1, g_GagTarget[param1]);
dvander@1627
   169
				ShowActivity2(param1, "[SM] ", "%t", "Silenced target", "_s", name);
dvander@1627
   170
			}
dvander@1627
   171
			case CommType_UnSilence:
dvander@1627
   172
			{
dvander@1627
   173
				PerformUnSilence(param1, g_GagTarget[param1]);
dvander@1627
   174
				ShowActivity2(param1, "[SM] ", "%t", "Unsilenced target", "_s", name);
dvander@1627
   175
			}
pred@1536
   176
		}
pred@1536
   177
	}
pred@1536
   178
}
pred@1536
   179
pred@1536
   180
PerformMute(client, target)
pred@1536
   181
{
pred@1536
   182
	g_Muted[target] = true;
dvander@1627
   183
	SetClientListeningFlags(target, VOICE_MUTED);	
pred@1536
   184
	LogAction(client, target, "\"%L\" muted \"%L\"", client, target);
pred@1536
   185
}
pred@1536
   186
pred@1536
   187
PerformUnMute(client, target)
pred@1536
   188
{
pred@1536
   189
	g_Muted[target] = false;
pred@1536
   190
	if (GetConVarInt(g_Cvar_Deadtalk) == 1 && !IsPlayerAlive(target))
pred@1536
   191
	{
pred@1536
   192
		SetClientListeningFlags(target, VOICE_LISTENALL);
pred@1536
   193
	}
pred@1536
   194
	else if (GetConVarInt(g_Cvar_Deadtalk) == 2 && !IsPlayerAlive(target))
pred@1536
   195
	{
pred@1536
   196
		SetClientListeningFlags(target, VOICE_TEAM);
pred@1536
   197
	}
pred@1536
   198
	else
pred@1536
   199
	{
pred@1536
   200
		SetClientListeningFlags(target, VOICE_NORMAL);
pred@1536
   201
	}
pred@1536
   202
	
pred@1536
   203
	LogAction(client, target, "\"%L\" unmuted \"%L\"", client, target);
pred@1536
   204
}
pred@1536
   205
pred@1536
   206
PerformGag(client, target)
pred@1536
   207
{
pred@1536
   208
	g_Gagged[target] = true;
pred@1536
   209
	LogAction(client, target, "\"%L\" gagged \"%L\"", client, target);
pred@1536
   210
}
pred@1536
   211
pred@1536
   212
PerformUnGag(client, target)
pred@1536
   213
{
pred@1536
   214
	g_Gagged[target] = false;
pred@1536
   215
	LogAction(client, target, "\"%L\" ungagged \"%L\"", client, target);
pred@1536
   216
}
pred@1536
   217
pred@1536
   218
PerformSilence(client, target)
pred@1536
   219
{
pred@1536
   220
	if (!g_Gagged[target])
pred@1536
   221
	{
pred@1536
   222
		g_Gagged[target] = true;
pred@1536
   223
	}
pred@1536
   224
	
pred@1536
   225
	if (!g_Muted[target])
pred@1536
   226
	{
pred@1536
   227
		g_Muted[target] = true;
pred@1536
   228
		SetClientListeningFlags(target, VOICE_MUTED);
dvander@1627
   229
	}
pred@1536
   230
	
dvander@1627
   231
	LogAction(client, target, "\"%L\" silenced \"%L\"", client, target);
pred@1536
   232
}
pred@1536
   233
pred@1536
   234
PerformUnSilence(client, target)
pred@1536
   235
{
pred@1536
   236
	if (g_Gagged[target])
pred@1536
   237
	{
pred@1536
   238
		g_Gagged[target] = false;
pred@1536
   239
	}
pred@1536
   240
	
pred@1536
   241
	if (g_Muted[target])
pred@1536
   242
	{
pred@1536
   243
		g_Muted[target] = false;
pred@1536
   244
		
pred@1536
   245
		if (GetConVarInt(g_Cvar_Deadtalk) == 1 && !IsPlayerAlive(target))
pred@1536
   246
		{
pred@1536
   247
			SetClientListeningFlags(target, VOICE_LISTENALL);
pred@1536
   248
		}
pred@1536
   249
		else if (GetConVarInt(g_Cvar_Deadtalk) == 2 && !IsPlayerAlive(target))
pred@1536
   250
		{
pred@1536
   251
			SetClientListeningFlags(target, VOICE_TEAM);
pred@1536
   252
		}
pred@1536
   253
		else
pred@1536
   254
		{
pred@1536
   255
			SetClientListeningFlags(target, VOICE_NORMAL);
dvander@1627
   256
		}	
pred@1536
   257
	}
dvander@1627
   258
	
dvander@1627
   259
	LogAction(client, target, "\"%L\" unsilenced \"%L\"", client, target);
pred@1536
   260
}
pred@1536
   261
pred@1536
   262
public Action:Command_Mute(client, args)
pred@1536
   263
{	
pred@1536
   264
	if (args < 1)
pred@1536
   265
	{
pred@1536
   266
		ReplyToCommand(client, "[SM] Usage: sm_mute <player>");
pred@1536
   267
		return Plugin_Handled;
pred@1536
   268
	}
pred@1536
   269
	
pred@1536
   270
	decl String:arg[64];
pred@1536
   271
	GetCmdArg(1, arg, sizeof(arg));
pred@1536
   272
	
dvander@1627
   273
	decl String:target_name[MAX_TARGET_LENGTH];
dvander@1627
   274
	decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml;
dvander@1627
   275
	
dvander@1627
   276
	if ((target_count = ProcessTargetString(
dvander@1627
   277
			arg,
dvander@1627
   278
			client, 
dvander@1627
   279
			target_list, 
dvander@1627
   280
			MAXPLAYERS, 
dvander@1627
   281
			0,
dvander@1627
   282
			target_name,
dvander@1627
   283
			sizeof(target_name),
dvander@1627
   284
			tn_is_ml)) <= 0)
pred@1536
   285
	{
dvander@1627
   286
		ReplyToTargetError(client, target_count);
pred@1536
   287
		return Plugin_Handled;
pred@1536
   288
	}
pred@1536
   289
dvander@1627
   290
	for (new i = 0; i < target_count; i++)
dvander@1627
   291
	{
dvander@1627
   292
		new target = target_list[i];
dvander@1627
   293
		
dvander@1627
   294
		PerformMute(client, target);
dvander@1627
   295
	}
dvander@1627
   296
	
dvander@1627
   297
	if (tn_is_ml)
dvander@1627
   298
	{
dvander@1627
   299
		ShowActivity2(client, "[SM] ", "%t", "Muted target", target_name);
dvander@1627
   300
	}
dvander@1627
   301
	else
dvander@1627
   302
	{
dvander@1627
   303
		ShowActivity2(client, "[SM] ", "%t", "Muted target", "_s", target_name);
dvander@1627
   304
	}
pred@1536
   305
	
pred@1536
   306
	return Plugin_Handled;	
pred@1536
   307
}
pred@1536
   308
pred@1536
   309
public Action:Command_Gag(client, args)
pred@1536
   310
{	
pred@1536
   311
	if (args < 1)
pred@1536
   312
	{
pred@1536
   313
		ReplyToCommand(client, "[SM] Usage: sm_gag <player>");
pred@1536
   314
		return Plugin_Handled;
pred@1536
   315
	}
pred@1536
   316
	
pred@1536
   317
	decl String:arg[64];
pred@1536
   318
	GetCmdArg(1, arg, sizeof(arg));
pred@1536
   319
	
dvander@1627
   320
	decl String:target_name[MAX_TARGET_LENGTH];
dvander@1627
   321
	decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml;
dvander@1627
   322
	
dvander@1627
   323
	if ((target_count = ProcessTargetString(
dvander@1627
   324
			arg,
dvander@1627
   325
			client, 
dvander@1627
   326
			target_list, 
dvander@1627
   327
			MAXPLAYERS, 
dvander@1627
   328
			0,
dvander@1627
   329
			target_name,
dvander@1627
   330
			sizeof(target_name),
dvander@1627
   331
			tn_is_ml)) <= 0)
pred@1536
   332
	{
dvander@1627
   333
		ReplyToTargetError(client, target_count);
pred@1536
   334
		return Plugin_Handled;
pred@1536
   335
	}
pred@1536
   336
dvander@1627
   337
	for (new i = 0; i < target_count; i++)
dvander@1627
   338
	{
dvander@1627
   339
		new target = target_list[i];
dvander@1627
   340
		
dvander@1627
   341
		PerformGag(client, target);
dvander@1627
   342
	}
dvander@1627
   343
	
dvander@1627
   344
	if (tn_is_ml)
dvander@1627
   345
	{
dvander@1627
   346
		ShowActivity2(client, "[SM] ", "%t", "Gagged target", target_name);
dvander@1627
   347
	}
dvander@1627
   348
	else
dvander@1627
   349
	{
dvander@1627
   350
		ShowActivity2(client, "[SM] ", "%t", "Gagged target", "_s", target_name);
dvander@1627
   351
	}
pred@1536
   352
	
pred@1536
   353
	return Plugin_Handled;	
pred@1536
   354
}
pred@1536
   355
pred@1536
   356
public Action:Command_Silence(client, args)
pred@1536
   357
{	
pred@1536
   358
	if (args < 1)
pred@1536
   359
	{
pred@1536
   360
		ReplyToCommand(client, "[SM] Usage: sm_silence <player>");
pred@1536
   361
		return Plugin_Handled;
pred@1536
   362
	}
pred@1536
   363
	
pred@1536
   364
	decl String:arg[64];
pred@1536
   365
	GetCmdArg(1, arg, sizeof(arg));
pred@1536
   366
	
dvander@1627
   367
	decl String:target_name[MAX_TARGET_LENGTH];
dvander@1627
   368
	decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml;
dvander@1627
   369
	
dvander@1627
   370
	if ((target_count = ProcessTargetString(
dvander@1627
   371
			arg,
dvander@1627
   372
			client, 
dvander@1627
   373
			target_list, 
dvander@1627
   374
			MAXPLAYERS, 
dvander@1627
   375
			0,
dvander@1627
   376
			target_name,
dvander@1627
   377
			sizeof(target_name),
dvander@1627
   378
			tn_is_ml)) <= 0)
pred@1536
   379
	{
dvander@1627
   380
		ReplyToTargetError(client, target_count);
pred@1536
   381
		return Plugin_Handled;
pred@1536
   382
	}
pred@1536
   383
dvander@1627
   384
	for (new i = 0; i < target_count; i++)
dvander@1627
   385
	{
dvander@1627
   386
		new target = target_list[i];
dvander@1627
   387
		
dvander@1627
   388
		PerformSilence(client, target);
dvander@1627
   389
	}
dvander@1627
   390
	
dvander@1627
   391
	if (tn_is_ml)
dvander@1627
   392
	{
dvander@1627
   393
		ShowActivity2(client, "[SM] ", "%t", "Silenced target", target_name);
dvander@1627
   394
	}
dvander@1627
   395
	else
dvander@1627
   396
	{
dvander@1627
   397
		ShowActivity2(client, "[SM] ", "%t", "Silenced target", "_s", target_name);
dvander@1627
   398
	}
pred@1536
   399
	
pred@1536
   400
	return Plugin_Handled;	
pred@1536
   401
}
pred@1536
   402
pred@1536
   403
public Action:Command_Unmute(client, args)
pred@1536
   404
{	
pred@1536
   405
	if (args < 1)
pred@1536
   406
	{
pred@1536
   407
		ReplyToCommand(client, "[SM] Usage: sm_unmute <player>");
pred@1536
   408
		return Plugin_Handled;
pred@1536
   409
	}
pred@1536
   410
	
pred@1536
   411
	decl String:arg[64];
pred@1536
   412
	GetCmdArg(1, arg, sizeof(arg));
pred@1536
   413
	
dvander@1627
   414
	decl String:target_name[MAX_TARGET_LENGTH];
dvander@1627
   415
	decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml;
dvander@1627
   416
	
dvander@1627
   417
	if ((target_count = ProcessTargetString(
dvander@1627
   418
			arg,
dvander@1627
   419
			client, 
dvander@1627
   420
			target_list, 
dvander@1627
   421
			MAXPLAYERS, 
dvander@1627
   422
			0,
dvander@1627
   423
			target_name,
dvander@1627
   424
			sizeof(target_name),
dvander@1627
   425
			tn_is_ml)) <= 0)
pred@1536
   426
	{
dvander@1627
   427
		ReplyToTargetError(client, target_count);
pred@1536
   428
		return Plugin_Handled;
pred@1536
   429
	}
pred@1536
   430
dvander@1627
   431
	for (new i = 0; i < target_count; i++)
dvander@1627
   432
	{
dvander@1627
   433
		new target = target_list[i];
dvander@1627
   434
		
dvander@1659
   435
		if (!g_Muted[target])
dvander@1627
   436
		{
dvander@1627
   437
			continue;
dvander@1627
   438
		}
dvander@1627
   439
		
dvander@1627
   440
		PerformUnMute(client, target);
dvander@1627
   441
	}
dvander@1627
   442
	
dvander@1627
   443
	if (tn_is_ml)
dvander@1627
   444
	{
dvander@1627
   445
		ShowActivity2(client, "[SM] ", "%t", "Unmuted target", target_name);
dvander@1627
   446
	}
dvander@1627
   447
	else
dvander@1627
   448
	{
dvander@1627
   449
		ShowActivity2(client, "[SM] ", "%t", "Unmuted target", "_s", target_name);
dvander@1627
   450
	}
pred@1536
   451
	
pred@1536
   452
	return Plugin_Handled;	
pred@1536
   453
}
pred@1536
   454
pred@1536
   455
public Action:Command_Ungag(client, args)
pred@1536
   456
{	
pred@1536
   457
	if (args < 1)
pred@1536
   458
	{
pred@1536
   459
		ReplyToCommand(client, "[SM] Usage: sm_ungag <player>");
pred@1536
   460
		return Plugin_Handled;
pred@1536
   461
	}
pred@1536
   462
	
pred@1536
   463
	decl String:arg[64];
pred@1536
   464
	GetCmdArg(1, arg, sizeof(arg));
pred@1536
   465
	
dvander@1627
   466
	decl String:target_name[MAX_TARGET_LENGTH];
dvander@1627
   467
	decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml;
dvander@1627
   468
	
dvander@1627
   469
	if ((target_count = ProcessTargetString(
dvander@1627
   470
			arg,
dvander@1627
   471
			client, 
dvander@1627
   472
			target_list, 
dvander@1627
   473
			MAXPLAYERS, 
dvander@1627
   474
			0,
dvander@1627
   475
			target_name,
dvander@1627
   476
			sizeof(target_name),
dvander@1627
   477
			tn_is_ml)) <= 0)
pred@1536
   478
	{
dvander@1627
   479
		ReplyToTargetError(client, target_count);
pred@1536
   480
		return Plugin_Handled;
pred@1536
   481
	}
pred@1536
   482
dvander@1627
   483
	for (new i = 0; i < target_count; i++)
dvander@1627
   484
	{
dvander@1627
   485
		new target = target_list[i];
dvander@1627
   486
		
dvander@1627
   487
		PerformUnGag(client, target);
dvander@1627
   488
	}
dvander@1627
   489
	
dvander@1627
   490
	if (tn_is_ml)
dvander@1627
   491
	{
dvander@1627
   492
		ShowActivity2(client, "[SM] ", "%t", "Ungagged target", target_name);
dvander@1627
   493
	}
dvander@1627
   494
	else
dvander@1627
   495
	{
dvander@1627
   496
		ShowActivity2(client, "[SM] ", "%t", "Ungagged target", "_s", target_name);
dvander@1627
   497
	}
pred@1536
   498
	
pred@1536
   499
	return Plugin_Handled;	
pred@1536
   500
}
pred@1536
   501
pred@1536
   502
public Action:Command_Unsilence(client, args)
pred@1536
   503
{	
pred@1536
   504
	if (args < 1)
pred@1536
   505
	{
pred@1536
   506
		ReplyToCommand(client, "[SM] Usage: sm_unsilence <player>");
pred@1536
   507
		return Plugin_Handled;
pred@1536
   508
	}
pred@1536
   509
	
pred@1536
   510
	decl String:arg[64];
pred@1536
   511
	GetCmdArg(1, arg, sizeof(arg));
pred@1536
   512
	
dvander@1627
   513
	decl String:target_name[MAX_TARGET_LENGTH];
dvander@1627
   514
	decl target_list[MAXPLAYERS], target_count, bool:tn_is_ml;
dvander@1627
   515
	
dvander@1627
   516
	if ((target_count = ProcessTargetString(
dvander@1627
   517
			arg,
dvander@1627
   518
			client, 
dvander@1627
   519
			target_list, 
dvander@1627
   520
			MAXPLAYERS, 
dvander@1627
   521
			0,
dvander@1627
   522
			target_name,
dvander@1627
   523
			sizeof(target_name),
dvander@1627
   524
			tn_is_ml)) <= 0)
pred@1536
   525
	{
dvander@1627
   526
		ReplyToTargetError(client, target_count);
pred@1536
   527
		return Plugin_Handled;
pred@1536
   528
	}
pred@1536
   529
dvander@1627
   530
	for (new i = 0; i < target_count; i++)
dvander@1627
   531
	{
dvander@1627
   532
		new target = target_list[i];
dvander@1627
   533
		
dvander@1627
   534
		PerformUnSilence(client, target);
dvander@1627
   535
	}
dvander@1627
   536
	
dvander@1627
   537
	if (tn_is_ml)
dvander@1627
   538
	{
dvander@1627
   539
		ShowActivity2(client, "[SM] ", "%t", "Unsilenced target", target_name);
dvander@1627
   540
	}
dvander@1627
   541
	else
dvander@1627
   542
	{
dvander@1627
   543
		ShowActivity2(client, "[SM] ", "%t", "Unsilenced target", "_s", target_name);
dvander@1627
   544
	}
pred@1536
   545
	
pred@1536
   546
	return Plugin_Handled;	
dvander@1627
   547
}