We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
| Conditions | 26 |
| Paths | 258 |
| Total Lines | 296 |
| Code Lines | 187 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php declare(strict_types=1); |
||
| 18 | public function build(SmrAccount $account): never { |
||
| 19 | $game_id = $this->deleteGameID; |
||
| 20 | create_error('Deleting games is disabled!'); |
||
| 21 | |||
| 22 | $db = Database::getInstance(); |
||
| 23 | |||
| 24 | $smr_db_sql = []; |
||
| 25 | $history_db_sql = []; |
||
| 26 | |||
| 27 | $action = Request::get('action'); |
||
| 28 | if (Request::get('save') == 'Yes') { |
||
| 29 | $save = true; |
||
| 30 | } else { |
||
| 31 | $save = false; |
||
| 32 | } |
||
| 33 | |||
| 34 | if ($action == 'Yes') { |
||
| 35 | if ($save) { |
||
| 36 | $dbResult = $db->read('SELECT * FROM alliance WHERE game_id = ' . $db->escapeNumber($game_id)); |
||
| 37 | |||
| 38 | foreach ($dbResult->records() as $dbRecord) { |
||
| 39 | $id = $dbRecord->getInt('alliance_id'); |
||
| 40 | //we need info for forces |
||
| 41 | //populate alliance list |
||
| 42 | $dbResult2 = $db->read('SELECT * FROM player |
||
| 43 | WHERE alliance_id = ' . $db->escapeNumber($id) . ' |
||
| 44 | AND game_id = ' . $db->escapeNumber($game_id)); |
||
| 45 | $list = [0]; |
||
| 46 | foreach ($dbResult2->records() as $dbRecord2) { |
||
| 47 | $list[] = $dbRecord2->getInt('account_id'); |
||
| 48 | } |
||
| 49 | $dbResult2 = $db->read('SELECT sum(mines) as sum_m, sum(combat_drones) as cds, sum(scout_drones) as sds |
||
| 50 | FROM sector_has_forces |
||
| 51 | WHERE owner_id IN (' . $db->escapeArray($list) . ') AND game_id = ' . $db->escapeNumber($game_id)); |
||
| 52 | if ($dbResult2->hasRecord()) { |
||
| 53 | $dbRecord2 = $dbResult2->record(); |
||
| 54 | $mines = $dbRecord2->getInt('sum_m'); |
||
| 55 | $cds = $dbRecord2->getInt('cds'); |
||
| 56 | $sds = $dbRecord2->getInt('sds'); |
||
| 57 | } else { |
||
| 58 | $mines = 0; |
||
| 59 | $cds = 0; |
||
| 60 | $sds = 0; |
||
| 61 | } |
||
| 62 | |||
| 63 | // get info we want |
||
| 64 | $name = $dbRecord->getString('alliance_name'); |
||
| 65 | $leader = $dbRecord->getInt('leader_id'); |
||
| 66 | $kills = $dbRecord->getInt('alliance_kills'); |
||
| 67 | $deaths = $dbRecord->getInt('alliance_deaths'); |
||
| 68 | // insert into history db |
||
| 69 | $history_db_sql[] = 'INSERT INTO alliance (game_id, alliance_id, leader_id, kills, deaths, alliance_name, mines, cds, sds) ' . |
||
| 70 | 'VALUES (' . $db->escapeNumber($game_id) . ', ' . $db->escapeNumber($id) . ', ' . $db->escapeNumber($leader) . ', ' . $db->escapeNumber($kills) . ', ' . $db->escapeNumber($deaths) . ', ' . $db->escapeString($name) . ', ' . $db->escapeNumber($mines) . ', ' . $db->escapeNumber($cds) . ', ' . $db->escapeNumber($sds) . ')'; |
||
| 71 | |||
| 72 | } |
||
| 73 | |||
| 74 | } |
||
| 75 | |||
| 76 | // these table is nothing worth without the players |
||
| 77 | //$smr_db_sql[] = 'DELETE FROM account_has_logs WHERE game_id = '.$game_id; |
||
| 78 | |||
| 79 | $smr_db_sql[] = 'UPDATE active_session SET game_id = 0 WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 80 | $smr_db_sql[] = 'DELETE FROM alliance WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 81 | $smr_db_sql[] = 'DELETE FROM alliance_bank_transactions WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 82 | $smr_db_sql[] = 'DELETE FROM alliance_has_roles WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 83 | $smr_db_sql[] = 'DELETE FROM alliance_thread WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 84 | $smr_db_sql[] = 'DELETE FROM alliance_thread_topic WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 85 | |||
| 86 | if ($save) { |
||
| 87 | |||
| 88 | $dbResult = $db->read('SELECT * FROM alliance_vs_alliance WHERE game_id = ' . $db->escapeNumber($game_id)); |
||
| 89 | foreach ($dbResult->records() as $dbRecord) { |
||
| 90 | |||
| 91 | $alliance_1 = $dbRecord->getInt('alliance_id_1'); |
||
| 92 | $alliance_2 = $dbRecord->getInt('alliance_id_2'); |
||
| 93 | $kills = $dbRecord->getInt('kills'); |
||
| 94 | $history_db_sql[] = 'INSERT INTO alliance_vs_alliance (game_id, alliance_id_1, alliance_id_2, kills) ' . |
||
| 95 | 'VALUES (' . $game_id . ', ' . $alliance_1 . ', ' . $alliance_2 . ', ' . $kills . ')'; |
||
| 96 | |||
| 97 | } |
||
| 98 | |||
| 99 | } |
||
| 100 | |||
| 101 | $smr_db_sql[] = 'DELETE FROM alliance_vs_alliance WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 102 | $smr_db_sql[] = 'DELETE FROM anon_bank WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 103 | $smr_db_sql[] = 'DELETE FROM anon_bank_transactions WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 104 | $smr_db_sql[] = 'DELETE FROM bar_tender WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 105 | $smr_db_sql[] = 'DELETE FROM blackjack WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 106 | $smr_db_sql[] = 'DELETE FROM galactic_post_applications WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 107 | $smr_db_sql[] = 'DELETE FROM galactic_post_article WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 108 | $smr_db_sql[] = 'DELETE FROM galactic_post_paper WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 109 | $smr_db_sql[] = 'DELETE FROM galactic_post_paper_content WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 110 | $smr_db_sql[] = 'DELETE FROM galactic_post_writer WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 111 | $smr_db_sql[] = 'DELETE FROM game_galaxy WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 112 | |||
| 113 | if ($save) { |
||
| 114 | $game = SmrGame::getGame($game_id); |
||
| 115 | // insert into history db |
||
| 116 | $history_db_sql[] = 'INSERT INTO game (game_id, end_date, start_date, game_name, speed, type) VALUES ' . |
||
| 117 | '(' . $db->escapeNumber($game_id) . ', ' . $game->getEndTime() . ', ' . $game->getStartTime() . ', ' . $db->escapeString($game->getName()) . ', ' . $game->getGameSpeed() . ', ' . $db->escapeString($game->getGameType()) . ')'; |
||
| 118 | } |
||
| 119 | |||
| 120 | $smr_db_sql[] = 'DELETE FROM location WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 121 | $smr_db_sql[] = 'DELETE FROM mb_exceptions WHERE value LIKE ' . $db->escapeString($game_id . '%'); |
||
| 122 | $smr_db_sql[] = 'DELETE FROM message WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 123 | $smr_db_sql[] = 'DELETE FROM message_notify WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 124 | |||
| 125 | if ($save) { |
||
| 126 | |||
| 127 | $dbResult = $db->read('SELECT * FROM news WHERE game_id = ' . $game_id . ' AND type = \'regular\''); |
||
| 128 | $id = 1; |
||
| 129 | |||
| 130 | foreach ($dbResult->records() as $dbRecord) { |
||
| 131 | |||
| 132 | // get info we want |
||
| 133 | $time = $dbRecord->getInt('time'); |
||
| 134 | $msg = $dbRecord->getString('news_message'); |
||
| 135 | |||
| 136 | // insert into history db |
||
| 137 | $history_db_sql[] = 'INSERT INTO news (game_id, news_id, time, message) VALUES (' . $game_id . ', ' . $id . ', ' . $time . ', ' . $db->escapeString($msg) . ')'; |
||
| 138 | $id++; |
||
| 139 | |||
| 140 | } |
||
| 141 | } |
||
| 142 | |||
| 143 | $smr_db_sql[] = 'DELETE FROM news WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 144 | |||
| 145 | if ($save) { |
||
| 146 | |||
| 147 | $dbResult = $db->read('SELECT * FROM planet WHERE game_id = ' . $db->escapeNumber($game_id)); |
||
| 148 | |||
| 149 | foreach ($dbResult->records() as $dbRecord) { |
||
| 150 | |||
| 151 | // get info we want |
||
| 152 | $sector = $dbRecord->getInt('sector_id'); |
||
| 153 | $owner = $dbRecord->getInt('owner_id'); |
||
| 154 | |||
| 155 | $dbResult2 = $db->read('SELECT * FROM planet_has_building WHERE game_id = ' . $game_id . ' AND sector_id = ' . $sector . ' AND construction_id = 1'); |
||
| 156 | if ($dbResult2->hasRecord()) { |
||
| 157 | $gens = $dbResult2->record()->getInt('amount'); |
||
| 158 | } else { |
||
| 159 | $gens = 0; |
||
| 160 | } |
||
| 161 | |||
| 162 | $dbResult2 = $db->read('SELECT * FROM planet_has_building WHERE game_id = ' . $game_id . ' AND sector_id = ' . $sector . ' AND construction_id = 2'); |
||
| 163 | if ($dbResult2->hasRecord()) { |
||
| 164 | $hangs = $dbResult2->record()->getInt('amount'); |
||
| 165 | } else { |
||
| 166 | $hangs = 0; |
||
| 167 | } |
||
| 168 | |||
| 169 | $dbResult2 = $db->read('SELECT * FROM planet_has_building WHERE game_id = ' . $game_id . ' AND sector_id = ' . $sector . ' AND construction_id = 3'); |
||
| 170 | if ($dbResult2->hasRecord()) { |
||
| 171 | $turs = $dbResult2->record()->getInt('amount'); |
||
| 172 | } else { |
||
| 173 | $turs = 0; |
||
| 174 | } |
||
| 175 | |||
| 176 | // insert into history db |
||
| 177 | $history_db_sql[] = 'INSERT INTO planet (game_id, sector_id, owner_id, generators, hangers, turrets) VALUES ' . |
||
| 178 | '(' . $game_id . ', ' . $sector . ', ' . $owner . ', ' . $gens . ', ' . $hangs . ', ' . $turs . ')'; |
||
| 179 | |||
| 180 | } |
||
| 181 | |||
| 182 | } |
||
| 183 | |||
| 184 | $smr_db_sql[] = 'DELETE FROM planet WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 185 | $smr_db_sql[] = 'DELETE FROM planet_is_building WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 186 | $smr_db_sql[] = 'DELETE FROM planet_has_cargo WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 187 | $smr_db_sql[] = 'DELETE FROM planet_has_building WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 188 | |||
| 189 | if ($save) { |
||
| 190 | |||
| 191 | $dbResult = $db->read('SELECT * FROM player WHERE game_id = ' . $game_id); |
||
| 192 | |||
| 193 | foreach ($dbResult->records() as $dbRecord) { |
||
| 194 | |||
| 195 | // get info we want |
||
| 196 | $acc_id = $dbRecord->getInt('account_id'); |
||
| 197 | $name = $dbRecord->getString('player_name'); |
||
| 198 | $id = $dbRecord->getInt('player_id'); |
||
| 199 | $exp = $dbRecord->getInt('experience'); |
||
| 200 | $ship = $dbRecord->getInt('ship_type_id'); |
||
| 201 | $race = $dbRecord->getInt('race_id'); |
||
| 202 | $align = $dbRecord->getInt('alignment'); |
||
| 203 | $alli = $dbRecord->getInt('alliance_id'); |
||
| 204 | $kills = $dbRecord->getInt('kills'); |
||
| 205 | $deaths = $dbRecord->getInt('deaths'); |
||
| 206 | |||
| 207 | $amount = 0; |
||
| 208 | $smrCredits = 0; |
||
| 209 | $dbResult2 = $db->read('SELECT sum(amount) as bounty_am, sum(smr_credits) as bounty_cred FROM bounty WHERE game_id = ' . $game_id . ' AND account_id = ' . $acc_id . ' AND claimer_id = 0'); |
||
| 210 | if ($dbResult2->hasRecord()) { |
||
| 211 | $dbRecord2 = $dbResult2->record(); |
||
| 212 | $amount = $dbRecord2->getInt('bounty_am'); |
||
| 213 | $smrCredits = $dbRecord2->getInt('bounty_cred'); |
||
| 214 | } |
||
| 215 | |||
| 216 | $dbResult2 = $db->read('SELECT * FROM ship_has_name WHERE game_id = ' . $game_id . ' AND account_id = ' . $acc_id); |
||
| 217 | if ($dbResult2->hasRecord()) { |
||
| 218 | $ship_name = $dbResult2->record()->getString('ship_name'); |
||
| 219 | } else { |
||
| 220 | $ship_name = 'None'; |
||
| 221 | } |
||
| 222 | |||
| 223 | // insert into history db |
||
| 224 | $history_db_sql[] = 'INSERT INTO player (account_id, game_id, player_name, player_id, experience, ship, race, alignment, alliance_id, kills, deaths, bounty, bounty_cred, ship_name) ' . |
||
| 225 | 'VALUES (' . $acc_id . ', ' . $game_id . ', ' . $db->escapeString($name) . ', ' . $id . ', ' . $exp . ', ' . $ship . ', ' . $race . ', ' . $align . ', ' . $alli . ', ' . $kills . ', ' . $deaths . ', ' . $amount . ',' . $smrCredits . ', ' . $db->escapeString($ship_name) . ')'; |
||
| 226 | |||
| 227 | } |
||
| 228 | |||
| 229 | } |
||
| 230 | |||
| 231 | $smr_db_sql[] = 'DELETE FROM player WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 232 | $smr_db_sql[] = 'DELETE FROM bounty WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 233 | $smr_db_sql[] = 'DELETE FROM player_has_ticker WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 234 | $smr_db_sql[] = 'DELETE FROM player_has_ticket WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 235 | $smr_db_sql[] = 'DELETE FROM player_has_alliance_role WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 236 | $smr_db_sql[] = 'DELETE FROM player_has_drinks WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 237 | $smr_db_sql[] = 'DELETE FROM player_has_relation WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 238 | $smr_db_sql[] = 'DELETE FROM player_has_unread_messages WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 239 | $smr_db_sql[] = 'DELETE FROM player_plotted_course WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 240 | $smr_db_sql[] = 'DELETE FROM player_read_thread WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 241 | $smr_db_sql[] = 'DELETE FROM player_visited_port WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 242 | $smr_db_sql[] = 'DELETE FROM player_visited_sector WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 243 | $smr_db_sql[] = 'DELETE FROM player_votes_pact WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 244 | $smr_db_sql[] = 'DELETE FROM player_votes_relation WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 245 | $smr_db_sql[] = 'DELETE FROM port WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 246 | $smr_db_sql[] = 'DELETE FROM port_has_goods WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 247 | $smr_db_sql[] = 'DELETE FROM race_has_relation WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 248 | $smr_db_sql[] = 'DELETE FROM race_has_voting WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 249 | |||
| 250 | if ($save) { |
||
| 251 | |||
| 252 | $dbResult = $db->read('SELECT * FROM sector WHERE game_id = ' . $game_id); |
||
| 253 | |||
| 254 | foreach ($dbResult->records() as $dbRecord) { |
||
| 255 | |||
| 256 | // get info we want |
||
| 257 | $sector = $dbRecord->getInt('sector_id'); |
||
| 258 | $kills = $dbRecord->getInt('battles'); |
||
| 259 | $gal_id = $dbRecord->getInt('galaxy_id'); |
||
| 260 | |||
| 261 | $dbResult2 = $db->read('SELECT sum(mines) as sum_mines, sum(combat_drones) as cds, sum(scout_drones) as sds FROM sector_has_forces ' . |
||
| 262 | 'WHERE sector_id = ' . $sector . ' AND game_id = ' . $game_id . ' GROUP BY sector_id'); |
||
| 263 | if ($dbResult2->hasRecord()) { |
||
| 264 | |||
| 265 | $dbRecord2 = $dbResult2->record(); |
||
| 266 | $mines = $dbRecord2->getInt('sum_mines'); |
||
| 267 | $cds = $dbRecord2->getInt('cds'); |
||
| 268 | $sds = $dbRecord2->getInt('sds'); |
||
| 269 | |||
| 270 | } else { |
||
| 271 | |||
| 272 | $mines = 0; |
||
| 273 | $cds = 0; |
||
| 274 | $sds = 0; |
||
| 275 | |||
| 276 | } |
||
| 277 | |||
| 278 | // insert into history db |
||
| 279 | $history_db_sql[] = 'INSERT INTO sector (game_id, sector_id, gal_id, mines, kills, combat, scouts) ' . |
||
| 280 | 'VALUES (' . $game_id . ',' . $sector . ',' . $gal_id . ',' . $mines . ',' . $kills . ',' . $cds . ',' . $sds . ')'; |
||
| 281 | |||
| 282 | } |
||
| 283 | |||
| 284 | } |
||
| 285 | |||
| 286 | $smr_db_sql[] = 'DELETE FROM sector WHERE game_id = ' . $game_id; |
||
| 287 | $smr_db_sql[] = 'DELETE FROM sector_has_forces WHERE game_id = ' . $game_id; |
||
| 288 | $smr_db_sql[] = 'DELETE FROM ship_has_cargo WHERE game_id = ' . $game_id; |
||
| 289 | $smr_db_sql[] = 'DELETE FROM ship_has_hardware WHERE game_id = ' . $game_id; |
||
| 290 | $smr_db_sql[] = 'DELETE FROM ship_has_name WHERE game_id = ' . $game_id; |
||
| 291 | $smr_db_sql[] = 'DELETE FROM ship_has_illusion WHERE game_id = ' . $game_id; |
||
| 292 | $smr_db_sql[] = 'DELETE FROM ship_has_weapon WHERE game_id = ' . $game_id; |
||
| 293 | $smr_db_sql[] = 'DELETE FROM ship_is_cloaked WHERE game_id = ' . $game_id; |
||
| 294 | $smr_db_sql[] = 'UPDATE game SET end_time=' . Epoch::time() . ' WHERE game_id = ' . $game_id . ' AND end_time > ' . Epoch::time(); // Do not delete game placeholder, just make sure game is finished |
||
| 295 | $smr_db_sql[] = 'UPDATE active_session SET game_id = 0 WHERE game_id = ' . $game_id; |
||
| 296 | |||
| 297 | // now do the sql stuff |
||
| 298 | foreach ($smr_db_sql as $sql) { |
||
| 299 | $db->write($sql); |
||
| 300 | } |
||
| 301 | |||
| 302 | // Note that the `smr_live_history` database does not currently exist, |
||
| 303 | // but if we decided to enable this tool to archive SMR 1.6 games, |
||
| 304 | // we could create it. |
||
| 305 | $db->switchDatabases('smr_live_history'); |
||
| 306 | foreach ($history_db_sql as $sql) { |
||
| 307 | $db->write($sql); |
||
| 308 | } |
||
| 309 | $db->switchDatabaseToLive(); |
||
| 310 | |||
| 311 | } |
||
| 312 | |||
| 313 | (new AdminTools())->go(); |
||
| 314 | } |
||
| 317 |