Merge branch 'master' of http://git.unloze.com/UNLOZE/sm-plugins-unloze
This commit is contained in:
		
						commit
						9160564c8e
					
				| @ -1,10 +1,10 @@ | |||||||
| #pragma semicolon 1 | #pragma semicolon 1 | ||||||
| 
 | 
 | ||||||
| #include <sourcemod> | #include <sourcemod> | ||||||
| #include <connect> |  | ||||||
| #include <geoip> | #include <geoip> | ||||||
| #include <multicolors> | #include <multicolors> | ||||||
| #include <clientprefs> | #include <clientprefs> | ||||||
|  | #include <RevEmuAPI> | ||||||
| 
 | 
 | ||||||
| #pragma newdecls required | #pragma newdecls required | ||||||
| 
 | 
 | ||||||
| @ -19,6 +19,8 @@ Handle g_hCustomMessageFile2; | |||||||
| bool g_bHideCsays[MAXPLAYERS + 1] = { false, ... }; | bool g_bHideCsays[MAXPLAYERS + 1] = { false, ... }; | ||||||
| Handle g_hCookieHideCsays = null; | Handle g_hCookieHideCsays = null; | ||||||
| 
 | 
 | ||||||
|  | ConVar g_cvHlstatsServerName; | ||||||
|  | 
 | ||||||
| #define MSGLENGTH 100 | #define MSGLENGTH 100 | ||||||
| 
 | 
 | ||||||
