Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- YouWhitelist ist ein bereitgestelltest Werk von Mysterious.
- Support gibt es unter dem Beitrag oder per PN bei Mysterious.
- Falls beim anklicken evenentuell andere Dialoge angezeigt werden, musst Du die DialogID ändern
- Rechtliches:
- - Der Name Mysterious muss im Script erhalten beleiben
- - Das Werk darf nicht als eigenes Ausgegeben werden
- - Release in anderen Foren ist verboten
- - Alle Änderungen geschehen auf eigene Gefahr
- Viel Spaß beim nutzen von YouWhitelist ;)
- */
- #define FILTERSCRIPT
- //#define MySQL // Ausklammern, damit die Speicherart MySQL aktiviert wird.
- //#define PrintLog // Ausklammern, damit Einträge und Löschungen in der Server.log angezeigt werden.
- /////////////////////////////////////Includes///////////////////////////////////////
- #include <a_samp>
- #if defined MySQL
- #include <a_mysql>
- #endif
- /////////////////////////////////////Defines///////////////////////////////////////
- #if !defined MySQL
- new DB:YouWhitelist;
- #endif
- #define DIALOG_WHITELIST 4520
- #define DIALOG_WHITELIST1 4521
- #define DIALOG_WHITELIST2 4522
- #define DIALOG_WHITELIST3 4523
- #define DIALOG_WHITELIST4 4524
- #define ColRed 0xFF0000FF
- #define ColGreen 0x00FF00FF
- ///////////////////////////////////Datenbank///////////////////////////////////////
- //Datenbank MySQL (Falls vorhanden)
- #if defined MySQL
- #define MYSQL_HOST "localhost"
- #define MYSQL_USER "Nutzer"
- #define MYSQL_PASS "********"
- #define MYSQL_DB "Databasename"
- #error Bitte die Daten für die DB-Connection ausfüllen!
- #endif
- /////////////////////////////////////Public///////////////////////////////////////
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" \tYouWhitelist by Mysterious geladen");
- print(" Bitte Copyright durchlesen!");
- print("--------------------------------------\n");
- #if defined MySQL
- ConnectMySQL();
- MySQLCreateTables();
- #else
- YouWhitelist = db_open("YouWhitelist.db");
- #endif
- return 1;
- }
- public OnFilterScriptExit()
- {
- #if defined MySQL
- print(" MySQL Verbingung wurde getrennt!");
- #else
- db_close(YouWhitelist);
- print(" |>YouWhitelist wurde erfolgreich entladen!<| ");
- #endif
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(!PlayerWhitelisted(GetName(playerid)) && !PlayerWhitelisted(GetPIP(playerid))) {
- SendClientMessage(playerid,ColRed,"|> __________________ Whitelist __________________ <|");
- SendClientMessage(playerid,ColRed,"Dein/e Name/IP wurde nicht auf der Whitelist gefunden");
- SendClientMessage(playerid,ColRed,"|> _______________________________________________ <|");
- SetTimerEx("KickT",750,false,"i",playerid);
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(strcmp("/whitelist", cmdtext, true, 10) == 0)
- {
- if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,ColRed,"Du musst als RCON-Admin eingeloggt sein, um diesen Befehl nutzen zu können!");
- ShowPlayerDialog(playerid, DIALOG_WHITELIST, DIALOG_STYLE_LIST, "Whitelist - Was möchtest du tun?", "Namen hinzufügen\nIP hinzufügen\nNamen löschen\nIP löschen\nGESAMTE Namelist löschen\nGESAMTE IPlist löschen", "Auswählen", "Abbrechen");
- return 1;
- }
- return 0;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new string[512];
- if(dialogid == DIALOG_WHITELIST)
- {
- if(!response) return SendClientMessage(playerid,ColRed,"- Abgebrochen -");
- switch(listitem)
- {
- case 0:
- {
- ShowPlayerDialog(playerid, DIALOG_WHITELIST1, DIALOG_STYLE_INPUT, "Namen hinzufügen", "Gebe den Namen ein, den du zur Whitelist hinzufügen möchtest:", "Bestätigen", "Abbrechen");
- return 1;
- }
- case 1:
- {
- ShowPlayerDialog(playerid, DIALOG_WHITELIST2, DIALOG_STYLE_INPUT, "IP hinzufügen", "Gebe die IP ein, die du zur Whitelist hinzufügen möchtest:", "Bestätigen", "Abbrechen");
- return 1;
- }
- case 2:
- {
- ShowPlayerDialog(playerid, DIALOG_WHITELIST3, DIALOG_STYLE_INPUT, "Namen löschen", "Gebe den Namen ein, den du von der Whitelist löschen möchtest:", "Bestätigen", "Abbrechen");
- return 1;
- }
- case 3:
- {
- ShowPlayerDialog(playerid, DIALOG_WHITELIST4, DIALOG_STYLE_INPUT, "IP löschen", "Gebe die IP ein, die du von der Whitelist löschen möchtest:", "Bestätigen", "Abbrechen");
- return 1;
- }
- case 4:
- {
- #if defined MySQL
- mysql_query("DELETE FROM Namelist");
- #else
- db_query(YouWhitelist,"DELETE FROM Namelist");
- #endif
- SendClientMessage(playerid,ColGreen,"Die Namelist wurde erfolgreich zurückgesetzt!");
- return 1;
- }
- case 5:
- {
- #if defined MySQL
- mysql_query("DELETE FROM IPlist");
- #else
- db_query(YouWhitelist,"DELETE FROM IPlist");
- #endif
- SendClientMessage(playerid,ColGreen,"Die IPlist wurde erfolgreich zurückgesetzt!");
- return 1;
- }
- }
- }
- if(dialogid == DIALOG_WHITELIST1)
- {
- if(!response) return SendClientMessage(playerid,ColRed,"- Abgebrochen -");
- if(strlen(inputtext) < 1) return SendClientMessage(playerid,ColRed,"Du musst einen Namen eingeben!");
- if(strlen(inputtext) > 24) return SendClientMessage(playerid,ColRed,"Der Name darf nicht länger als 24 Zeichen sein!");
- if(PlayerWhitelisted(inputtext) != 0) return SendClientMessage(playerid,ColRed, "Dieser Spieler steht bereits auf der Whitelist!");
- format(string,sizeof string,"INSERT INTO Namelist (Name) VALUES ('%s')",inputtext);
- #if defined MySQL
- mysql_query(string);
- #else
- db_query(YouWhitelist,string);
- #endif
- format(string,sizeof(string),"[WHITELIST] Der Spielername %s wurde zur Whitelist hinzugefügt.",inputtext);
- SendClientMessage(playerid,ColGreen,string);
- #if defined PrintLog
- print(string);
- #endif
- return 1;
- }
- if(dialogid == DIALOG_WHITELIST2)
- {
- if(!response) return SendClientMessage(playerid,ColRed,"- Abgebrochen -");
- if(strlen(inputtext) < 1) return SendClientMessage(playerid,ColRed,"Du musst eine IP eingeben!");
- if(strlen(inputtext) > 16) return SendClientMessage(playerid,ColRed,"Die IP darf nicht länger als 16 Zeichen seien!");
- if(PlayerWhitelisted(inputtext) != 0) return SendClientMessage(playerid,ColRed, "Diese IP steht bereits auf der Whitelist!");
- if(!IsIP(inputtext)) return SendClientMessage(playerid,ColRed,"Deine Eingabe ist keine IP!");
- format(string,sizeof string,"INSERT INTO IPlist (IP) VALUES ('%s')",inputtext);
- #if defined MySQL
- mysql_query(string);
- #else
- db_query(YouWhitelist,string);
- #endif
- format(string,sizeof(string),"[WHITELIST] Die SpielerIP %s wurde zur Whitelist hinzugefügt.",inputtext);
- SendClientMessage(playerid,ColGreen,string);
- #if defined PrintLog
- print(string);
- #endif
- return 1;
- }
- if(dialogid == DIALOG_WHITELIST3)
- {
- if(!response) return SendClientMessage(playerid,ColRed,"- Abgebrochen -");
- if(strlen(inputtext) < 1) return SendClientMessage(playerid,ColRed,"Du musst einen Namen eingeben!");
- if(strlen(inputtext) > 24) return SendClientMessage(playerid,ColRed,"Der Name darf nicht länger als 24 Zeichen sein!");
- if(!PlayerWhitelisted(inputtext)) return SendClientMessage(playerid,ColRed, "Dieser Spieler steht nicht auf der Whitelist!");
- format(string,sizeof string,"DELETE FROM Namelist WHERE Name = '%s'",inputtext);
- #if defined MySQL
- mysql_query(string);
- #else
- db_query(YouWhitelist,string);
- #endif
- format(string,sizeof(string),"[WHITELIST] Der Spielername %s wurde von der Whitelist entfernt.",inputtext);
- SendClientMessage(playerid,ColGreen,string);
- #if defined PrintLog
- print(string);
- #endif
- return 1;
- }
- if(dialogid == DIALOG_WHITELIST4)
- {
- if(!response) return SendClientMessage(playerid,ColRed,"- Abgebrochen -");
- if(strlen(inputtext) < 1) return SendClientMessage(playerid,ColRed,"Du musst eine IP eingeben!");
- if(strlen(inputtext) > 16) return SendClientMessage(playerid,ColRed,"Die IP darf nicht länger als 16 Zeichen seien!");
- if(!PlayerWhitelisted(inputtext)) return SendClientMessage(playerid,ColRed, "Diese IP steht nicht auf der Whitelist!");
- if(!IsIP(inputtext)) return SendClientMessage(playerid,ColRed,"Deine Eingabe ist keine IP!");
- format(string,sizeof string,"DELETE FROM IPlist WHERE IP = '%s'",inputtext);
- #if defined MySQL
- mysql_query(string);
- #else
- db_query(YouWhitelist,string);
- #endif
- format(string,sizeof(string),"[WHITELIST] Die SpielerIP %s wurde von der Whitelist entfernt.",inputtext);
- SendClientMessage(playerid,ColGreen,string);
- #if defined PrintLog
- print(string);
- #endif
- return 1;
- }
- return 0;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- /////////////////////////////////////////Forward und Publics/////////////////////////////////////////
- forward KickT(playerid);
- public KickT(playerid)
- {
- Kick(playerid);
- return 1;
- }
- ///////////////////////////////////////////Stocks//////////////////////////////////////
- stock PlayerWhitelisted(NameIp[])
- {
- new string[128], string2[128];
- #if defined MySQL
- format(string, sizeof(string),"SELECT * FROM Namelist WHERE Name = '%s'",NameIp);
- format(string2, sizeof(string2),"SELECT * FROM IPlist WHERE IP = '%s'",NameIp);
- mysql_query(string);
- mysql_store_result();
- new value = mysql_num_rows();
- mysql_free_result();
- mysql_query(string2);
- mysql_store_result();
- new value2 = mysql_num_rows();
- mysql_free_result();
- if(value == 0 && value2 == 0) return false;
- return true;
- #else
- format(string, sizeof(string),"SELECT * FROM Namelist WHERE Name = '%s'",NameIp);
- format(string2, sizeof(string2),"SELECT * FROM IPlist WHERE IP = '%s'",NameIp);
- new DBResult:Result = db_query(YouWhitelist,string);
- new DBResult:Result2 = db_query(YouWhitelist,string2);
- new erg = db_num_rows(Result);
- new erg2 = db_num_rows(Result2);
- db_free_result(Result);
- db_free_result(Result2);
- if(erg == 0 && erg2 == 0) return false;
- return true;
- #endif
- }
- stock GetName(playerid)
- {
- new Name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,Name,sizeof(Name));
- return Name;
- }
- stock GetPIP(playerid)
- {
- new PIP[16];
- GetPlayerIp(playerid,PIP,sizeof(PIP));
- return PIP;
- }
- stock IsIP(value[])
- {
- new cpoint;
- while(((value[cpoint] >= '0' && value[cpoint] <= '9') || value[cpoint] == '.') || (cpoint == 0 && value[cpoint] == '-'))cpoint++;
- return (value[0] && strlen(value) == cpoint);
- }
- /////////////////////MySQL Sachen///////////////////////
- stock ConnectMySQL()
- {
- mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS);
- if(mysql_ping() == 1)
- {
- print("--| [MYSQL] Die Verbindung wurde erfolgreich hergestellt!");
- return 1;
- }
- else
- {
- print("--| [MYSQL] Es konnte keine Verbindung hergestellt werden!");
- print("--| [MYSQL] Es wird versucht, eine Verbindung herzustellen!");
- mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DB, MYSQL_PASS);
- if(mysql_ping() == 1)
- {
- print("--| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
- return 1;
- }
- else
- {
- print("--| [MYSQL] Das Verbinden schlug auch im 2. Versuch fehl!");
- print("--| [MYSQL] Das Filterscript >YouWhitelis< wird nun entladen!");
- SendRconCommand("unloadfs YouWhitelist");
- return 1;
- }
- }
- }
- stock MySQLCreateTables();
- stock MySQLCreateTables()
- {
- new string[1024];
- format(string,sizeof(string),"CREATE TABLE IF NOT EXISTS `Namelist` (`ID` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(24) NOT NULL, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
- mysql_query(string);
- format(string,sizeof(string),"CREATE TABLE IF NOT EXISTS `IPlist` (`ID` int(11) NOT NULL AUTO_INCREMENT, `IP` varchar(16) NOT NULL, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
- mysql_query(string);
- print("--| [MYSQL] Tabellen der MySQL Datenbank wurde erfolgreich erstellt!");
- }
Advertisement
Add Comment
Please, Sign In to add comment