smrealms /
smr
We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
| 1 | <?php declare(strict_types=1); |
||
| 2 | |||
| 3 | create_error('Deleting games is disabled!'); |
||
| 4 | |||
| 5 | // additional db objects |
||
| 6 | $db = Smr\Database::getInstance(); |
||
| 7 | $db2 = Smr\Database::getInstance(); |
||
| 8 | |||
| 9 | $smr_db_sql = array(); |
||
| 10 | $history_db_sql = array(); |
||
| 11 | |||
| 12 | $action = Request::get('action'); |
||
| 13 | if (Request::get('save') == 'Yes') { |
||
| 14 | $save = true; |
||
| 15 | } else { |
||
| 16 | $save = false; |
||
| 17 | } |
||
| 18 | |||
| 19 | if ($action == 'Yes') { |
||
| 20 | // get game id |
||
| 21 | $var = Smr\Session::getInstance()->getCurrentVar(); |
||
| 22 | $game_id = $var['delete_game_id']; |
||
| 23 | |||
| 24 | if ($save) { |
||
| 25 | $db->query('SELECT * FROM alliance WHERE game_id = ' . $db->escapeNumber($game_id)); |
||
| 26 | |||
| 27 | while ($db->nextRecord()) { |
||
| 28 | $id = $db->getInt('alliance_id'); |
||
| 29 | //we need info for forces |
||
| 30 | //populate alliance list |
||
| 31 | $db2->query('SELECT * FROM player |
||
| 32 | WHERE alliance_id = '.$db2->escapeNumber($id) . ' |
||
| 33 | AND game_id = '.$db2->escapeNumber($game_id)); |
||
| 34 | $list = array(0); |
||
| 35 | while ($db2->nextRecord()) { |
||
| 36 | $list[] = $db2->getInt('account_id'); |
||
| 37 | } |
||
| 38 | $db2->query('SELECT sum(mines) as sum_m, sum(combat_drones) as cds, sum(scout_drones) as sds |
||
| 39 | FROM sector_has_forces |
||
| 40 | WHERE owner_id IN ('.$db2->escapeArray($list) . ') AND game_id = ' . $db2->escapeNumber($game_id)); |
||
| 41 | if ($db2->nextRecord()) { |
||
| 42 | |||
| 43 | $mines = $db2->getInt('sum_m'); |
||
| 44 | $cds = $db2->getInt('cds'); |
||
| 45 | $sds = $db2->getInt('sds'); |
||
| 46 | } else { |
||
| 47 | $mines = 0; |
||
| 48 | $cds = 0; |
||
| 49 | $sds = 0; |
||
| 50 | } |
||
| 51 | |||
| 52 | // get info we want |
||
| 53 | $name = $db->getField('alliance_name'); |
||
| 54 | $leader = $db->getInt('leader_id'); |
||
| 55 | $kills = $db->getInt('alliance_kills'); |
||
| 56 | $deaths = $db->getInt('alliance_deaths'); |
||
| 57 | // insert into history db |
||
| 58 | $history_db_sql[] = 'INSERT INTO alliance (game_id, alliance_id, leader_id, kills, deaths, alliance_name, mines, cds, sds) ' . |
||
| 59 | '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) . ')'; |
||
| 60 | |||
| 61 | } |
||
| 62 | |||
| 63 | } |
||
| 64 | |||
| 65 | // these table is nothing worth without the players |
||
| 66 | //$smr_db_sql[] = 'DELETE FROM account_has_logs WHERE game_id = '.$game_id; |
||
| 67 | |||
| 68 | $smr_db_sql[] = 'UPDATE active_session SET game_id = 0 WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 69 | $smr_db_sql[] = 'DELETE FROM alliance WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 70 | $smr_db_sql[] = 'DELETE FROM alliance_bank_transactions WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 71 | $smr_db_sql[] = 'DELETE FROM alliance_has_roles WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 72 | $smr_db_sql[] = 'DELETE FROM alliance_thread WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 73 | $smr_db_sql[] = 'DELETE FROM alliance_thread_topic WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 74 | |||
| 75 | if ($save) { |
||
| 76 | |||
| 77 | $db->query('SELECT * FROM alliance_vs_alliance WHERE game_id = ' . $db->escapeNumber($game_id)); |
||
| 78 | while ($db->nextRecord()) { |
||
| 79 | |||
| 80 | $alliance_1 = $db->getInt('alliance_id_1'); |
||
| 81 | $alliance_2 = $db->getInt('alliance_id_2'); |
||
| 82 | $kills = $db->getInt('kills'); |
||
| 83 | $history_db_sql[] = 'INSERT INTO alliance_vs_alliance (game_id, alliance_id_1, alliance_id_2, kills) ' . |
||
| 84 | 'VALUES (' . $game_id . ', ' . $alliance_1 . ', ' . $alliance_2 . ', ' . $kills . ')'; |
||
| 85 | |||
| 86 | } |
||
| 87 | |||
| 88 | } |
||
| 89 | |||
| 90 | |||
| 91 | $smr_db_sql[] = 'DELETE FROM alliance_vs_alliance WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 92 | $smr_db_sql[] = 'DELETE FROM anon_bank WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 93 | $smr_db_sql[] = 'DELETE FROM anon_bank_transactions WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 94 | $smr_db_sql[] = 'DELETE FROM bar_tender WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 95 | $smr_db_sql[] = 'DELETE FROM blackjack WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 96 | $smr_db_sql[] = 'DELETE FROM galactic_post_applications WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 97 | $smr_db_sql[] = 'DELETE FROM galactic_post_article WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 98 | $smr_db_sql[] = 'DELETE FROM galactic_post_paper WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 99 | $smr_db_sql[] = 'DELETE FROM galactic_post_paper_content WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 100 | $smr_db_sql[] = 'DELETE FROM galactic_post_writer WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 101 | $smr_db_sql[] = 'DELETE FROM game_galaxy WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 102 | |||
| 103 | if ($save) { |
||
| 104 | $game = SmrGame::getGame($game_id); |
||
| 105 | // insert into history db |
||
| 106 | $history_db_sql[] = 'INSERT INTO game (game_id, end_date, start_date, game_name, speed, type) VALUES ' . |
||
| 107 | '(' . $db->escapeNumber($game_id) . ', ' . $game->getEndTime() . ', ' . $game->getStartTime() . ', ' . $db->escapeString($game->getGameName()) . ', ' . $game->getGameSpeed() . ', ' . $db->escapeString($game->getGameType()) . ')'; |
||
|
0 ignored issues
–
show
|
|||
| 108 | } |
||
| 109 | |||
| 110 | $smr_db_sql[] = 'DELETE FROM location WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 111 | $smr_db_sql[] = 'DELETE FROM mb_exceptions WHERE value LIKE ' . $db->escapeString($game_id . '%'); |
||
| 112 | $smr_db_sql[] = 'DELETE FROM message WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 113 | $smr_db_sql[] = 'DELETE FROM message_notify WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 114 | |||
| 115 | if ($save) { |
||
| 116 | |||
| 117 | $db->query('SELECT * FROM news WHERE game_id = ' . $game_id . ' AND type = \'regular\''); |
||
| 118 | $id = 1; |
||
| 119 | |||
| 120 | while ($db->nextRecord()) { |
||
| 121 | |||
| 122 | // get info we want |
||
| 123 | $time = $db->getInt('time'); |
||
| 124 | $msg = $db->getField('news_message'); |
||
| 125 | |||
| 126 | // insert into history db |
||
| 127 | $history_db_sql[] = 'INSERT INTO news (game_id, news_id, time, message) VALUES (' . $game_id . ', ' . $id . ', ' . $time . ', ' . $db->escapeString($msg) . ')'; |
||
| 128 | $id++; |
||
| 129 | |||
| 130 | } |
||
| 131 | } |
||
| 132 | |||
| 133 | $smr_db_sql[] = 'DELETE FROM news WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 134 | |||
| 135 | if ($save) { |
||
| 136 | |||
| 137 | $db->query('SELECT * FROM planet WHERE game_id = ' . $db->escapeNumber($game_id)); |
||
| 138 | |||
| 139 | while ($db->nextRecord()) { |
||
| 140 | |||
| 141 | // get info we want |
||
| 142 | $sector = $db->getInt('sector_id'); |
||
| 143 | $owner = $db->getInt('owner_id'); |
||
| 144 | |||
| 145 | $db2->query('SELECT * FROM planet_has_building WHERE game_id = ' . $game_id . ' AND sector_id = ' . $sector . ' AND construction_id = 1'); |
||
| 146 | if ($db2->nextRecord()) $gens = $db2->getInt('amount'); |
||
| 147 | else $gens = 0; |
||
| 148 | |||
| 149 | $db2->query('SELECT * FROM planet_has_building WHERE game_id = ' . $game_id . ' AND sector_id = ' . $sector . ' AND construction_id = 2'); |
||
| 150 | if ($db2->nextRecord()) $hangs = $db2->getInt('amount'); |
||
| 151 | else $hangs = 0; |
||
| 152 | |||
| 153 | $db2->query('SELECT * FROM planet_has_building WHERE game_id = ' . $game_id . ' AND sector_id = ' . $sector . ' AND construction_id = 3'); |
||
| 154 | if ($db2->nextRecord()) $turs = $db2->getInt('amount'); |
||
| 155 | else $turs = 0; |
||
| 156 | |||
| 157 | // insert into history db |
||
| 158 | $history_db_sql[] = 'INSERT INTO planet (game_id, sector_id, owner_id, generators, hangers, turrets) VALUES ' . |
||
| 159 | '(' . $game_id . ', ' . $sector . ', ' . $owner . ', ' . $gens . ', ' . $hangs . ', ' . $turs . ')'; |
||
| 160 | |||
| 161 | } |
||
| 162 | |||
| 163 | } |
||
| 164 | |||
| 165 | $smr_db_sql[] = 'DELETE FROM planet WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 166 | $smr_db_sql[] = 'DELETE FROM planet_is_building WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 167 | $smr_db_sql[] = 'DELETE FROM planet_has_cargo WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 168 | $smr_db_sql[] = 'DELETE FROM planet_has_building WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 169 | |||
| 170 | if ($save) { |
||
| 171 | |||
| 172 | $db->query('SELECT * FROM player WHERE game_id = ' . $game_id); |
||
| 173 | |||
| 174 | while ($db->nextRecord()) { |
||
| 175 | |||
| 176 | // get info we want |
||
| 177 | $acc_id = $db->getInt('account_id'); |
||
| 178 | $name = stripslashes($db->getField('player_name')); |
||
| 179 | $id = $db->getInt('player_id'); |
||
| 180 | $exp = $db->getInt('experience'); |
||
| 181 | $ship = $db->getInt('ship_type_id'); |
||
| 182 | $race = $db->getInt('race_id'); |
||
| 183 | $align = $db->getInt('alignment'); |
||
| 184 | $alli = $db->getInt('alliance_id'); |
||
| 185 | $kills = $db->getInt('kills'); |
||
| 186 | $deaths = $db->getInt('deaths'); |
||
| 187 | |||
| 188 | $amount = 0; |
||
| 189 | $smrCredits = 0; |
||
| 190 | $db2->query('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'); |
||
| 191 | if ($db2->nextRecord()) { |
||
| 192 | if (is_int($db2->getField('bounty_am'))) $amount = $db2->getInt('bounty_am'); |
||
| 193 | if (is_int($db2->getField('bounty_cred'))) $smrCredits = $db2->getInt('bounty_cred'); |
||
| 194 | |||
| 195 | } |
||
| 196 | |||
| 197 | $db2->query('SELECT * FROM ship_has_name WHERE game_id = ' . $game_id . ' AND account_id = ' . $acc_id); |
||
| 198 | if ($db2->nextRecord()) $ship_name = $db2->getField('ship_name'); |
||
| 199 | else $ship_name = 'None'; |
||
| 200 | |||
| 201 | // insert into history db |
||
| 202 | $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) ' . |
||
| 203 | 'VALUES (' . $acc_id . ', ' . $game_id . ', ' . $db->escapeString($name) . ', ' . $id . ', ' . $exp . ', ' . $ship . ', ' . $race . ', ' . $align . ', ' . $alli . ', ' . $kills . ', ' . $deaths . ', ' . $amount . ',' . $smrCredits . ', ' . $db->escapeString($ship_name) . ')'; |
||
| 204 | |||
| 205 | } |
||
| 206 | |||
| 207 | } |
||
| 208 | |||
| 209 | $smr_db_sql[] = 'DELETE FROM player WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 210 | $smr_db_sql[] = 'DELETE FROM bounty WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 211 | $smr_db_sql[] = 'DELETE FROM player_has_ticker WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 212 | $smr_db_sql[] = 'DELETE FROM player_has_ticket WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 213 | $smr_db_sql[] = 'DELETE FROM player_has_alliance_role WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 214 | $smr_db_sql[] = 'DELETE FROM player_has_drinks WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 215 | $smr_db_sql[] = 'DELETE FROM player_has_relation WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 216 | $smr_db_sql[] = 'DELETE FROM player_has_unread_messages WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 217 | $smr_db_sql[] = 'DELETE FROM player_plotted_course WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 218 | $smr_db_sql[] = 'DELETE FROM player_read_thread WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 219 | $smr_db_sql[] = 'DELETE FROM player_visited_port WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 220 | $smr_db_sql[] = 'DELETE FROM player_visited_sector WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 221 | $smr_db_sql[] = 'DELETE FROM player_votes_pact WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 222 | $smr_db_sql[] = 'DELETE FROM player_votes_relation WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 223 | $smr_db_sql[] = 'DELETE FROM plot_cache WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 224 | $smr_db_sql[] = 'DELETE FROM port WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 225 | $smr_db_sql[] = 'DELETE FROM port_has_goods WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 226 | $smr_db_sql[] = 'DELETE FROM race_has_relation WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 227 | $smr_db_sql[] = 'DELETE FROM race_has_voting WHERE game_id = ' . $db->escapeNumber($game_id); |
||
| 228 | |||
| 229 | if ($save) { |
||
| 230 | |||
| 231 | $db->query('SELECT * FROM sector WHERE game_id = ' . $game_id); |
||
| 232 | |||
| 233 | while ($db->nextRecord()) { |
||
| 234 | |||
| 235 | // get info we want |
||
| 236 | $sector = $db->getInt('sector_id'); |
||
| 237 | $kills = $db->getInt('battles'); |
||
| 238 | $gal_id = $db->getInt('galaxy_id'); |
||
| 239 | |||
| 240 | $db2->query('SELECT sum(mines) as sum_mines, sum(combat_drones) as cds, sum(scout_drones) as sds FROM sector_has_forces ' . |
||
| 241 | 'WHERE sector_id = ' . $sector . ' AND game_id = ' . $game_id . ' GROUP BY sector_id'); |
||
| 242 | if ($db2->nextRecord()) { |
||
| 243 | |||
| 244 | $mines = $db2->getInt('sum_mines'); |
||
| 245 | $cds = $db2->getInt('cds'); |
||
| 246 | $sds = $db2->getInt('sds'); |
||
| 247 | if (!is_numeric($mines)) { |
||
| 248 | $mines = 0; |
||
| 249 | } |
||
| 250 | if (!is_numeric($cds)) { |
||
| 251 | $cds = 0; |
||
| 252 | } |
||
| 253 | if (!is_numeric($sds)) { |
||
| 254 | $sds = 0; |
||
| 255 | } |
||
| 256 | |||
| 257 | } else { |
||
| 258 | |||
| 259 | $mines = 0; |
||
| 260 | $cds = 0; |
||
| 261 | $sds = 0; |
||
| 262 | |||
| 263 | } |
||
| 264 | |||
| 265 | // insert into history db |
||
| 266 | $history_db_sql[] = 'INSERT INTO sector (game_id, sector_id, gal_id, mines, kills, combat, scouts) ' . |
||
| 267 | 'VALUES (' . $game_id . ',' . $sector . ',' . $gal_id . ',' . $mines . ',' . $kills . ',' . $cds . ',' . $sds . ')'; |
||
| 268 | |||
| 269 | } |
||
| 270 | |||
| 271 | } |
||
| 272 | |||
| 273 | $smr_db_sql[] = 'DELETE FROM sector WHERE game_id = ' . $game_id; |
||
| 274 | $smr_db_sql[] = 'DELETE FROM sector_has_forces WHERE game_id = ' . $game_id; |
||
| 275 | $smr_db_sql[] = 'DELETE FROM ship_has_cargo WHERE game_id = ' . $game_id; |
||
| 276 | $smr_db_sql[] = 'DELETE FROM ship_has_hardware WHERE game_id = ' . $game_id; |
||
| 277 | $smr_db_sql[] = 'DELETE FROM ship_has_name WHERE game_id = ' . $game_id; |
||
| 278 | $smr_db_sql[] = 'DELETE FROM ship_has_illusion WHERE game_id = ' . $game_id; |
||
| 279 | $smr_db_sql[] = 'DELETE FROM ship_has_weapon WHERE game_id = ' . $game_id; |
||
| 280 | $smr_db_sql[] = 'DELETE FROM ship_is_cloaked WHERE game_id = ' . $game_id; |
||
| 281 | $smr_db_sql[] = 'UPDATE game SET end_time=' . Smr\Epoch::time() . ' WHERE game_id = ' . $game_id . ' AND end_time > ' . Smr\Epoch::time(); // Do not delete game placeholder, just make sure game is finished |
||
| 282 | $smr_db_sql[] = 'UPDATE active_session SET game_id = 0 WHERE game_id = ' . $game_id; |
||
| 283 | |||
| 284 | // now do the sql stuff |
||
| 285 | foreach ($smr_db_sql as $sql) { |
||
| 286 | |||
| 287 | $db->query($sql); |
||
| 288 | |||
| 289 | } |
||
| 290 | |||
| 291 | $db = new SmrHistoryMySqlDatabase(); |
||
| 292 | foreach ($history_db_sql as $sql) { |
||
| 293 | |||
| 294 | $db->query($sql); |
||
| 295 | |||
| 296 | } |
||
| 297 | |||
| 298 | // don't know why exactly we have to do that, |
||
| 299 | // but it seems that the db is used globally instead kept to each object |
||
| 300 | $db = Smr\Database::getInstance(); |
||
| 301 | |||
| 302 | } |
||
| 303 | $db = Smr\Database::getInstance(); |
||
| 304 | Page::create('skeleton.php', 'admin_tools.php')->go(); |
||
| 305 |
This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.
This is most likely a typographical error or the method has been renamed.