Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Failed Conditions
Pull Request — master (#1038)
by Dan
11:47
created

src/admin/Default/game_delete_processing.php (1 issue)

Labels
Severity
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
The method getGameName() does not exist on SmrGame. Did you maybe mean getGame()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

107
								'(' . $db->escapeNumber($game_id) . ', ' . $game->getEndTime() . ', ' . $game->getStartTime() . ', ' . $db->escapeString($game->/** @scrutinizer ignore-call */ getGameName()) . ', ' . $game->getGameSpeed() . ', ' . $db->escapeString($game->getGameType()) . ')';

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.

Loading history...
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