function getLengthList() { $query = "SELECT length_id, length, time_scale FROM gban_length ORDER BY length"; $this->db->sql_query($query); $lengthList = array(); $minutesList = array(); $hoursList = array(); $daysList = array(); $weeksList = array(); $monthsList = array(); $lengths = $this->db->get_array(); for ($i = 0; $i < count($lengths); $i++) { $length = new Length(); $length->setId($lengths[$i]['length_id']); $length->setLength($lengths[$i]['length']); $length->setTimeScale($lengths[$i]['time_scale']); if ($length->getTimeScale() == "minutes") { array_push($minutesList, $length); } else { if ($length->getTimeScale() == "hours") { array_push($hoursList, $length); } else { if ($length->getTimeScale() == "days") { array_push($daysList, $length); } else { if ($length->getTimeScale() == "weeks") { array_push($weeksList, $length); } else { if ($length->getTimeScale() == "months") { array_push($monthsList, $length); } } } } } } // Order the length list with smallest to largest $lengthList = $this->combineLengthLists($lengthList, $minutesList); $lengthList = $this->combineLengthLists($lengthList, $hoursList); $lengthList = $this->combineLengthLists($lengthList, $daysList); $lengthList = $this->combineLengthLists($lengthList, $weeksList); $lengthList = $this->combineLengthLists($lengthList, $monthsList); if ($lengthList[0]->getTimeScale() == "minutes" && $lengthList[0]->getLength() == 0) { // Order Permanent Ban Length to the end of array $fruit = array_shift($lengthList); array_push($lengthList, $fruit); } return $lengthList; }
// HARDCODED: 4 = member if ($user->getAccessLevel() == 4) { $pending = 1; } // Validate IP if (!preg_match("/^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\$/", $ipOfBanned)) { $ipOfBanned = null; } // Do not ban if it was an admin if (!$isUserMember) { if ($length->getLength() > 0) { $lengthInSec = $length->getLengthInSeconds(); $expireDate = time() + $lengthInSec; // Expire date // Add the new ban non-perma ban if ($length->getTimeScale() == "minutes" || $length->getTimeScale() == "hours" || $length->getTimeScale() == "days" && $length->getLength() == 1) { // 1 day bans or shorter take affect immediately for all members $banId = $banQueries->addBan($steamId, $length->getLength(), $length->getTimeScale(), $expireDate, $reason, $user->getName(), 0, $nameOfBanned, $serverId, $ipOfBanned, $banner); } else { // bans longer than 1 day are put into pending mode if the user only has member level priveliges $banId = $banQueries->addBan($steamId, $length->getLength(), $length->getTimeScale(), $expireDate, $reason, $user->getName(), $pending, $nameOfBanned, $serverId, $ipOfBanned, $banner); } } else { // Add perma ban $banId = $banQueries->addBan($steamId, $length->getLength(), $length->getTimeScale(), time(), $reason, $user->getName(), $pending, $nameOfBanned, $serverId, $ipOfBanned, $banner); } $menssageTOplayer = eregi_replace("gb_reason", $reasonQueries->getReason($reason), eregi_replace("gb_time", $length->getReadable(), $config->banMessage)); $menssageTOserver = "#multi #green " . $LAN_PROCESSBAN_014 . ": #lightgreen " . $nameOfBanned . " #green " . $LAN_PROCESSBAN_015 . " #lightgreen " . $length->getReadable() . " #green " . $LAN_PROCESSBAN_016 . " #lightgreen " . $reasonQueries->getReason($reason) . " #green " . $LAN_PROCESSBAN_017 . " #lightgreen \"" . $steamId . "\" #green !!!"; // Now kick the user kickUser($steamId, $serverId, $menssageTOplayer, $menssageTOserver); // Use this to build the URL link (replace processServerBan with updateBan)