plane/test.sp

208 lines
5.3 KiB
SourcePawn
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <sourcemod>
#include <clients>
#include <cstrike>
#include <sdktools>
#include "socket.inc"
#define MY_SOCKET_IP "localhost"
#define MY_SOCKET_PORT 3500
#define STEAMID_LENGTH 128
char teamCT[6][150];
char teamT[6][150];
char authorised[20][128];
char clientId[128];
public Plugin myinfo =
{
name = "InfoLan 2021 Bot",
author = "rick@gnous.eu",
description = "Bot communiquant avec le bot discord \
https://github.com/Lunki51/cs-picker afin dautomatiser \
lInfoLan 2021",
version = "1.3",
url = "https://git.gnous.eu/Rick/infolanBot"
};
//public void OnClientAuthorized(int client, const char[] auth)
public void SuperTest(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
PrintToServer("=============================");
bool allGood = GetClientAuthId(client, AuthId_SteamID64, clientId, sizeof(clientId));
PrintToServer("Mon ID : %s", clientId);
if (!strcmp(clientId, "BOT", false))
{
return ;
}
if (!allGood)
{
PrintToServer("Erreur Fatale !");
}
else
{
PrintToServer("== ID OK ==");
allGood = false;
int i = 1;
while (!allGood && i < sizeof(teamCT))
{
if (!strcmp(teamCT[i], clientId, false))
{
ChangeClientTeam(client, CS_TEAM_CT);
CS_SetClientClanTag(client, teamCT[0]);
allGood = true;
PrintToServer("Team CT");
CS_RespawnPlayer(client);
}
else if (!strcmp(teamT[i], clientId, false))
{
ChangeClientTeam(client, CS_TEAM_T);
CS_SetClientClanTag(client, teamT[0]);
PrintToServer("Team T");
allGood = true;
CS_RespawnPlayer(client);
}
i++;
}
if (!allGood)
{
i = 0;
while (!allGood && i < sizeof(authorised))
{
PrintToServer(authorised[i]);
if (!strcmp(authorised[i], clientId, false))
{
allGood = true;
ChangeClientTeam(client, CS_TEAM_SPECTATOR);
}
i++;
}
if (!allGood)
{
KickClient(client, "Vous nêtes pas autorisé à suivre / jouer \
sur ce serveur");
}
// check si casteur ou admin
// sinon ban
}
}
}
/*
* !team
*
*
*/
public Action SetTeam(int args)
{
char arg[128];
char full[256];
GetCmdArgString(full, sizeof(full));
PrintToServer("Je reçois %d arguments qui sont : %s", args, full);
GetCmdArg(1, arg, sizeof(arg));
int team = (!strcmp(arg, "ct", false) ? 1 : 2);
GetCmdArg(2, arg, sizeof(arg));
if (team == 1)
{
ServerCommand("mp_teamname_1 %s", arg)
}
else
{
ServerCommand("mp_teamname_2 %s", arg)
}
PrintToServer("L,équipe choisi est %d", team);
if (args == 7)
{
for(int i = 3; i <= args; i++)
{
GetCmdArg(i, arg, sizeof(arg));
if (team == 1)
{
teamCT[i - 3] = arg;
}
else
{
teamT[i - 3] = arg;
}
PrintToServer("%d cest la demande %s", i - 2, arg);
}
}
else
{
PrintToServer("Erreur, pas assez dargs");
}
return Plugin_Handled;
}
public void OnSocketReceive(Handle socket, const char[] datas, const int data, any arg) {}
/* envoie information plugin */
public void OnMapEnd()
{
PrintToServer("======= FIN ======");
/* kick tout le monde */
}
public void OnSocketConnected(Handle socket, any arg)
{
char requestStr[150];
Format(requestStr, sizeof(requestStr), "%s", "Source Engine Query");
/*
FormatEx(
requestStr,
sizeof(requestStr),
"GET /%s HTTP/1.0\r\nHost: %s\r\nConnection: close\r\n\r\n",
"prout",
"mario"
);
*/
SocketSend(socket, requestStr, 150);
}
public void SocketEnvoieVictoire(Handle socket, int t, int ct)
{
char requestStr[512];
FormatEx(
requestStr,
sizeof(requestStr),
"POST /api/csgo/matchend HTTP/1.0\r\n\
Host: Serveur\r\n\
Content-type: text/json\r\n\
{\"serverport\": XXXXXX, \"available\": \"true\"}"
)
}
public OnSocketDisconnected(Handle socket, any arg)
{
CloseHandle(socket);
}
public void OnSocketError(Handle socket, const int errorType, const int errorNum, any arg)
{
PrintToServer("[ERROR] Le socket a rencontré une erreur !");
CloseHandle(socket);
}
public void EnvoiInfo(Event event, const char[] name, bool dontBroadcast)
{
//kick tout le monde
// requete post pour match fini et serveur libre
Handle socket = SocketCreate(SOCKET_TCP, OnSocketError);
//SocketConnect(socket, OnSocketConnected, OnSocketReceive, OnSocketDisconnected, MY_SOCKET_IP, MY_SOCKET_PORT);
}
public void OnPluginStart()
{
HookEvent("cs_win_panel_match", EnvoiInfo);
HookEvent("player_activate", SuperTest);
RegServerCmd("!team", SetTeam);
PrintToServer("Hello world!");
PrintToServer("%d", sizeof(authorised));
}