· 6 years ago · Aug 06, 2019, 12:54 AM
1 public static function startplay(Request $request) {
2 $hubid = $request->get('hubid');
3 $userid = $request->get('userid');
4 $secretkey = $request->get('secretkey');
5
6
7 $hub = DB::SELECT("SELECT * FROM hubs WHERE hub_id = '".(int)$hubid."' LIMIT 1");
8 $hub = $hub[0];
9
10 //$user = Auth::user();
11
12 //$user = DB::SELECT("SELECT id FROM users WHERE id = '".(int)$userid."' AND secretkey = '".."'")
13 $user = DB::table('users')
14 ->select('id')
15 ->where('secretkey', $secretkey)
16 ->where('id', $userid)
17 ->get();
18 $user = $user[0];
19
20 if(!empty($user->id)) {
21
22
23 // FIRST CHECK IS THIS USER IN A PARTY OR NOT?
24 $party = DB::select("SELECT party_id FROM party_user WHERE del = 0 AND status = 1 AND user_id = '".(int)$user->id."'");
25
26
27 if(!empty($party)) {
28
29 $party = DB::select("SELECT user_id, party_id FROM party_user WHERE del = 0 AND status = 1 AND party_id = '".(int)$party[0]->party_id."'");
30
31 if(count($party)>=1) {
32 $users = array();
33 $itsparty = array('party_id' => $party[0]->party_id, 'party_size' => count($party), 'teamsize' => count($party));
34
35 foreach($party AS $p) {
36 array_push($users, $p->user_id);
37 }
38
39 }else{
40 $users = array($user->id);
41 $itsparty = array('party_id' => 0, 'party_size' => 0, 'teamsize' => 1);
42 }
43
44 }else{
45 $users = array($user->id);
46 $itsparty = array('party_id' => 0, 'party_size' => 0, 'teamsize' => 1);
47 }
48
49
50
51 // BASIC CHECKS
52 $check[] = ApiController::check_bans($users);
53 $check[] = ApiController::check_que($users);
54 $check[] = ApiController::check_activematch($users);
55
56 // HUB CHECKS VERIFIED, PREMIUM, AC, MIN SKILL, MAX SKILL, MAX PARTY, MODE
57 $check[] = ApiController::check_gameauth($users,$hub->game_id);
58 $check[] = ApiController::check_premium($users,$hub->premium);
59 $check[] = ApiController::check_verified($users,$hub->verified);
60 $check[] = ApiController::check_anticheat($users,$hub->anticheat);
61 $check[] = ApiController::check_maxparty($users,$hub->max_party);
62 $check[] = ApiController::check_maxmode($users,$hub->mode);
63 $check[] = ApiController::check_min_skill($users,$hub->min_skill);
64 $check[] = ApiController::check_max_skill($users,$hub->max_skill);
65
66 $canjoin_hub = ApiController::multiKeyExists($check, "error");
67
68
69 if($canjoin_hub==true) {
70
71 // print_R($check);
72
73 foreach($check AS $ch) {
74 if($ch!=1) {
75 $error[] = $ch;
76 }
77 }
78
79 $html_back = '<ul class="error_que_join">';
80 foreach($error AS $e) {
81 foreach($e AS $er) {
82
83 if(empty($er['logo'])) {
84 $logo = "img/nologo.png";
85 }else{
86 $logo = $er['logo'];
87 }
88
89 $html_back .= '<li class="error_user_line"><div class="error_user_logo"><img src="'.$logo.'"></div><div class="error_user_nickname">'.$er['nickname'].'</div><div class="error_user_info">'.$er['error'].'</div></li>';
90
91 }
92 }
93
94 $html_back .= '</ul>';
95
96
97
98
99
100
101 // CAN NOT JOIN, ERROR ON HUB JOIN
102 echo json_encode(array("succes" => 0, "users" => $users, "info" => $html_back));
103 }else{
104 //con.query("INSERT INTO match_queue (player_id,party_id,party_size,skill,timestamp,teamsize,elo)
105
106
107
108 foreach($users AS $key => $u) {
109
110 $elo = DB::SELECT("SELECT COALESCE(SUM(points), '1950') AS ANZAHL FROM stats WHERE statsid IS NOT NULL AND userid = '".(int)$u."' LIMIT 1");
111
112
113 if($key==0) {
114 $teamsize = $itsparty['teamsize'];
115 $elopoint = $elo[0]->ANZAHL * $teamsize;
116 }else{
117 $teamsize = 0;
118 $elopoint = $elo[0]->ANZAHL;
119 }
120
121
122 $user = DB::SELECT("SELECT skill, id FROM users WHERE id = '".(int)$u."'");
123 $return = DB::SELECT("INSERT INTO match_queue
124 (player_id, party_id, party_size, skill, timestamp, teamsize, elo, hub_id)
125 VALUES
126 ('".(int)$u."', '".(int)$itsparty['party_id']."', '".(int)$itsparty['party_size']."', '".(int)$user[0]->skill."', '".(int)time()."', '".(int)$teamsize."', '".(int)$elopoint."', '".(int)$hubid."')");
127
128 }
129
130 $return = array("succes" => 1, "users" => $users, "info" => "::que_joined");
131 echo json_encode($return);
132
133 }
134
135 }else{
136 echo json_encode(array("succes" => 0, "info" => "::login_false"));
137 }
138 }