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 |