| //---------------------------------------------------------------------------------------------------- | //---------------------------------------------------------------------------------------------------- | ||||||
| @ -37,20 +39,13 @@ public Plugin myinfo = { | |||||||
| //---------------------------------------------------------------------------------------------------- | //---------------------------------------------------------------------------------------------------- | ||||||
| public void OnPluginStart() | public void OnPluginStart() | ||||||
| { | { | ||||||
|  | 	g_cvHlstatsServerName = CreateConVar("sm_connectannounce_hlstats_server_name", "css-ze", "Hlstats server name to check the rank for"); | ||||||
|  | 	AutoExecConfig(true); | ||||||
|  | 
 | ||||||
| 	BuildPath(Path_SM, g_sCustomMessageFile, sizeof(g_sCustomMessageFile), "configs/connect_announce/custom-messages.cfg"); | 	BuildPath(Path_SM, g_sCustomMessageFile, sizeof(g_sCustomMessageFile), "configs/connect_announce/custom-messages.cfg"); | ||||||
| 	BuildPath(Path_SM, g_sDataFile, sizeof(g_sDataFile), "configs/connect_announce/settings.cfg"); | 	BuildPath(Path_SM, g_sDataFile, sizeof(g_sDataFile), "configs/connect_announce/settings.cfg"); | ||||||
| 
 | 
 | ||||||
| 	char error[255]; | 	Database.Connect(OnDatabaseConnect, "hlstatsx"); | ||||||
| 
 |  | ||||||
| 	if (SQL_CheckConfig("hlstatsx")) |  | ||||||
| 	{ |  | ||||||
| 		g_hDatabase = SQL_Connect("hlstatsx", true, error, sizeof(error)); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	if (g_hDatabase == null) |  | ||||||
| 	{ |  | ||||||
| 		LogError("Could not connect to database: %s", error); |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	RegAdminCmd("sm_joinmsg", Command_JoinMsg, ADMFLAG_CUSTOM1, "Sets a custom message which will be shown upon connecting to the server"); | 	RegAdminCmd("sm_joinmsg", Command_JoinMsg, ADMFLAG_CUSTOM1, "Sets a custom message which will be shown upon connecting to the server"); | ||||||
| 	RegAdminCmd("sm_resetjoinmsg", Command_ResetJoinMsg, ADMFLAG_CUSTOM1, "Resets your custom connect message"); | 	RegAdminCmd("sm_resetjoinmsg", Command_ResetJoinMsg, ADMFLAG_CUSTOM1, "Resets your custom connect message"); | ||||||
| @ -62,6 +57,20 @@ public void OnPluginStart() | |||||||
| 	SetCookieMenuItem(MenuHandler_CookieMenu, 0, "Hide Connect Csays"); | 	SetCookieMenuItem(MenuHandler_CookieMenu, 0, "Hide Connect Csays"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | //---------------------------------------------------------------------------------------------------- | ||||||
|  | // Purpose: | ||||||
|  | //---------------------------------------------------------------------------------------------------- | ||||||
|  | public void OnDatabaseConnect(Database db, const char[] error, any data) | ||||||
|  | { | ||||||
|  | 	if(db == INVALID_HANDLE || strlen(error) > 0) | ||||||
|  | 	{ | ||||||
|  | 		LogError("Error connecting to database: %s", error); | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	g_hDatabase = db; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| //---------------------------------------------------------------------------------------------------- | //---------------------------------------------------------------------------------------------------- | ||||||
| // Purpose: | // Purpose: | ||||||
| //---------------------------------------------------------------------------------------------------- | //---------------------------------------------------------------------------------------------------- | ||||||
| @ -228,6 +237,7 @@ public Action Command_JoinMsg(int client, int args) | |||||||
| 			return Plugin_Handled; | 			return Plugin_Handled; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | 		StripQuotes(sArg); | ||||||
| 
 | 
 | ||||||
| 		if (KvJumpToKey(g_hCustomMessageFile, sAuth, true)) | 		if (KvJumpToKey(g_hCustomMessageFile, sAuth, true)) | ||||||
| 			KvSetString(g_hCustomMessageFile, "message", sArg); | 			KvSetString(g_hCustomMessageFile, "message", sArg); | ||||||
| @ -365,7 +375,7 @@ public void TQueryCB(Handle owner, Handle rs, const char[] error, any data) | |||||||
| 
 | 
 | ||||||
| 	if(StrContains(sRawMsg, "{NOSTEAM}")) | 	if(StrContains(sRawMsg, "{NOSTEAM}")) | ||||||
| 	{ | 	{ | ||||||
| 		if(!SteamClientAuthenticated(sAuth)) | 		if(!RevEmu_IsPlayerSteam(client)) | ||||||
| 			ReplaceString(sRawMsg, sizeof(sRawMsg), "{NOSTEAM}", " <NoSteam>"); | 			ReplaceString(sRawMsg, sizeof(sRawMsg), "{NOSTEAM}", " <NoSteam>"); | ||||||
| 		else | 		else | ||||||
| 			ReplaceString(sRawMsg, sizeof(sRawMsg), "{NOSTEAM}", ""); | 			ReplaceString(sRawMsg, sizeof(sRawMsg), "{NOSTEAM}", ""); | ||||||
| @ -467,12 +477,18 @@ public void OnClientPostAdminCheck(int client) | |||||||
| 	if(IsFakeClient(client)) | 	if(IsFakeClient(client)) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
|  | 	if(g_hDatabase == INVALID_HANDLE) | ||||||
|  | 			return; | ||||||
|  | 
 | ||||||
| 	static char sAuth[32]; | 	static char sAuth[32]; | ||||||
| 
 | 
 | ||||||
| 	GetClientAuthId(client, AuthId_Steam2, sAuth, sizeof(sAuth)); | 	GetClientAuthId(client, AuthId_Steam2, sAuth, sizeof(sAuth)); | ||||||
| 	strcopy(sAuth, sizeof(sAuth), sAuth[8]); | 	strcopy(sAuth, sizeof(sAuth), sAuth[8]); | ||||||
| 
 | 
 | ||||||
|  | 	char sServer[16]; | ||||||
|  | 	g_cvHlstatsServerName.GetString(sServer, sizeof(sServer)); | ||||||
|  | 
 | ||||||
| 	char sQuery[512]; | 	char sQuery[512]; | ||||||
| 	Format(sQuery, sizeof(sQuery), "SELECT COUNT(*) AS rank FROM hlstats_Players WHERE hlstats_Players.game = 'css-ze' AND hideranking = 0 AND skill > (SELECT skill from hlstats_Players JOIN hlstats_PlayerUniqueIds ON hlstats_Players.playerId = hlstats_PlayerUniqueIds.playerId WHERE uniqueId = '%s' AND hlstats_PlayerUniqueIds.game = 'css-ze')", sAuth); | 	Format(sQuery, sizeof(sQuery), "SELECT COUNT(*) AS rank FROM hlstats_Players WHERE hlstats_Players.game = '%s' AND hideranking = 0 AND skill > (SELECT skill from hlstats_Players JOIN hlstats_PlayerUniqueIds ON hlstats_Players.playerId = hlstats_PlayerUniqueIds.playerId WHERE uniqueId = '%s' AND hlstats_PlayerUniqueIds.game = '%s')", sServer, sAuth, sServer); | ||||||
| 	SQL_TQuery(g_hDatabase, TQueryCB, sQuery, GetClientUserId(client)); | 	g_hDatabase.Query(TQueryCB, sQuery, GetClientUserId(client)); | ||||||
| } | } | ||||||
| @ -60,7 +60,7 @@ public void OnDatabaseConnect(Database db, const char[] error, any data) | |||||||
| 	if(db == INVALID_HANDLE || strlen(error) > 0) | 	if(db == INVALID_HANDLE || strlen(error) > 0) | ||||||
| 	{ | 	{ | ||||||
| 		LogError("Error connecting to database: %s", error); | 		LogError("Error connecting to database: %s", error); | ||||||
| 		SetFailState("Error connecting to database. Reconnecting on map change."); | 		return; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	g_hDatabaseAntiSpoofing = db; | 	g_hDatabaseAntiSpoofing = db; | ||||||
| @ -82,7 +82,7 @@ public Action Command_DisplaySteamStats(int client, int args) | |||||||
| 	{ | 	{ | ||||||
| 		if(IsClientInGame(i) && !IsFakeClient(i)) | 		if(IsClientInGame(i) && !IsFakeClient(i)) | ||||||
| 		{ | 		{ | ||||||
| 			if(!IsSteam(i)) | 			if(!RevEmu_IsPlayerSteam(i)) | ||||||
| 			{ | 			{ | ||||||
| 				GetClientName(i, aBuf2, sizeof(aBuf2)); | 				GetClientName(i, aBuf2, sizeof(aBuf2)); | ||||||
| 				StrCat(aBuf, sizeof(aBuf), aBuf2); | 				StrCat(aBuf, sizeof(aBuf), aBuf2); | ||||||
| @ -101,7 +101,7 @@ public Action Command_DisplaySteamStats(int client, int args) | |||||||
| 			aBuf = "##################################################\n"; | 			aBuf = "##################################################\n"; | ||||||
| 			for(int i = 1; i <= MaxClients; i++) | 			for(int i = 1; i <= MaxClients; i++) | ||||||
| 			{ | 			{ | ||||||
| 				if(IsClientInGame(i) && !IsFakeClient(i) && !IsSteam(i)) | 				if(IsClientInGame(i) && !IsFakeClient(i) && !RevEmu_IsPlayerSteam(i)) | ||||||
| 				{ | 				{ | ||||||
| 					char sConnectionType[32]; | 					char sConnectionType[32]; | ||||||
| 					GetConnectionType(i, sConnectionType, sizeof(sConnectionType)); | 					GetConnectionType(i, sConnectionType, sizeof(sConnectionType)); | ||||||
| @ -133,7 +133,7 @@ public bool Filter_Steam(const char[] sPattern, Handle hClients) | |||||||
| 	{ | 	{ | ||||||
| 		if(IsClientInGame(i) && !IsFakeClient(i)) | 		if(IsClientInGame(i) && !IsFakeClient(i)) | ||||||
| 		{ | 		{ | ||||||
| 			if(IsSteam(i)) | 			if(RevEmu_IsPlayerSteam(i)) | ||||||
| 				PushArrayCell(hClients, i); | 				PushArrayCell(hClients, i); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @ -149,7 +149,7 @@ public bool Filter_NoSteam(const char[] sPattern, Handle hClients) | |||||||
| 	{ | 	{ | ||||||
| 		if(IsClientInGame(i) && !IsFakeClient(i)) | 		if(IsClientInGame(i) && !IsFakeClient(i)) | ||||||
| 		{ | 		{ | ||||||
| 			if(!IsSteam(i)) | 			if(!RevEmu_IsPlayerSteam(i)) | ||||||
| 				PushArrayCell(hClients, i); | 				PushArrayCell(hClients, i); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| @ -170,7 +170,7 @@ public Action OnClientPreAdminCheck(int client) | |||||||
| 	char sSteamID[32]; | 	char sSteamID[32]; | ||||||
| 	GetClientAuthId(client, AuthId_Steam2, sSteamID, sizeof(sSteamID)); | 	GetClientAuthId(client, AuthId_Steam2, sSteamID, sizeof(sSteamID)); | ||||||
| 
 | 
 | ||||||
| 	if(!IsSteam(client)) | 	if(!RevEmu_IsPlayerSteam(client)) | ||||||
| 	{ | 	{ | ||||||
| 		char sConnectionType[32]; | 		char sConnectionType[32]; | ||||||
| 		GetConnectionType(client, sConnectionType, sizeof(sConnectionType)); | 		GetConnectionType(client, sConnectionType, sizeof(sConnectionType)); | ||||||
| @ -206,7 +206,7 @@ public void OnClientPostAdminCheck(int client) | |||||||
| 	if(IsFakeClient(client) || IsClientSourceTV(client)) | 	if(IsFakeClient(client) || IsClientSourceTV(client)) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	if(!IsSteam(client)) | 	if(!RevEmu_IsPlayerSteam(client)) | ||||||
| 	{ | 	{ | ||||||
| 		LogMessage("%L was not authenticated with steam, muting client.", client); | 		LogMessage("%L was not authenticated with steam, muting client.", client); | ||||||
| 		BaseComm_SetClientMute(client, true); | 		BaseComm_SetClientMute(client, true); | ||||||
| @ -224,6 +224,12 @@ public void TQueryCB(Database db, DBResultSet results, const char[] error, any d | |||||||
| 	if ((client = GetClientOfUserId(data)) == 0) | 	if ((client = GetClientOfUserId(data)) == 0) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
|  | 	if(db == INVALID_HANDLE || strlen(error) > 0) | ||||||
|  | 	{ | ||||||
|  | 		LogError("SQL query errors: %s", error); | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	char sSteamID[32]; | 	char sSteamID[32]; | ||||||
| 	GetClientAuthId(client, AuthId_Steam2, sSteamID, sizeof(sSteamID)); | 	GetClientAuthId(client, AuthId_Steam2, sSteamID, sizeof(sSteamID)); | ||||||
| 
 | 
 | ||||||
| @ -276,7 +282,7 @@ public void GetConnectionType(int client, char[] sConnectionType, int iMaxLength | |||||||
| 	char sConnectionTypeInternal[32]; | 	char sConnectionTypeInternal[32]; | ||||||
| 
 | 
 | ||||||
| 	RevEmu_UserType PlayerType = RevEmu_GetPlayerType(client); | 	RevEmu_UserType PlayerType = RevEmu_GetPlayerType(client); | ||||||
| 	if (PlayerType == Unknown) | 	if (PlayerType == Invalid) | ||||||
| 		sConnectionTypeInternal = "Error"; | 		sConnectionTypeInternal = "Error"; | ||||||
| 	else if (PlayerType == SteamLegitUser) | 	else if (PlayerType == SteamLegitUser) | ||||||
| 		sConnectionTypeInternal = "SteamLegit"; | 		sConnectionTypeInternal = "SteamLegit"; | ||||||
| @ -302,14 +308,6 @@ public void GetConnectionType(int client, char[] sConnectionType, int iMaxLength | |||||||
| 	strcopy(sConnectionType, iMaxLength, sConnectionTypeInternal); | 	strcopy(sConnectionType, iMaxLength, sConnectionTypeInternal); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| //---------------------------------------------------------------------------------------------------- |  | ||||||
| // Purpose: |  | ||||||
| //---------------------------------------------------------------------------------------------------- |  | ||||||
| public bool IsSteam(int client) |  | ||||||
| { |  | ||||||
| 	return (RevEmu_GetPlayerType(client) == SteamLegitUser); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| //---------------------------------------------------------------------------------------------------- | //---------------------------------------------------------------------------------------------------- | ||||||
| // Purpose: | // Purpose: | ||||||
| //---------------------------------------------------------------------------------------------------- | //---------------------------------------------------------------------------------------------------- | ||||||
| @ -318,6 +316,6 @@ public void SQL_DoNothing(Database db, DBResultSet results, const char[] error, | |||||||
| 	if(db == INVALID_HANDLE || strlen(error) > 0) | 	if(db == INVALID_HANDLE || strlen(error) > 0) | ||||||
| 	{ | 	{ | ||||||
| 		LogError("SQL query errors: %s", error); | 		LogError("SQL query errors: %s", error); | ||||||
| 		SetFailState("Lost connection to database. Reconnecting on map change."); | 		return; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user