You probably wanna use steamworks. To get player name you wanna get "personaname" from this http request:
http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v1/?key=<inserturapikey>&format=vdf&steamids=<in sertsteamid64>
Heres some example code I did some time ago to print ban status when he connects. Just do kv.GetString("personaname", buffer, sizeof(buffer)) in SummaryGetHTTPRequest callback.
PHP Code:
#pragma semicolon 1
#define DEBUG
#define PLUGIN_AUTHOR "Rachnus"
#define PLUGIN_VERSION "1.00"
#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <SteamWorks>
#pragma newdecls required
int g_iVisibility[MAXPLAYERS + 1];
char g_iTradeBan[MAXPLAYERS + 1][32];
bool g_bCallback1 = false;
bool g_bCallback2 = false;
public Plugin myinfo =
{
name = "Connection Info",
author = PLUGIN_AUTHOR,
description = "Displays players information on connect",
version = PLUGIN_VERSION,
url = "https://github.com/Rachnus"
};
public void OnPluginStart()
{
RegConsoleCmd("sm_test", Command_Test);
}
public Action Command_Test(int client, int args)
{
PrintConnectionInfo(client);
}
public void OnClientDisconnect(int client)
{
g_iVisibility[client] = 0;
}
public void OnClientAuthorized(int client, const char[] auth)
{
PrintToChatAll("test");
char authid[64];
GetClientAuthId(client, AuthId_SteamID64, authid, sizeof(authid));
Handle SummaryHTTPRequest = SteamWorks_CreateHTTPRequest(k_EHTTPMethodGET, "https://api.steampowered.com/ISteamUser/GetPlayerSummaries/v2/?");
Handle VacHTTPRequest = SteamWorks_CreateHTTPRequest(k_EHTTPMethodGET, "https://api.steampowered.com/ISteamUser/GetPlayerBans/v1/?");
SteamWorks_SetHTTPRequestNetworkActivityTimeout(SummaryHTTPRequest, 10);
SteamWorks_SetHTTPRequestNetworkActivityTimeout(VacHTTPRequest, 10);
SteamWorks_SetHTTPRequestGetOrPostParameter(SummaryHTTPRequest, "key", ""); //Insert ur steam api key
SteamWorks_SetHTTPRequestGetOrPostParameter(SummaryHTTPRequest, "format", "vdf");
SteamWorks_SetHTTPRequestGetOrPostParameter(SummaryHTTPRequest, "steamids", authid);
SteamWorks_SetHTTPRequestGetOrPostParameter(VacHTTPRequest, "key", "");//Insert ur steam api key
SteamWorks_SetHTTPRequestGetOrPostParameter(VacHTTPRequest, "format", "vdf");
SteamWorks_SetHTTPRequestGetOrPostParameter(VacHTTPRequest, "steamids", authid);
SteamWorks_SetHTTPRequestContextValue(SummaryHTTPRequest, GetClientUserId(client));
SteamWorks_SetHTTPRequestContextValue(VacHTTPRequest, GetClientUserId(client));
SteamWorks_SetHTTPCallbacks(SummaryHTTPRequest, SummaryGetHTTPRequest);
SteamWorks_SetHTTPCallbacks(VacHTTPRequest, VacGetHTTPRequest);
SteamWorks_SendHTTPRequest(SummaryHTTPRequest);
SteamWorks_SendHTTPRequest(VacHTTPRequest);
SteamWorks_PrioritizeHTTPRequest(SummaryHTTPRequest);
SteamWorks_PrioritizeHTTPRequest(VacHTTPRequest);
}
void PrintConnectionInfo(int client)
{
char authid[64];
GetClientAuthId(client, AuthId_SteamID64, authid, sizeof(authid));
char connectionString[256];
char clientName[MAX_NAME_LENGTH];
GetClientName(client, clientName, sizeof(clientName));
Format(connectionString, sizeof(connectionString), "%s has connected [%s] [Profile: %s Trade Ban: %s]", clientName, authid, (g_iVisibility[client] == 3) ? "Public" : "Private", (StrEqual(g_iTradeBan[client], "none", false)) ? "Clean" : "Banned");
PrintToChatAll("%s", connectionString);
PrintToServer("%s", connectionString);
PrintToServer("VISIBILITY %d TRADE BAN %s", g_iVisibility[client], g_iTradeBan[client]);
}
public int SummaryGetHTTPRequest(Handle hRequest, bool bFailure, bool bRequestSuccessful, EHTTPStatusCode eStatusCode, any data1)
{
if(!bRequestSuccessful)
{
CloseHandle(hRequest);
return;
}
int client = GetClientOfUserId(data1);
if(client > 0)
{
char steamcid[32];
SteamWorks_GetClientSteamID(client, steamcid, sizeof(steamcid));
int bodyBufferSize;
SteamWorks_GetHTTPResponseBodySize(hRequest, bodyBufferSize);
char[] bodyBuffer2 = new char[bodyBufferSize];
bool bodyData = SteamWorks_GetHTTPResponseBodyData(hRequest, bodyBuffer2, bodyBufferSize);
// Could not get body data or body data is blank
if(bodyData == false)
{
CloseHandle(hRequest);
return;
}
CloseHandle(hRequest);
KeyValues kv = new KeyValues("PlayerVac");
kv.ImportFromString(bodyBuffer2, "bodyBuffer2");
if(!kv.JumpToKey("players"))
return;
if(kv.GotoFirstSubKey())
{
g_iVisibility[client] = kv.GetNum("communityvisibilitystate");
PrintToServer("GOTO FIRST SUB");
}
char buffername[64];
kv.GetSectionName(buffername, sizeof(buffername));
PrintToServer("BUFFERNAME %s", buffername);
PrintToServer("VISIBILITY %d", g_iVisibility[client]);
kv.Rewind();
kv.ExportToFile("testing1");
g_bCallback1 = true;
if(g_bCallback1 && g_bCallback2)
{
g_bCallback1 = false;
g_bCallback2 = false;
PrintConnectionInfo(client);
}
}
else
CloseHandle(hRequest);
}
public int VacGetHTTPRequest(Handle hRequest, bool bFailure, bool bRequestSuccessful, EHTTPStatusCode eStatusCode, any data1)
{
if(!bRequestSuccessful)
{
CloseHandle(hRequest);
return;
}
int client = GetClientOfUserId(data1);
if(client > 0)
{
char steamcid[32];
SteamWorks_GetClientSteamID(client, steamcid, sizeof(steamcid));
int bodyBufferSize;
SteamWorks_GetHTTPResponseBodySize(hRequest, bodyBufferSize);
char[] bodyBuffer = new char[bodyBufferSize];
bool bodyData = SteamWorks_GetHTTPResponseBodyData(hRequest, bodyBuffer, bodyBufferSize);
// Could not get body data or body data is blank
if(bodyData == false)
{
CloseHandle(hRequest);
return;
}
CloseHandle(hRequest);
KeyValues kv = new KeyValues("PlayerStatus");
kv.ImportFromString(bodyBuffer, "bodyBuffer");
if(!kv.JumpToKey("players"))
return;
if(kv.GotoFirstSubKey())
kv.GetString("EconomyBan", g_iTradeBan[client], 32);
g_bCallback2 = true;
if(g_bCallback1 && g_bCallback2)
{
g_bCallback1 = false;
g_bCallback2 = false;
PrintConnectionInfo(client);
}
//kv.ExportToFile("testing2");
}
else
CloseHandle(hRequest);
}