Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <sourcemod>
- #include <sdktools>
- #include <morecolors>
- #include <smlib>
- #undef REQUIRE_PLUGIN
- #include <adminmenu>
- #define PLUGIN_NAME "plainte_se"
- #define PLUGIN_AUTHOR "Dertione"
- #define PLUGIN_DESCRIPTION "susteme plainte pour jailbreak"
- #define PLUGIN_VERSION "0.1"
- #define PLUGIN_URL "http://www.supreme-elite.fr/"
- #define DATABASE_NAME "dertione"
- //new Handle:hTopMenu = INVALID_HANDLE;
- new Handle:g_hDatabase = INVALID_HANDLE;
- new String:Steam_id[20];
- public Plugin:myinfo =
- {
- name = PLUGIN_NAME,
- author = PLUGIN_AUTHOR,
- description = PLUGIN_DESCRIPTION,
- version = PLUGIN_VERSION,
- url = PLUGIN_URL,
- };
- public OnPluginStart()
- {
- RegConsoleCmd("listeplainte", Command_Plainte, "", 0);
- }
- public OnMapStart()
- {
- ConnectBDD();
- }
- public OnMapEnd()
- {
- DisconnectSQL();
- }
- public Action:Command_Plainte(client, args)
- {
- if (IsAdmin(client) || IsRoot(client))
- {
- new Handle:hQuery = INVALID_HANDLE;
- new String:sQuery[255];
- new String:NameOfP[50];
- new String:PlainteDe[65];
- new String:SteamIdOfP[4];
- new id;
- /* :TODO: we should either remove this or make it configurable */
- if(CheckSQL())
- {
- Format(sQuery, sizeof(sQuery), "SELECT id, name_plaignant FROM plainte_se ORDER BY date DESC");
- hQuery = SQL_Query(g_hDatabase, sQuery);
- if(g_hDatabase == INVALID_HANDLE)
- {
- LogError("Query failed! ");
- }
- else if(!SQL_GetRowCount(hQuery))
- {
- SendPanelToAll(client,"Aucune plainte");
- }
- else
- {
- new Handle:menu2 = CreateMenu(MenuHandler_Plaintif);
- while(SQL_FetchRow(hQuery))
- {
- id = SQL_FetchInt(hQuery,0);
- //SQL_FetchString(hQuery, 0, SteamIdOfP, sizeof(SteamIdOfP));
- SQL_FetchString(hQuery, 1, NameOfP, sizeof(NameOfP));
- Format(PlainteDe, 65, "Plainte de %s", NameOfP);
- IntToString(id, SteamIdOfP,4);
- AddMenuItem(menu2, SteamIdOfP , PlainteDe);
- }
- SetMenuTitle(menu2, "Plaignant");
- SetMenuExitBackButton(menu2, true);
- DisplayMenu(menu2, client, MENU_TIME_FOREVER);
- }
- CloseHandle(hQuery);
- }
- else
- {
- DisconnectSQL();
- }
- }
- else
- {
- CPrintToChat(client,"\x01\x0B\x02[Plainte-SE] \x06 Cette commande est restreind aux admins");
- }
- }
- public MenuHandler_Plaintif(Handle:menu, MenuAction:action, client, param2)
- {
- /*new Handle:hQuery = INVALID_HANDLE;
- new String:sQuery[255];*/
- if (action == MenuAction_End)
- {
- CloseHandle(menu);
- /*new String:steamid_plaignant[20];
- GetClientAuthString(client, steamid_plaignant,20);
- Format(sQuery, sizeof(sQuery), "DELETE FROM plainte_se WHERE authid_plaignant=%s", steamid_plaignant);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- SQL_FetchRow(hQuery);*/
- }
- else if (action == MenuAction_Cancel)
- {
- /*new String:steamid_plaignant[20];
- GetClientAuthString(client, steamid_plaignant,20);
- Format(sQuery, sizeof(sQuery), "DELETE FROM plainte_se WHERE authid_plaignant=%s", steamid_plaignant);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- SQL_FetchRow(hQuery);*/
- }
- else if (action == MenuAction_Select)
- {
- decl String:info[4];
- GetMenuItem(menu, param2, info, sizeof(info));
- DisplayPlainteMenu(client, info);
- }
- }
- stock DisplayPlainteMenu(client,const String:id_Plaignant[])
- {
- new Handle:hQuery = INVALID_HANDLE;
- new String:sQuery[255];
- new String:NameOfP[50];
- new String:NameOfTitle[65];
- new String:Info[128];
- new Handle:hPanel = CreatePanel();
- if(CheckSQL())
- {
- Format(sQuery, sizeof(sQuery), "SELECT `name_plaignant` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- SQL_FetchRow(hQuery);
- SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
- Format(NameOfTitle, 65, "Plainte de %s", NameOfP);
- SetPanelTitle(hPanel, NameOfP);
- DrawPanelItem(hPanel, "Close");
- Format(Steam_id, 20, id_Plaignant);
- Format(sQuery, sizeof(sQuery), "SELECT `type` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- SQL_FetchRow(hQuery);
- SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
- Format(NameOfTitle, 65, "Type : %s", NameOfP);
- DrawPanelText(hPanel, NameOfTitle);
- Format(sQuery, sizeof(sQuery), "SELECT `name_freekilleur` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- SQL_FetchRow(hQuery);
- SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
- Format(NameOfTitle, 65, "Suspect : %s", NameOfP);
- DrawPanelText(hPanel, NameOfTitle);
- Format(sQuery, sizeof(sQuery), "SELECT `lieu` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- SQL_FetchRow(hQuery);
- SQL_FetchString(hQuery, 0, NameOfP, sizeof(NameOfP));
- Format(NameOfTitle, 65, "Lieu : %s", NameOfP);
- DrawPanelText(hPanel, NameOfTitle);
- DrawPanelText(hPanel, "Information supplementaire :");
- Format(sQuery, sizeof(sQuery), "SELECT `info` FROM `plainte_se` WHERE `id`='%s'",id_Plaignant);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- SQL_FetchRow(hQuery);
- SQL_FetchString(hQuery, 0, Info, sizeof(Info));
- DrawPanelText(hPanel, Info);
- DrawPanelItem(hPanel, "Plainte traité");
- DrawPanelItem(hPanel, "Plainte bidon");
- SendPanelToClient(hPanel, client, PanelHandler1, MENU_TIME_FOREVER);
- CloseHandle(hQuery);
- }
- CloseHandle(hPanel);
- }
- public PanelHandler1(Handle:menu, MenuAction:action, client, param2)
- {
- new Handle:hQuery = INVALID_HANDLE;
- new String:sQuery[255];
- if (action == MenuAction_Select)
- {
- if(CheckSQL())
- {
- if(param2 == 2)
- {
- Format(sQuery, sizeof(sQuery), "DELETE FROM `plainte_se` WHERE `id`='%s'", Steam_id);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- CloseHandle(hQuery);
- }
- if(param2 == 3)
- {
- CPrintToChatAll("\x01\x0B\x02 Les plaintes bidons sont sévérement punis, ne l'oubliez pas !!!!!");
- Format(sQuery, sizeof(sQuery), "DELETE FROM `plainte_se` WHERE `id`='%s'", Steam_id);
- hQuery = SQL_Query(g_hDatabase, sQuery);
- CloseHandle(hQuery);
- }
- }
- else
- {
- DisconnectSQL();
- }
- }
- return true;
- }
- public IsRoot(client)
- {
- decl String:steamId[30];
- GetClientAuthString(client, steamId, sizeof(steamId));
- if (GetUserFlagBits(client) & ADMFLAG_ROOT) return true;
- else return false;
- }
- public IsAdmin(client)
- {
- decl String:steamId[30];
- GetClientAuthString(client, steamId, sizeof(steamId));
- if (GetUserFlagBits(client) & ADMFLAG_SLAY) return true;
- else if (GetUserFlagBits(client) & ADMFLAG_GENERIC) return true;
- else if (GetUserFlagBits(client) & ADMFLAG_BAN) return true;
- else return false;
- }
- SendPanelToAll(from, String:message[])
- {
- ReplaceString(message, 192, "\\n", "\n");
- new Handle:mSayPanel = CreatePanel();
- SetPanelTitle(mSayPanel, "Liste Plainte");
- DrawPanelItem(mSayPanel, "", ITEMDRAW_SPACER);
- DrawPanelText(mSayPanel, message);
- DrawPanelItem(mSayPanel, "", ITEMDRAW_SPACER);
- SetPanelCurrentKey(mSayPanel, 10);
- DrawPanelItem(mSayPanel, "Exit", ITEMDRAW_CONTROL);
- SendPanelToClient(mSayPanel, from, Handler_DoNothing, 10);
- CloseHandle(mSayPanel);
- }
- public Handler_DoNothing(Handle:menu, MenuAction:action, param1, param2)
- {
- /* Do nothing */
- }
- public ConnectBDD()
- {
- // On check la config présente dans database.cfg
- if (SQL_CheckConfig(DATABASE_NAME))
- {
- new String:error[255];
- // On créé une connexion à la base de donné via la config présente dans database.cfg
- g_hDatabase = SQL_Connect(DATABASE_NAME,true,error, sizeof(error));
- if (g_hDatabase == INVALID_HANDLE)
- {
- LogMessage("Erreur de connexion: %s", error);
- }
- else
- {
- LogMessage("Connexion à la BDD MySQL réussie");
- }
- }
- else
- {
- LogError("Impossible de trouvé <%s> dans le fichier databases.cfg", DATABASE_NAME);
- }
- }
- stock bool:DisconnectSQL()
- {
- if(g_hDatabase != INVALID_HANDLE)
- {
- CloseHandle(g_hDatabase);
- g_hDatabase = INVALID_HANDLE;
- }
- return true;
- }
- stock bool:CheckSQL()
- {
- if(g_hDatabase == INVALID_HANDLE)
- {
- ConnectBDD();
- return false ;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement