query("SELECT `authid` FROM `".SB_PREFIX."_bans` WHERE `RemoveType` IS NULL AND `length` = 0")) { while ($banned = $bans->fetch_array(MYSQL_ASSOC)) { if(!in_array($banned["authid"], $bannedplayers)) { $bannedplayers[] = $banned["authid"]; ++$bcnt; } } } else { die('[-] Error retrieving banned players: ' . $con->error); } // Read unbanned players $ubcnt = 0; if ($unbans = $con->query("SELECT `authid` FROM `".SB_PREFIX."_bans` WHERE `RemoveType` IS NOT NULL AND `RemovedOn` IS NOT NULL")) { while ($unbanned = $unbans->fetch_array(MYSQL_ASSOC)) { if(!in_array($unbanned["authid"], $bannedplayers) && !in_array($unbanned["authid"], $unbannedplayers)) { $unbannedplayers[] = $unbanned["authid"]; ++$ubcnt; } } } else { die('[-] Error retrieving unbanned players: ' . $con->error); } $con->close(); print("[+] Retrieved ".$bcnt." banned and ".$ubcnt." unbanned players from SourceBans.\n"); } //------------------------------ // AMXBans Part //------------------------------ if ($useamx) { // Connect to the AMXBans database. $con = new mysqli(AMX_HOST, AMX_USER, AMX_PASS, AMX_NAME, AMX_PORT); if (mysqli_connect_error()) die('[-] Can\'t connect to AMXBans Database (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); print("[+] Successfully connected to AMXBans database. Retrieving bans now.\n"); // Get permanent banned players $bcnt = 0; if ($bans = $con->query("SELECT `player_id` FROM `".AMX_PREFIX."_bans` WHERE `ban_length` = 0")) { while ($banned = $bans->fetch_array(MYSQL_ASSOC)) { if(!in_array($banned["player_id"], $bannedplayers)) { $bannedplayers[] = $banned["player_id"]; ++$bcnt; } } } else { die('[-] Error retrieving banned players: ' . $con->error); } // Read unbanned players $ubcnt = 0; // Handles (apparently) pre-6.0 version DB or lower if ($unbans = $con->query("SELECT `player_id` FROM `".AMX_PREFIX."_banhistory` WHERE `ban_length` = 0")) { while ($unbanned = $unbans->fetch_array(MYSQL_ASSOC)) { if(!in_array($unbanned["player_id"], $bannedplayers) && !in_array($unbanned["player_id"], $unbannedplayers)) { $unbannedplayers[] = $unbanned["player_id"]; ++$ubcnt; } } } // Handles (apparently) 6.0 version DB or higher else if ($unbans = $con->query("SELECT `player_id` FROM `".AMX_PREFIX."_bans` WHERE `expired` = 1")) { while ($unbanned = $unbans->fetch_array(MYSQL_ASSOC)) { if(!in_array($unbanned["player_id"], $bannedplayers) && !in_array($unbanned["player_id"], $unbannedplayers)) { $unbannedplayers[] = $unbanned["player_id"]; ++$ubcnt; } } } else { die('[-] Error retrieving unbanned players: ' . $con->error); } $con->close(); print("[+] Retrieved ".$bcnt." banned and ".$ubcnt." unbanned players from AMXBans.\n"); } //------------------------------ // Beetlesmod Part //------------------------------ if ($usebm) { // Connect to the Beetlesmod database. $con = new mysqli(BM_HOST, BM_USER, BM_PASS, BM_NAME, BM_PORT); if (mysqli_connect_error()) die('[-] Can\'t connect to Beetlesmod Database (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); print("[+] Successfully connected to Beetlesmod database. Retrieving bans now.\n"); // Get permanent banned players $bcnt = 0; if ($bans = $con->query("SELECT `steamid` FROM `".BM_PREFIX."_bans` WHERE `Until` IS NULL")) { while ($banned = $bans->fetch_array(MYSQL_ASSOC)) { if(!in_array($banned["steamid"], $bannedplayers)) { $bannedplayers[] = $banned["steamid"]; ++$bcnt; } } } else { die('[-] Error retrieving banned players: ' . $con->error); } // Read unbanned players $ubcnt = 0; if ($unbans = $con->query("SELECT `steamid` FROM `".BM_PREFIX."_bans` WHERE `Until` IS NULL AND `Remove` = 0")) { while ($unbanned = $unbans->fetch_array(MYSQL_ASSOC)) { if(!in_array($unbanned["steamid"], $bannedplayers) && !in_array($unbanned["steamid"], $unbannedplayers)) { $unbannedplayers[] = $unbanned["steamid"]; ++$ubcnt; } } } else { die('[-] Error retrieving unbanned players: ' . $con->error); } $con->close(); print("[+] Retrieved ".$bcnt." banned and ".$ubcnt." unbanned players from Beetlesmod.\n"); } //------------------------------ // Globalban Part //------------------------------ if ($usegb) { // Connect to the Globalban database. $con = new mysqli(GB_HOST, GB_USER, GB_PASS, GB_NAME, GB_PORT); if (mysqli_connect_error()) die('[-] Can\'t connect to Globalban Database (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); print("[+] Successfully connected to Globalban database. Retrieving bans now.\n"); // Get permanent banned players $bcnt = 0; if ($bans = $con->query("SELECT `steam_id` FROM `".GB_PREFIX."_ban` WHERE `active` = 1 AND `pending` = 0 AND `length` = 0")) { while ($banned = $bans->fetch_array(MYSQL_ASSOC)) { if(!in_array($banned["steam_id"], $bannedplayers)) { $bannedplayers[] = $banned["steam_id"]; ++$bcnt; } } } else { die('[-] Error retrieving banned players: ' . $con->error); } // Read unbanned players $ubcnt = 0; if ($unbans = $con->query("SELECT `steam_id` FROM `".GB_PREFIX."_ban` WHERE `active` = 0 AND `pending` = 0 AND `length` = 0")) { while ($unbanned = $unbans->fetch_array(MYSQL_ASSOC)) { if(!in_array($unbanned["steam_id"], $bannedplayers) && !in_array($unbanned["steam_id"], $unbannedplayers)) { $unbannedplayers[] = $unbanned["steam_id"]; ++$ubcnt; } } } else { die('[-] Error retrieving unbanned players: ' . $con->error); } $con->close(); print("[+] Retrieved ".$bcnt." banned and ".$ubcnt." unbanned players from Globalban.\n"); } //------------------------------ // MySQL Banning Part //------------------------------ if ($usemb) { // Connect to the MySQL Banning database. $con = new mysqli(MB_HOST, MB_USER, MB_PASS, MB_NAME, MB_PORT); if (mysqli_connect_error()) die('[-] Can\'t connect to MySQL Banning Database (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); print("[+] Successfully connected to MySQL Banning database. Retrieving bans now.\n"); // Get permanent banned players $bcnt = 0; if ($bans = $con->query("SELECT `steam_id` FROM `".MB_PREFIX."_bans` WHERE `ban_length` = 0")) { while ($banned = $bans->fetch_array(MYSQL_ASSOC)) { if(!in_array($banned["steam_id"], $bannedplayers)) { $bannedplayers[] = $banned["steam_id"]; ++$bcnt; } } } else { die('[-] Error retrieving banned players: ' . $con->error); } /****** SM MySQL Banning doesn't provide a ban history AFAIK ******/ // Read unbanned players // $ubcnt = 0; // if ($unbans = $con->query("SELECT `steam_id` FROM `".MB_PREFIX."_bans` WHERE `ban_length` = 0")) { // while ($unbanned = $unbans->fetch_array(MYSQL_ASSOC)) { // if(!in_array($unbanned["steam_id"], $bannedplayers) && !in_array($unbanned["steam_id"], $unbannedplayers)) // { // $unbannedplayers[] = $unbanned["steam_id"]; // ++$ubcnt; // } // } // } else { // die('[-] Error retrieving unbanned players: ' . $con->error); //} $con->close(); //print("[+] Retrieved ".$bcnt." banned and ".$ubcnt." unbanned players from MySQL Banning.\n"); print("[+] Retrieved ".$bcnt." banned players from MySQL Banning.\n"); } //------------------------------ // HLstatsX Part //------------------------------ if(empty($bannedplayers) && empty($unbannedplayers)) die('[-] Nothing to change. Exiting.'); $bannedsteamids="''"; $unbannedsteamids="''"; if(!empty($bannedplayers)) { $bannedsteamids = "'"; foreach ($bannedplayers as $steamid) { $steamid = preg_replace('/^STEAM_[0-9]+?\:/i','',$steamid); $bannedsteamids .= $steamid."','"; } $bannedsteamids .= preg_replace('/\,\'$/','',$steamid); $bannedsteamids .= "'"; } if(!empty($unbannedplayers)) { $unbannedsteamids = "'"; foreach ($unbannedplayers as $steamid) { $steamid = preg_replace('/^STEAM_[0-9]+?\:/i','',$steamid); $unbannedsteamids .= $steamid."','"; } $unbannedsteamids .= preg_replace('/\,\'$/','',$steamid); $unbannedsteamids .= "'"; } // Connection to DB $hlxcon = new mysqli(HLX_HOST, HLX_USER, HLX_PASS, '', HLX_PORT); if (mysqli_connect_error()) die('[-] Can\'t connect to HLstatsX Database (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); print("[+] Successfully connected to HLstatsX database server. Updating players...\n"); // Loop through all hlstatsx databases foreach ($hlxdbs as $hlxdb) { $unbancnt = $bancnt = 0; $hlxcon->select_db($hlxdb); // Hide all banned players if ($hlxban = $hlxcon->query("UPDATE `".HLX_PREFIX."_Players` SET `hideranking` = 2 WHERE `hideranking` < 2 AND `playerId` IN (SELECT `playerId` FROM `".HLX_PREFIX."_PlayerUniqueIds` WHERE `uniqueId` IN (".$bannedsteamids."));")) { $bancnt = ($hlxcon->affected_rows?$hlxcon->affected_rows:0); } else { die('[-] Error hiding banned players: ' . $hlxcon->error); } // Show all unbanned players if ($hlxunban = $hlxcon->query("UPDATE `".HLX_PREFIX."_Players` SET `hideranking` = 0 WHERE `hideranking` = 2 AND `playerId` IN (SELECT `playerId` FROM `".HLX_PREFIX."_PlayerUniqueIds` WHERE `uniqueId` IN (".$unbannedsteamids."));")) { $unbancnt = ($hlxcon->affected_rows?$hlxcon->affected_rows:0); if ($bancnt>0||$unbancnt>0) { print("[+] ".$hlxdb.": ".$bancnt." players were marked as banned, ".$unbancnt." players were reenabled again.\n"); } else { print("[-] ".$hlxdb.": No player changed.\n"); } } else { die('[-] Error showing unbanned players: ' . $hlxcon->error); } } $hlxcon->close(); ?>