echo "The following tribes have been set valid:\n"; for ($i = 0; $i < sizeof($validated_tribes); ++$i) { echo $validated_tribes[$i] . " \n"; } echo "The following tribes have been deleted:\n"; for ($i = 0; $i < sizeof($deleted_tribes); ++$i) { echo $deleted_tribes[$i] . " \n"; } $query = "SELECT p.tribe " . "FROM Player p " . "LEFT JOIN Tribe t ON p.tribe LIKE t.tag " . "WHERE p.tribe NOT LIKE '' " . "AND t.tag IS NULL " . "GROUP BY p.tribe " . "HAVING COUNT(p.tribe) >= " . TRIBE_MINIMUM_SIZE; if (!($missing_tribes = $db->query($query))) { echo "Error checking for missing tribes.\n"; return -2; } $tribes_created = array(); while ($row = $missing_tribes->nextRow()) { if (!tribe_createTribe($row['tribe'], $row['tribe'], 0, $db)) { echo "There are players with the tag {$row['tribe']}, " . "but I couldn't create this new tribe!\n"; continue; } array_push($tribes_created, $row['tribe']); } echo "The following tribes have been created:\n"; for ($i = 0; $i < sizeof($tribes_created); ++$i) { echo $tribes_created[$i] . "<br>\n"; } // ---------------------------------------------------------------------------- // Step 3: Recalculate the leaders echo "-- Checking Tribe Leaders --\n"; $tribes = tribe_getAllTribes($db); if ($tribes < 0) { echo "Error retrieving all tribes.\n";
function tribe_processCreate($leaderID, $tag, $password, $db) { if (!tribe_changeTribeAllowedForPlayerID($leaderID, $db)) { return -11; } $query = "SELECT name " . "FROM Tribe " . "WHERE tag LIKE '{$tag}'"; if (!($result = $db->query($query))) { return -1; } if ($result->nextRow()) { return -5; } if (!tribe_createTribe($tag, $tag, $leaderID, $db)) { return -6; } if (!tribe_setPassword($tag, $password, $db)) { return -7; } return 3; }
function tribe_processCreate($leaderID, $tag, $password, $db, $restore_rank = false) { if (!tribe_changeTribeAllowedForPlayerID($leaderID, $db)) { return -11; } $query = "SELECT name " . "FROM Tribe " . "WHERE tag LIKE '{$tag}'"; if (!($result = $db->query($query))) { return -1; } if ($result->nextRow()) { return -5; } if (!tribe_createTribe($tag, $tag, $leaderID, $db)) { return -6; } if ($restore_rank) { if (!tribe_restoreOldRanking($tag, $password, $db)) { return -1; } } if (!tribe_removeTribeFromOldRanking($tag, $db)) { return -1; } ranking_sort($db); if (!tribe_setPassword($tag, $password, $db)) { return -7; } Player::addHistoryEntry($db, $leaderID, sprintf(_('gründet den Stamm \'%s\''), $tag)); return 3; }
function tribe_processCreate($leaderID, $tag, $password, $restore_rank = false) { global $db; if (!tribe_changeTribeAllowedForPlayerID($leaderID)) { return -10; } $sql = $db->prepare("SELECT name\n FROM " . TRIBE_TABLE . "\n WHERE tag LIKE :tag"); $sql->bindValue('tag', $tag, PDO::PARAM_STR); if ($sql->rowCountSelect() > 0) { return -4; } if (!tribe_createTribe($tag, $tag, $password, $leaderID)) { return -5; } if ($restore_rank) { if (!tribe_restoreOldRanking($tag, $password)) { return -1; } } if (!tribe_removeTribeFromOldRanking($tag)) { return -1; } Player::addHistoryEntry($leaderID, sprintf(_("gründet den Stamm '%s'"), $tag)); return 2; }