From ffd72fbb4d2761577f5fa6b110d6cb4c22792f3f Mon Sep 17 00:00:00 2001 From: Fyren Date: Mon, 27 Jul 2009 17:02:04 -0700 Subject: [PATCH] Improve non-admin to admin chat (bug 3844, r=pred) --- plugins/basechat.sp | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/plugins/basechat.sp b/plugins/basechat.sp index 847ec942..63efb520 100644 --- a/plugins/basechat.sp +++ b/plugins/basechat.sp @@ -190,10 +190,7 @@ public Action:Command_SayAdmin(client, args) decl String:message[192]; strcopy(message, 192, text[startidx+1]); - decl String:name[64]; - GetClientName(client, name, sizeof(name)); - - SendChatToAdmins(name, message); + SendChatToAdmins(client, message); LogAction(client, -1, "%L triggered sm_chat (text %s)", client, message); return Plugin_Handled; @@ -313,10 +310,7 @@ public Action:Command_SmChat(client, args) decl String:text[192]; GetCmdArgString(text, sizeof(text)); - decl String:name[64]; - GetClientName(client, name, sizeof(name)); - - SendChatToAdmins(name, text); + SendChatToAdmins(client, text); LogAction(client, -1, "%L triggered sm_chat (text %s)", client, text); return Plugin_Handled; @@ -451,22 +445,20 @@ DisplayCenterTextToAll(client, String:message[]) } } -SendChatToAdmins(String:name[], String:message[]) +SendChatToAdmins(from, String:message[]) { + new fromAdmin = CheckCommandAccess(from, "sm_chat", ADMFLAG_CHAT); for (new i = 1; i <= MaxClients; i++) { - if (IsClientInGame(i)) + if (IsClientInGame(i) && (from == i || CheckCommandAccess(i, "sm_chat", ADMFLAG_CHAT))) { - if (CheckCommandAccess(i, "sm_chat", ADMFLAG_CHAT)) + if (g_DoColor) { - if (g_DoColor) - { - PrintToChat(i, "\x04(ADMINS) %s: \x01%s", name, message); - } - else - { - PrintToChat(i, "(ADMINS) %s: %s", name, message); - } + PrintToChat(i, "\x04(%sADMINS) %N: \x01%s", fromAdmin ? "" : "TO ", from, message); + } + else + { + PrintToChat(i, "(%sADMINS) %N: %s", fromAdmin ? "" : "TO ", from, message); } } }