Fixed CPlayer init, it was called too early.
nothing important on the logger
1 #include "CPlayerManager.h"
3 static cell_t sm_GetClientCount(IPluginContext *pCtx, const cell_t *params)
7 return g_PlayerManager.GetPlayerCount();
10 int maxplayers = g_PlayerManager.GetMaxClients();
12 for (int i=1; i<=maxplayers; ++i)
14 CPlayer *pPlayer = g_PlayerManager.GetPlayerByIndex(i);
15 if ((pPlayer->IsPlayerConnected()) && !(pPlayer->IsPlayerInGame()))
21 return (g_PlayerManager.GetPlayerCount() + count);
24 static cell_t sm_GetMaxClients(IPluginContext *pCtx, const cell_t *params)
26 return g_PlayerManager.GetMaxClients();
29 static cell_t sm_GetClientName(IPluginContext *pCtx, const cell_t *params)
31 int index = params[1];
32 if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
34 return pCtx->ThrowNativeError("Invalid client index %d.", index);
37 CPlayer *pPlayer = g_PlayerManager.GetPlayerByIndex(index);
38 if (!pPlayer->IsPlayerConnected())
40 return pCtx->ThrowNativeError("Client %d is not connected.", index);
43 pCtx->StringToLocalUTF8(params[2], static_cast<size_t>(params[3]), pPlayer->PlayerName(), NULL);
47 static cell_t sm_GetClientIP(IPluginContext *pCtx, const cell_t *params)
49 int index = params[1];
50 if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
52 return pCtx->ThrowNativeError("Invalid client index %d.", index);
55 CPlayer *pPlayer = g_PlayerManager.GetPlayerByIndex(index);
56 if (!pPlayer->IsPlayerConnected())
58 return pCtx->ThrowNativeError("Client %d is not connected.", index);
61 pCtx->StringToLocal(params[2], static_cast<size_t>(params[3]), pPlayer->PlayerIP());
65 static cell_t sm_GetClientAuthStr(IPluginContext *pCtx, const cell_t *params)
67 int index = params[1];
68 if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
70 return pCtx->ThrowNativeError("Invalid client index %d.", index);
73 CPlayer *pPlayer = g_PlayerManager.GetPlayerByIndex(index);
74 if (!pPlayer->IsPlayerConnected())
76 return pCtx->ThrowNativeError("Client %d is not connected.", index);
79 pCtx->StringToLocal(params[2], static_cast<size_t>(params[3]), pPlayer->PlayerAuthString());
83 static cell_t sm_IsPlayerConnected(IPluginContext *pCtx, const cell_t *params)
85 int index = params[1];
86 if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
88 return pCtx->ThrowNativeError("Invalid client index %d.", index);
91 return (g_PlayerManager.GetPlayerByIndex(index)->IsPlayerConnected()) ? 1 : 0;
94 static cell_t sm_IsPlayerIngame(IPluginContext *pCtx, const cell_t *params)
96 int index = params[1];
97 if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
99 return pCtx->ThrowNativeError("Invalid client index %d.", index);
102 return (g_PlayerManager.GetPlayerByIndex(index)->IsPlayerInGame()) ? 1 : 0;
105 static cell_t sm_IsPlayerAuthorized(IPluginContext *pCtx, const cell_t *params)
107 int index = params[1];
108 if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
110 return pCtx->ThrowNativeError("Invalid client index %d.", index);
113 return (g_PlayerManager.GetPlayerByIndex(index)->IsPlayerAuthorized()) ? 1 : 0;
116 static cell_t sm_IsPlayerFakeClient(IPluginContext *pCtx, const cell_t *params)
118 int index = params[1];
119 if ((index < 1) || (index > g_PlayerManager.GetMaxClients()))
121 return pCtx->ThrowNativeError("Invalid client index %d.", index);
124 CPlayer *pPlayer = g_PlayerManager.GetPlayerByIndex(index);
125 if (!pPlayer->IsPlayerConnected())
127 return pCtx->ThrowNativeError("Client %d is not connected.", index);
130 return (pPlayer->IsPlayerFakeClient()) ? 1 : 0;
133 REGISTER_NATIVES(playernatives)
135 {"GetMaxClients", sm_GetMaxClients},
136 {"GetClientCount", sm_GetClientCount},
137 {"GetClientName", sm_GetClientName},
138 {"GetClientIP", sm_GetClientIP},
139 {"GetClientAuthString", sm_GetClientAuthStr},
140 {"IsPlayerConnected", sm_IsPlayerConnected},
141 {"IsPlayerInGame", sm_IsPlayerIngame},
142 {"IsPlayerAuthorized", sm_IsPlayerAuthorized},
143 {"IsPlayerFakeClient", sm_IsPlayerFakeClient},