12 |
13 |
14 |
15 | |
16 | |
17 | |
18 | |
19 | |
20 |
21 |
22 |
23 |
29 |
--------------------------------------------------------------------------------
/admin/lang.php:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/admin/logout.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/admin/networkips.php:
--------------------------------------------------------------------------------
1 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | |
46 | |
47 |
48 |
49 |
54 | '.$lang['none'].' |
55 | ';
56 | }
57 |
58 |
59 | while($row_net = mysql_fetch_array($result_net))
60 | {
61 | $net_id = $row_net['id'];
62 | $net_ip = $row_net['ip'];
63 | $net_parent_ip = $row_net['parentip'];
64 |
65 | echo '
66 | '.$net_ip.' |
67 | !['.$lang['delete'].'](../images/icons/medium/error.png) |
68 |
';
69 | }
70 | ?>
71 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/admin/users.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
9 |
10 | do_action('users_top'); // Plugins ?>
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | |
19 | |
20 | |
21 | |
22 |
23 |
45 | ' . $usr_usrname . ' |
46 | ' . $usr_fullname . ' |
47 | ' . $usr_email . ' |
48 | '.$lang['manage'].' |
49 | ';
50 | }
51 |
52 | ?>
53 | do_action('users_table'); // Plugins ?>
54 |
55 |
56 |
57 |
58 |
59 | do_action('users_bottom'); // Plugins ?>
60 |
--------------------------------------------------------------------------------
/ajax/admin_actions.php:
--------------------------------------------------------------------------------
1 | create($url_username,$url_password,$url_email,$url_first_name,$url_last_name);
23 | }
24 |
25 | // Save
26 | elseif($url_do == 'save')
27 | {
28 | if(empty($url_id) || empty($url_username)) die('Insufficient info given!');
29 |
30 | if(!empty($url_password))
31 | {
32 | #require(DOCROOT.'/includes/classes/core.php');
33 | $Core = new Core;
34 |
35 | #$newpass = base64_encode($Core->genstring(6) . sha1($url_password) . $Core->genstring(9));
36 | $newpass = base64_encode(sha1('ZzaX'.$url_password.'GPX88'));
37 | $sql_pass = ",password = '$newpass'";
38 | }
39 | else
40 | {
41 | $sql_pass = '';
42 | }
43 |
44 | @mysql_query("UPDATE admins SET last_updated = NOW(),username = '$url_username',theme = '$url_theme',language = '$url_language',email_address = '$url_email',first_name = '$url_first_name',last_name = '$url_last_name'$sql_pass WHERE id = '$url_id'") or die('Failed to update admin');
45 |
46 | // Update session
47 | $_SESSION['gpx_lang'] = strtolower($url_language);
48 | $_SESSION['gpx_theme'] = strtolower($url_theme);
49 |
50 | echo 'success';
51 | }
52 |
53 | // Delete
54 | elseif($url_do == 'delete')
55 | {
56 | // Cannot delete yourself
57 | if($gpx_userid == $url_id) die('You cannot delete your own account!');
58 |
59 | @mysql_query("UPDATE admins SET deleted = '1' WHERE id = '$url_id'") or die('Failed to delete the admin');
60 |
61 | echo 'success';
62 | }
63 |
64 | ?>
65 |
--------------------------------------------------------------------------------
/ajax/admin_create_form.php:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
50 |
51 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/ajax/admin_tabs.php:
--------------------------------------------------------------------------------
1 |
5 |
6 |
10 |
11 |
16 |
--------------------------------------------------------------------------------
/ajax/checkallowed.php:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/ajax/checklogin.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ajax/file_actions.php:
--------------------------------------------------------------------------------
1 | delete_file($url_id,$file_name);
16 | }
17 |
18 | // Delete a directory
19 | elseif($url_do == 'delete_dir')
20 | {
21 | echo $Files->delete_dir($url_id,$file_name);
22 | }
23 |
24 | // Save file contents
25 | elseif($url_do == 'savecontent')
26 | {
27 | if(empty($url_id) || empty($file_name)) die('No ID or filename given!');
28 | $file_content = $GPXIN['content'];
29 |
30 | echo $Files->save_file($url_id,$file_name,$file_content);
31 | exit;
32 | }
33 |
34 | // Show add file dialog
35 | elseif($url_do == 'show_addfile')
36 | {
37 | echo '
'.$lang['new_filename'].':
38 |
39 |
';
40 |
41 | exit;
42 | }
43 |
44 | // Show add directory dialog
45 | elseif($url_do == 'show_add_dir')
46 | {
47 | echo '
'.$lang['new_dirname'].':
48 |
';
49 |
50 | exit;
51 | }
52 |
53 | // Create new directory
54 | elseif($url_do == 'create_newdir')
55 | {
56 | $dir_name = $GPXIN['dir'];
57 |
58 | echo $Files->create_newdir($url_id,$dir_name);
59 |
60 | exit;
61 | }
62 |
63 | // Save new file
64 | elseif($url_do == 'save_newfile')
65 | {
66 | $file_content = $GPXIN['content'];
67 |
68 | echo $Files->save_newfile($url_id,$file_name,$file_content);
69 |
70 | exit;
71 | }
72 |
73 | ?>
74 |
--------------------------------------------------------------------------------
/ajax/file_upload.php:
--------------------------------------------------------------------------------
1 | handleUpload($upload_dir);
48 |
49 |
50 |
51 | #$cur_dir = $_SESSION['curdir'];
52 | #echo "CurDir: $cur_dir
";
53 |
54 |
55 | // to pass data through iframe you will need to encode all html tags
56 | echo htmlspecialchars(json_encode($result), ENT_NOQUOTES);
57 |
58 | ?>
59 |
--------------------------------------------------------------------------------
/ajax/games_tabs.php:
--------------------------------------------------------------------------------
1 |
5 |
6 |
17 |
--------------------------------------------------------------------------------
/ajax/index.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ajax/network_create_form.php:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
68 |
69 |
72 |
--------------------------------------------------------------------------------
/ajax/network_tabs.php:
--------------------------------------------------------------------------------
1 |
5 |
6 |
10 |
11 |
25 |
--------------------------------------------------------------------------------
/ajax/server_files.php:
--------------------------------------------------------------------------------
1 | file_list($url_id,false);
22 |
23 | // Show directory display
24 | $result = $Files->displaydir($file_list,$url_id);
25 |
26 | ?>
27 |
--------------------------------------------------------------------------------
/ajax/settings_save.php:
--------------------------------------------------------------------------------
1 | genstring(6) . base64_encode($url_steam_user) . $Core->genstring(6);
18 | #$url_steam_pass = $Core->genstring(6) . base64_encode($url_steam_pass) . $Core->genstring(6);
19 |
20 | $this_userid = $_SESSION['gpx_userid'];
21 |
22 | ########################################################################
23 |
24 | // Update these settings
25 | @mysql_query("UPDATE `configuration` SET
26 | `last_updated_by` = '$this_userid',
27 | `last_updated` = NOW(),
28 | `config_value` = CASE `config_setting`
29 | WHEN 'language' THEN '$url_lang'
30 | WHEN 'default_email_address' THEN '$url_email'
31 | WHEN 'company' THEN '$url_company'
32 | WHEN 'theme' THEN '$url_theme'
33 | WHEN 'local_dir' THEN '$url_local_dir'
34 | WHEN 'steam_login_user' THEN '$url_steam_user'
35 | WHEN 'steam_login_pass' THEN '$url_steam_pass'
36 | WHEN 'steam_auth' THEN '$url_steam_auth'
37 | ELSE `config_value` END") or die('Failed to update settings: '.mysql_error());
38 |
39 |
40 | /*
41 | * Older, inefficient (updated in 3.0.7)
42 | *
43 | $errmsg = $lang['err_sql_update'] . ' ('.mysql_error().')';
44 | // Run all updates
45 | @mysql_query("UPDATE configuration SET config_value = '$url_lang' WHERE config_setting = 'language'") or die($errmsg);
46 | @mysql_query("UPDATE configuration SET config_value = '$url_email' WHERE config_setting = 'default_email_address'") or die($errmsg);
47 | @mysql_query("UPDATE configuration SET config_value = '$url_company' WHERE config_setting = 'company'") or die($errmsg);
48 | @mysql_query("UPDATE configuration SET config_value = '$url_theme' WHERE config_setting = 'theme'") or die($errmsg);
49 | @mysql_query("UPDATE configuration SET config_value = '$url_local_dir' WHERE config_setting = 'local_dir'") or die($errmsg);
50 | */
51 |
52 | echo 'success';
53 |
54 | ?>
55 |
--------------------------------------------------------------------------------
/ajax/template_status.php:
--------------------------------------------------------------------------------
1 |
24 |
--------------------------------------------------------------------------------
/ajax/user_create_form.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
49 |
50 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/ajax/user_tabs.php:
--------------------------------------------------------------------------------
1 |
4 |
5 |
9 |
10 |
18 |
--------------------------------------------------------------------------------
/api/api.php:
--------------------------------------------------------------------------------
1 | $getval) {
9 | $GPXIN[$gets] = $getval;
10 | }
11 | }
12 | elseif(!empty($_POST)) {
13 | foreach($_POST as $posts => $postval) {
14 | $GPXIN[$posts] = $postval;
15 | }
16 | }
17 |
18 | $api_class = $GPXIN['class'];
19 | $api_key = $GPXIN['key'];
20 | $api_action = $GPXIN['action'];
21 | if(empty($api_key)) die('No API key specified (&key=)');
22 |
23 | $allowed_classes = array('users','servers');
24 | if(empty($api_class)) die('No class given (&class=)');
25 | elseif(!in_array($api_class, $allowed_classes)) die('Invalid class given');
26 | elseif(empty($api_action)) die('No action (&action=) given');
27 |
28 | if(!defined('DOCROOT')) require('../configuration.php');
29 |
30 | // Check API key
31 | require(DOCROOT.'/includes/classes/core.php');
32 | $Core = new Core;
33 | $Core->dbconnect();
34 | $our_api_key = $Core->getsettings('api_key');
35 |
36 | if($our_api_key != $api_key) die('Invalid API key specified!');
37 |
38 | // Setup DB
39 | $Core->dbconnect();
40 |
41 | ########################################################################
42 |
43 | // Automatically escape all user input
44 | if(isset($_GET['action'])) $GPXIN = $Core->escape_inputs($_GET,false);
45 | if(isset($_POST['action'])) $GPXIN = $Core->escape_inputs($_POST,false);
46 |
47 | ########################################################################
48 |
49 | // Require the main class file
50 | if(file_exists($api_class.'.php')) require($api_class.'.php');
51 | else die('That API action is not allowed.');
52 |
53 | ?>
54 |
--------------------------------------------------------------------------------
/api/index.php:
--------------------------------------------------------------------------------
1 | GamePanelX
2 |
--------------------------------------------------------------------------------
/api/users.php:
--------------------------------------------------------------------------------
1 | create($usr_username,$usr_password,$usr_email,$usr_first_name,$usr_last_name);
24 |
25 | if(is_numeric($result_create)) echo 'success';
26 | else echo $result_create;
27 | }
28 |
29 | // Update user details
30 | elseif($api_action == 'update')
31 | {
32 | echo $Users->update($usr_userid,$usr_username,$usr_password,$usr_email,$usr_first_name,$usr_last_name,$usr_language,$usr_theme);
33 | }
34 |
35 | // Delete user
36 | elseif($api_action == 'delete')
37 | {
38 | echo $Users->delete($usr_userid);
39 | }
40 |
41 | // ?
42 | else
43 | {
44 | die('Unknown API action');
45 | }
46 |
47 | ?>
48 |
--------------------------------------------------------------------------------
/checkallowed.php:
--------------------------------------------------------------------------------
1 | setup_actions();
27 |
28 | ?>
--------------------------------------------------------------------------------
/configuration.new.php:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/configuration.new.php
--------------------------------------------------------------------------------
/default.php:
--------------------------------------------------------------------------------
1 | dbconnect();
11 | ?>
12 |
13 |
14 |
15 |

16 |
17 |
18 |

19 |
20 |
21 |

22 |
23 |
24 |

25 |
26 |
27 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/favicon.ico
--------------------------------------------------------------------------------
/images/gameicons/medium/bf2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/bf2.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cod2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cod2.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cod4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cod4.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cod_waw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cod_waw.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cs_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cs_16.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cs_cz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cs_cz.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cs_go.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cs_go.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cs_pm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cs_pm.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cs_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cs_s.png
--------------------------------------------------------------------------------
/images/gameicons/medium/cs_s_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/cs_s_icon.png
--------------------------------------------------------------------------------
/images/gameicons/medium/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/default.png
--------------------------------------------------------------------------------
/images/gameicons/medium/dod.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/dod.png
--------------------------------------------------------------------------------
/images/gameicons/medium/dod_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/dod_s.png
--------------------------------------------------------------------------------
/images/gameicons/medium/gta_samp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/gta_samp.png
--------------------------------------------------------------------------------
/images/gameicons/medium/hl2_dm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/hl2_dm.png
--------------------------------------------------------------------------------
/images/gameicons/medium/l4d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/l4d.png
--------------------------------------------------------------------------------
/images/gameicons/medium/l4d_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/l4d_2.png
--------------------------------------------------------------------------------
/images/gameicons/medium/mcraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/mcraft.png
--------------------------------------------------------------------------------
/images/gameicons/medium/murmur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/murmur.png
--------------------------------------------------------------------------------
/images/gameicons/medium/tf2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/tf2.png
--------------------------------------------------------------------------------
/images/gameicons/medium/ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/ts.png
--------------------------------------------------------------------------------
/images/gameicons/medium/ts2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/ts2.png
--------------------------------------------------------------------------------
/images/gameicons/medium/ts3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/ts3.png
--------------------------------------------------------------------------------
/images/gameicons/medium/unsupported.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/unsupported.png
--------------------------------------------------------------------------------
/images/gameicons/medium/vent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/vent.png
--------------------------------------------------------------------------------
/images/gameicons/medium/ws_et.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/medium/ws_et.png
--------------------------------------------------------------------------------
/images/gameicons/small/bf2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/bf2.png
--------------------------------------------------------------------------------
/images/gameicons/small/cod2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cod2.png
--------------------------------------------------------------------------------
/images/gameicons/small/cod4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cod4.png
--------------------------------------------------------------------------------
/images/gameicons/small/cod_waw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cod_waw.png
--------------------------------------------------------------------------------
/images/gameicons/small/cs_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cs_16.png
--------------------------------------------------------------------------------
/images/gameicons/small/cs_cz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cs_cz.png
--------------------------------------------------------------------------------
/images/gameicons/small/cs_go.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cs_go.png
--------------------------------------------------------------------------------
/images/gameicons/small/cs_pm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cs_pm.png
--------------------------------------------------------------------------------
/images/gameicons/small/cs_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/cs_s.png
--------------------------------------------------------------------------------
/images/gameicons/small/default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/default.png
--------------------------------------------------------------------------------
/images/gameicons/small/dod.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/dod.png
--------------------------------------------------------------------------------
/images/gameicons/small/dod_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/dod_s.png
--------------------------------------------------------------------------------
/images/gameicons/small/games.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/games.png
--------------------------------------------------------------------------------
/images/gameicons/small/gta_samp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/gta_samp.png
--------------------------------------------------------------------------------
/images/gameicons/small/hl2_dm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/hl2_dm.png
--------------------------------------------------------------------------------
/images/gameicons/small/l4d.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/l4d.png
--------------------------------------------------------------------------------
/images/gameicons/small/l4d_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/l4d_2.png
--------------------------------------------------------------------------------
/images/gameicons/small/mcft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/mcft.png
--------------------------------------------------------------------------------
/images/gameicons/small/mcraft.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/mcraft.png
--------------------------------------------------------------------------------
/images/gameicons/small/murmur.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/murmur.png
--------------------------------------------------------------------------------
/images/gameicons/small/tf2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/tf2.png
--------------------------------------------------------------------------------
/images/gameicons/small/ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/ts.png
--------------------------------------------------------------------------------
/images/gameicons/small/ts2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/ts2.png
--------------------------------------------------------------------------------
/images/gameicons/small/ts3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/ts3.png
--------------------------------------------------------------------------------
/images/gameicons/small/vent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/vent.png
--------------------------------------------------------------------------------
/images/gameicons/small/ws_et.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/gameicons/small/ws_et.png
--------------------------------------------------------------------------------
/images/icons/medium/accounts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/accounts.png
--------------------------------------------------------------------------------
/images/icons/medium/add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/add.png
--------------------------------------------------------------------------------
/images/icons/medium/automatic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/automatic.png
--------------------------------------------------------------------------------
/images/icons/medium/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/back.png
--------------------------------------------------------------------------------
/images/icons/medium/cloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/cloud.png
--------------------------------------------------------------------------------
/images/icons/medium/completed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/completed.png
--------------------------------------------------------------------------------
/images/icons/medium/edit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/edit.png
--------------------------------------------------------------------------------
/images/icons/medium/error.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/error.png
--------------------------------------------------------------------------------
/images/icons/medium/file.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/file.png
--------------------------------------------------------------------------------
/images/icons/medium/files.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/files.png
--------------------------------------------------------------------------------
/images/icons/medium/folder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/folder.png
--------------------------------------------------------------------------------
/images/icons/medium/home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/home.png
--------------------------------------------------------------------------------
/images/icons/medium/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/info.png
--------------------------------------------------------------------------------
/images/icons/medium/logout.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/logout.png
--------------------------------------------------------------------------------
/images/icons/medium/network.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/network.png
--------------------------------------------------------------------------------
/images/icons/medium/news.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/news.png
--------------------------------------------------------------------------------
/images/icons/medium/plugins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/plugins.png
--------------------------------------------------------------------------------
/images/icons/medium/server_restart.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/server_restart.png
--------------------------------------------------------------------------------
/images/icons/medium/server_stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/server_stop.png
--------------------------------------------------------------------------------
/images/icons/medium/servers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/servers.png
--------------------------------------------------------------------------------
/images/icons/medium/startup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/startup.png
--------------------------------------------------------------------------------
/images/icons/medium/steam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/steam.png
--------------------------------------------------------------------------------
/images/icons/medium/success.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/success.png
--------------------------------------------------------------------------------
/images/icons/medium/template.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/template.png
--------------------------------------------------------------------------------
/images/icons/medium/update.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/medium/update.png
--------------------------------------------------------------------------------
/images/icons/small/accounts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/small/accounts.png
--------------------------------------------------------------------------------
/images/icons/small/automatic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/small/automatic.png
--------------------------------------------------------------------------------
/images/icons/small/back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/small/back.png
--------------------------------------------------------------------------------
/images/icons/small/plugins.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/small/plugins.png
--------------------------------------------------------------------------------
/images/icons/small/select_down_arrow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/small/select_down_arrow.png
--------------------------------------------------------------------------------
/images/icons/small/steam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/icons/small/steam.png
--------------------------------------------------------------------------------
/images/index.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/images/logo.png
--------------------------------------------------------------------------------
/includes/GameQ/README.md:
--------------------------------------------------------------------------------
1 | Information
2 | ===========
3 | GameQ is a PHP program that allows you to query multiple types of multiplayer game servers at the same time.
4 |
5 | GameQ v2 is based off of the original GameQ PHP program from http://gameq.sourceforge.net/. That project was no longer being supported.
6 |
7 | Requirements
8 | ============
9 | * PHP 5.2 (Recommended 5.3, 5.4)
10 |
11 | Extras you might need:
12 | * Bzip2 - Used for A2S compressed responses (http://www.php.net/manual/en/book.bzip2.php)
13 | * Zlib - Used for AA3 (before version 3.2) compressed responses (http://www.php.net/manual/en/book.zlib.php)
14 |
15 | Example
16 | =======
17 | Usage & Examples: https://github.com/Austinb/GameQ/wiki/Usage-&-examples-v2
18 |
19 | Quick and Dirty:
20 |
21 | $gq = new GameQ();
22 | $gq->addServer(array(
23 | 'id' => 'my_server',
24 | 'type' => 'css', // Counter-Strike: Source
25 | 'host' => '127.0.0.1:27015',
26 | ));
27 |
28 | $results = $gq->requestData(); // Returns an array of results
29 |
30 | print_r($results);
31 |
32 | Want more? Check out the wiki page or /examples for more.
33 |
34 | ChangeLog
35 | =========
36 | See https://github.com/Austinb/GameQ/commits/v2 for an incremental list of changes
37 |
38 | License
39 | =======
40 | See LICENSE for more information
41 |
42 | Donations
43 | =========
44 | If you like this project and use it a lot please feel free to donate here: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VAU2KADATP5PU.
45 |
--------------------------------------------------------------------------------
/includes/GameQ/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "austinb/gameq",
3 | "description": "GameQ Gameserver Library",
4 | "version": "2.0.0",
5 | "license": "GPL-3.0+",
6 | "authors": [
7 | {
8 | "name": "Austin Bischoff",
9 | "email": "austin.bischoff@gmail.com",
10 | "role": "Packagist/Composer Maintainer, Developer",
11 | "homepage": "https://github.com/Austinb"
12 | },
13 | {
14 | "name": "Christoph Kretzschmar",
15 | "email": "blackskyliner@googlemail.com",
16 | "role": "Developer",
17 | "homepage": "https://github.com/Blackskyliner"
18 | },
19 | {
20 | "name": "Marcel BöÃendörfer",
21 | "email": "m.boessendoerfer@marbis.net",
22 | "role": "Developer",
23 | "homepage": "https://github.com/nitrado"
24 | },
25 | {
26 | "name": "Alexander Hambalgo",
27 | "role": "Developer",
28 | "homepage": "http://balgo.users.sourceforge.net/"
29 | },
30 | {
31 | "name": "Holger",
32 | "role": "Developer",
33 | "homepage": "http://icet33.users.sourceforge.net/"
34 | },
35 | {
36 | "name": "Sebastian Weidenbach",
37 | "role": "Developer",
38 | "homepage": "http://sebastianwe.users.sourceforge.net/"
39 | }
40 | ],
41 | "support": {
42 | "source": "https://github.com/Austinb/GameQ",
43 | "issues": "https://github.com/Austinb/GameQ/issues",
44 | "wiki": "https://github.com/Austinb/GameQ/wiki"
45 | },
46 | "require": {
47 | "php": ">=5.2",
48 | "ext-bz2": "*",
49 | "ext-zlib": "*"
50 | },
51 | "autoload": {
52 | "psr-0": { "GameQ": "." }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/filters.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Generic function to make extending shorter
21 | *
22 | * @author Austin Bischoff
23 | */
24 | abstract class GameQ_Filters extends GameQ_Filters_Core {}
25 |
26 | /**
27 | * GameQ Filters Exception
28 | *
29 | * Allows for a level of exception handling incase there is an issue/error within
30 | * a filter or a required dependency has not been met.
31 | *
32 | * @author Austin Bischoff
33 | */
34 | class GameQ_FiltersException extends Exception {}
35 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/filters/core.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Abstract class which all filters must inherit
21 | *
22 | * @author Austin Bischoff
23 | */
24 | abstract class GameQ_Filters_Core
25 | {
26 | protected $params = array();
27 |
28 | /**
29 | * Constructor, receives parameters
30 | *
31 | * @param array $params Filter parameters
32 | */
33 | function __construct($params)
34 | {
35 | if(is_array($params))
36 | {
37 | foreach ($params as $key => $param)
38 | {
39 | $this->params[$key] = $param;
40 | }
41 | }
42 | else
43 | {
44 | $this->params = $params;
45 | }
46 | }
47 |
48 | /**
49 | * Actually apply the filter to the passed results
50 | *
51 | * @param array $results
52 | * @param GameQ_Protocols_Core $protocol_instance
53 | */
54 | abstract public function filter($results, GameQ_Protocols_Core $protocol_instance);
55 | }
56 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/filters/stripcolor.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Strip color codes from specific protocol types. This code was adapted from the original filter class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Filters_Stripcolor extends GameQ_Filters
25 | {
26 | /**
27 | * Strip all the color junk from returns
28 | * @see GameQ_Filters_Core::filter()
29 | */
30 | public function filter($data, GameQ_Protocols_Core $protocol_instance)
31 | {
32 | // Check the type of protocol
33 | switch($protocol_instance->protocol())
34 | {
35 | case 'quake2':
36 | case 'quake3':
37 | case 'doom3':
38 | array_walk_recursive($data, array($this, 'stripQuake'));
39 | break;
40 |
41 | case 'unreal2':
42 | case 'ut3':
43 | case 'gamespy3': //not sure if gamespy3 supports ut colors but won't hurt
44 | case 'gamespy2':
45 | array_walk_recursive($data, array($this, 'stripUT'));
46 | break;
47 |
48 | default:
49 | break;
50 | }
51 |
52 | return $data;
53 | }
54 |
55 | /**
56 | * Strips quake color tags
57 | *
58 | * @param $string string String to strip
59 | * @param $key string Array key
60 | */
61 | protected function stripQuake(&$string, $key)
62 | {
63 | $string = preg_replace('#(\^.)#', '', $string);
64 | }
65 |
66 | /**
67 | * Strip UT color tags
68 | *
69 | * @param $string string String to strip
70 | * @param $key string Array key
71 | */
72 | protected function stripUT(&$string, $key)
73 | {
74 | $string = preg_replace('/\x1b.../', '', $string);
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Generic function to make extending shorter
21 | *
22 | * @author Austin Bischoff
23 | */
24 | abstract class GameQ_Protocols extends GameQ_Protocols_Core
25 | {
26 |
27 | }
28 |
29 | /**
30 | * GameQ Protocol Exception
31 | *
32 | * Allows for another level of exception handling when doing loops. Makes it possible to recover and continue
33 | * when there is an exception within one of the protocol classes.
34 | *
35 | * @author Austin Bischoff
36 | */
37 | class GameQ_ProtocolsException extends Exception {}
38 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/aa.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * America's Army 1/2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Aa extends GameQ_Protocols_Gamespy2
25 | {
26 | protected $name = "aa";
27 | protected $name_long = "America's Army";
28 |
29 | protected $link_join = "aao://%s:%d/";
30 |
31 | protected $port = 1717;
32 | }
33 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/aa3.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * America's Army 3 Protocol Class (Version 3.2+)
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Aa3 extends GameQ_Protocols_Source
25 | {
26 | protected $name = "aa3";
27 | protected $name_long = " America's Army 3 (> 3.2)";
28 |
29 | protected $link_join = "aa3://%s:%d/";
30 |
31 | protected $port = 27020;
32 | }
33 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/alienswarm.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Alien Swarm Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Alienswarm extends GameQ_Protocols_Source
25 | {
26 | protected $name = "alienswarm";
27 | protected $name_long = "Alien Swarm";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/aoc.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Age of Chivalry Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Aoc extends GameQ_Protocols_Source
25 | {
26 | protected $name = "aoc";
27 | protected $name_long = "Age of Chivalry";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/armedassault.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Armed Assault Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Armedassault extends GameQ_Protocols_Gamespy2
25 | {
26 | protected $name = "armedassault";
27 | protected $name_long = "Armed Assault";
28 |
29 | protected $port = 2302;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/armedassault2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Armed Assault 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Armedassault2 extends GameQ_Protocols_Gamespy3
25 | {
26 | protected $name = "armedassault2";
27 | protected $name_long = "Armed Assault 2";
28 |
29 | protected $port = 2302;
30 |
31 | protected function parsePlayerTeamInfoNew(GameQ_Buffer &$buf, GameQ_Result &$result)
32 | {
33 | // Read the buffer and replace the team_ sub-section under the players section becasue it is broke
34 | $buf_fixed = preg_replace('/team_(.*)score_/m', 'score_', $buf->getBuffer());
35 |
36 | // Replace the buffer with the "fixed" buffer
37 | $buf = new GameQ_Buffer($buf_fixed);
38 |
39 | unset($buf_fixed);
40 |
41 | // Now we continue on with the parent
42 | return parent::parsePlayerTeamInfo($buf, $result);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/armedassault2oa.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Armed Assault 2: Operation Arrowhead Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Armedassault2oa extends GameQ_Protocols_Armedassault2
25 | {
26 | protected $name = "armedassault2oa";
27 | protected $name_long = "Armed Assault 2: Operation Arrowhead";
28 |
29 | protected $port = 2302;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/armedassault3.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Armed Assault 2 Protocol Class
21 | *
22 | * Special thanks to firefly2442 for linking working python script that
23 | * supported both GSv2&3
24 | *
25 | * @author Austin Bischoff
26 | */
27 | class GameQ_Protocols_Armedassault3 extends GameQ_Protocols_Gamespy3
28 | {
29 | protected $name = "armedassault3";
30 | protected $name_long = "Armed Assault 3";
31 |
32 | protected $port = 2302;
33 | }
34 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/avp.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Aliens vs Preadtor Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Avp extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "avp";
27 | protected $name_long = "Aliens vs Preadtor";
28 |
29 | protected $port = 27888;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/avp2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Aliens vs Predator 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Avp2 extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "avp2";
27 | protected $name_long = "Aliens vs Predator 2";
28 |
29 | protected $state = self::STATE_TESTING;
30 |
31 | protected $port = 27888;
32 | }
33 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/bf1942.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Battlefield 1942 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Bf1942 extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "bf1942";
27 | protected $name_long = "Battlefield 1942";
28 |
29 | protected $port = 23000;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/bf2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Battlefield 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Bf2 extends GameQ_Protocols_Gamespy3
25 | {
26 | protected $name = "bf2";
27 | protected $name_long = "Battlefield 2";
28 |
29 | protected $port = 29900;
30 |
31 | /**
32 | * Set the packet mode to multi, Gamespy v3 is by default a linear set of calls
33 | *
34 | * @var string
35 | */
36 | protected $packet_mode = self::PACKET_MODE_MULTI;
37 |
38 | /**
39 | * Array of packets we want to look up.
40 | * Each key should correspond to a defined method in this or a parent class
41 | *
42 | * @var array
43 | */
44 | protected $packets = array(
45 | self::PACKET_ALL => "\xFE\xFD\x00\x10\x20\x30\x40\xFF\xFF\xFF\x01",
46 | );
47 |
48 | /**
49 | * Methods to be run when processing the response(s)
50 | *
51 | * @var array
52 | */
53 | protected $process_methods = array(
54 | "process_all",
55 | );
56 | }
57 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/bf2142.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Battlefield 2142 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Bf2142 extends GameQ_Protocols_Gamespy3
25 | {
26 | protected $name = "bf2142";
27 | protected $name_long = "Battlefield 2142";
28 |
29 | protected $port = 29900;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/bfv.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Battlefield Vietnam Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Bfv extends GameQ_Protocols_Gamespy2
25 | {
26 | protected $name = "bfv";
27 | protected $name_long = "Battlefield Vietnam";
28 |
29 | protected $port = 23000;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/brink.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Brink Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Brink extends GameQ_Protocols_Source
25 | {
26 | protected $name = "brink";
27 | protected $name_long = "Brink";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/cod.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Call of Duty Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Cod extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "cod";
27 | protected $name_long = "Call of Duty";
28 |
29 | protected $port = 28960;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/cod2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Call of Duty 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Cod2 extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "cod2";
27 | protected $name_long = "Call of Duty 2";
28 |
29 | protected $port = 28960;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/cod4.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Call of Duty 4 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Cod4 extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "cod4";
27 | protected $name_long = "Call of Duty 4";
28 |
29 | protected $port = 28960;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/codmw3.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Call of Duty: Modern Warfare 3 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Codmw3 extends GameQ_Protocols_Source
25 | {
26 | protected $name = "codmw3";
27 | protected $name_long = "Call of Duty: Modern Warfare 3";
28 |
29 | protected $port = 27015;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/coduo.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Call of Duty: United Offensive Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Coduo extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "coduo";
27 | protected $name_long = "Call of Duty: United Offensive";
28 |
29 | protected $port = 28960;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/codwaw.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Call of Duty: World at War Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Codwaw extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "codwaw";
27 | protected $name_long = "Call of Duty: World at War";
28 |
29 | protected $port = 28960;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/crysis.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Crysis Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Crysis extends GameQ_Protocols_Gamespy3
25 | {
26 | protected $name = "crysis";
27 | protected $name_long = "Crysis";
28 |
29 | protected $port = 64087;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/crysis2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Crysis 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Crysis2 extends GameQ_Protocols_Gamespy3
25 | {
26 | protected $name = "crysis2";
27 | protected $name_long = "Crysis 2";
28 |
29 | protected $port = 64000;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/crysiswarhead.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Crysis Warhead Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Crysiswarhead extends GameQ_Protocols_Gamespy3
25 | {
26 | protected $name = "crysiswarhead";
27 | protected $name_long = "Crysis Warhead";
28 |
29 | protected $port = 64100;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/crysiswars.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Crysis Wars Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Crysiswars extends GameQ_Protocols_Gamespy3
25 | {
26 | protected $name = "crysiswars";
27 | protected $name_long = "Crysis Wars";
28 |
29 | protected $port = 64100;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/cs16.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Counter-Strike 1.6 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Cs16 extends GameQ_Protocols_Source
25 | {
26 | protected $name = "cs16";
27 | protected $name_long = "Counter-Strike 1.6";
28 |
29 | /**
30 | * We have to overload this function to cheat the rules processing because of some wierdness, old ass game!
31 | *
32 | * @see GameQ_Protocols_Source::preProcess_rules()
33 | */
34 | protected function preProcess_rules($packets)
35 | {
36 | $engine_orig = $this->source_engine;
37 |
38 | // Override the engine type for rules, not sure why its like that
39 | $this->source_engine = self::GOLDSOURCE_ENGINE;
40 |
41 | // Now process the rules
42 | $ret = parent::preProcess_rules($packets);
43 |
44 | // Reset the engine type
45 | $this->source_engine = $engine_orig;
46 |
47 | return $ret;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/cscz.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Counter-Strike: Condition Zero Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Cscz extends GameQ_Protocols_Source
25 | {
26 | protected $name = "cscz";
27 | protected $name_long = "Counter-Strike: Condition Zero";
28 |
29 | /**
30 | * We have to overload this function to cheat the rules processing because of some wierdness, old ass game!
31 | *
32 | * @see GameQ_Protocols_Source::preProcess_rules()
33 | */
34 | protected function preProcess_rules($packets)
35 | {
36 | $engine_orig = $this->source_engine;
37 |
38 | // Override the engine type for rules, not sure why its like that
39 | $this->source_engine = self::GOLDSOURCE_ENGINE;
40 |
41 | // Now process the rules
42 | $ret = parent::preProcess_rules($packets);
43 |
44 | // Reset the engine type
45 | $this->source_engine = $engine_orig;
46 |
47 | return $ret;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/csgo.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Counter-Strike: Global Offensive Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Csgo extends GameQ_Protocols_Source
25 | {
26 | protected $name = "csgo";
27 | protected $name_long = "Counter-Strike: Global Offensive";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/css.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Counter-Strike: Source Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Css extends GameQ_Protocols_Source
25 | {
26 | protected $name = "css";
27 | protected $name_long = "Counter-Strike: Source";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/dayz.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * DayZ Standalone Protocol Class
21 | *
22 | * Note that this is not DayZ Mod but a standalone game in Steam
23 | *
24 | * @author Austin Bischoff
25 | */
26 | class GameQ_Protocols_Dayz extends GameQ_Protocols_Source
27 | {
28 | protected $name = "dayz";
29 | protected $name_long = "DayZ Standalone";
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/dayzmod.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * DayZ Mod Protocol Class
21 | *
22 | * @author Marcel Bößendörfer
23 | * @author Austin Bischoff
24 | */
25 | class GameQ_Protocols_Dayzmod extends GameQ_Protocols_Armedassault2
26 | {
27 | protected $name = "dayzmod";
28 | protected $name_long = "DayZ Mod";
29 | }
30 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/dod.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Day of Defeat Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Dod extends GameQ_Protocols_Source
25 | {
26 | protected $name = "dod";
27 | protected $name_long = "Day of Defeat";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/dods.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Day of Defeat: Source Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Dods extends GameQ_Protocols_Source
25 | {
26 | protected $name = "dods";
27 | protected $name_long = "Day of Defeat: Source";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/et.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Wolfenstein Enemy Territory Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Et extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "et";
27 | protected $name_long = "Wolfenstein Enemy Territory";
28 |
29 | protected $port = 27960;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/fear.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * F.E.A.R. Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Fear extends GameQ_Protocols_Gamespy2
25 | {
26 | protected $name = "fear";
27 | protected $name_long = "F.E.A.R.";
28 |
29 | protected $port = 27888;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/ffe.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Fortress Forever Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Ffe extends GameQ_Protocols_Source
25 | {
26 | protected $name = "ffe";
27 | protected $name_long = "Fortress Forever";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/gamespy4.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * GameSpy4 Protocol Class
21 | *
22 | * By all accounts GameSpy 4 seems to be GameSpy 3.
23 | *
24 | * References:
25 | * http://www.deletedscreen.com/?p=951
26 | * http://pastebin.com/2zZFDuTd
27 | *
28 | * @author Austin Bischoff
29 | */
30 | class GameQ_Protocols_Gamespy4 extends GameQ_Protocols_Gamespy3 {}
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/gmod.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Garry's Mod Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Gmod extends GameQ_Protocols_Source
25 | {
26 | protected $name = "gmod";
27 | protected $name_long = "Garry's Mod";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/gore.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Gore Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Gore extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "gore";
27 | protected $name_long = "Gore";
28 |
29 | protected $port = 27778;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/graw.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Ghost Recon: Advanced Warfighter Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Graw extends GameQ_Protocols_Gamespy2
25 | {
26 | protected $name = "graw";
27 | protected $name_long = "Ghost Recon: Advanced Warfighter";
28 |
29 | protected $port = 15250;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/graw2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Ghost Recon: Advanced Warfighter 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Graw2 extends GameQ_Protocols_Gamespy2
25 | {
26 | protected $name = "graw2";
27 | protected $name_long = "Ghost Recon: Advanced Warfighter 2";
28 |
29 | protected $port = 16250;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/hl2dm.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Half Life 2: Deathmatch Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Hl2dm extends GameQ_Protocols_Source
25 | {
26 | protected $name = "hl2dm";
27 | protected $name_long = "Half Life 2: Deathmatch";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/hldm.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Half Life Deathmatch Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Hldm extends GameQ_Protocols_Source
25 | {
26 | protected $name = "hldm";
27 | protected $name_long = "Half Life: Deathmatch";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/homefront.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Homefront Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Homefront extends GameQ_Protocols_Source
25 | {
26 | protected $name = "homefront";
27 | protected $name_long = "Homefront";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/http.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Http Protocol Class
21 | *
22 | * Used for making actual http requests to servers for information
23 | *
24 | * @author Austin Bischoff
25 | */
26 | abstract class GameQ_Protocols_Http extends GameQ_Protocols
27 | {
28 | /**
29 | * Set the transport to use TCP
30 | *
31 | * @var string
32 | */
33 | protected $transport = self::TRANSPORT_TCP;
34 |
35 | /**
36 | * Default port for this server type
37 | *
38 | * @var int
39 | */
40 | protected $port = 80; // Default port, used if not set when instanced
41 |
42 | }
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/insurgency.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Insurgency Mod Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Insurgency extends GameQ_Protocols_Source
25 | {
26 | protected $name = "insurgency";
27 | protected $name_long = "Insurgency";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/jc2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Just Cause 2 Multiplayer Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Jc2 extends GameQ_Protocols_Source
25 | {
26 | protected $name = "jc2";
27 | protected $name_long = "Just Cause 2 Multiplayer";
28 |
29 | protected $port = 7777;
30 |
31 | protected function process_details()
32 | {
33 | // Process the server details first
34 | $results = parent::process_details();
35 |
36 | // Now we need to fix the "map" for their hack
37 | if(isset($results['map'])
38 | && preg_match('/(?P\d{1,})\/(?P\d{1,})/i', trim($results['map']), $m))
39 | {
40 | // Define the player counts
41 | $results['num_players'] = $m['cur'];
42 | $results['max_players'] = $m['max'];
43 |
44 | unset($m);
45 | }
46 |
47 | // Map never changes it seems...
48 | $results['map'] = 'Panau';
49 |
50 | return $results;
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/l4d.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Left 4 Dead Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_L4d extends GameQ_Protocols_Source
25 | {
26 | protected $name = "l4d";
27 | protected $name_long = "Left 4 Dead";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/l4d2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Left 4 Dead 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_L4d2 extends GameQ_Protocols_Source
25 | {
26 | protected $name = "l4d2";
27 | protected $name_long = "Left 4 Dead 2";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/minecraft.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Mincraft Protocol Class
21 | *
22 | * Thanks to https://github.com/xPaw/PHP-Minecraft-Query for helping me realize this is
23 | * Gamespy 3 Protocol. Make sure you enable the items below for it to work.
24 | *
25 | * Information from original author:
26 | * Instructions
27 | *
28 | * Before using this class, you need to make sure that your server is running GS4 status listener.
29 | *
30 | * Look for those settings in server.properties:
31 | *
32 | * enable-query=true
33 | * query.port=25565
34 | *
35 | * @author Austin Bischoff
36 | */
37 | class GameQ_Protocols_Minecraft extends GameQ_Protocols_Gamespy4
38 | {
39 | protected $name = "minecraft";
40 | protected $name_long = "Minecraft";
41 |
42 | protected $port = 25565;
43 | }
44 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/mohaa.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Medal of Honor: Allied Assault Protocol Class
21 | *
22 | * @author Marcel Bößendörfer
23 | */
24 | class GameQ_Protocols_Mohaa extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "mohaa";
27 | protected $name_long = "Medal of Honor: Allied Assault";
28 |
29 | protected $port = 12300;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/mohsh.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Medal of Honor: Spearhead Protocol Class
21 | *
22 | * @author Marcel Bößendörfer
23 | */
24 | class GameQ_Protocols_Mohsh extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "mohsh";
27 | protected $name_long = "Medal of Honor: Spearhead";
28 |
29 | protected $port = 12300;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/mta.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Multi Theft Auto Protocol Class
21 | *
22 | * @author Marcel Bößendörfer
23 | */
24 | class GameQ_Protocols_Mta extends GameQ_Protocols_ASE
25 | {
26 | protected $name = "Mta";
27 | protected $name_long = "Multi Theft Auto";
28 |
29 | protected $port = 22126;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/ns.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Natural Selection Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Ns extends GameQ_Protocols_Source
25 | {
26 | protected $name = "ns";
27 | protected $name_long = "Natural Selection";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/ns2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Natural Selection 2 Protocol Class
21 | *
22 | * Note that the query port is the server connect port + 1
23 | *
24 | * @author Austin Bischoff
25 | */
26 | class GameQ_Protocols_Ns2 extends GameQ_Protocols_Source
27 | {
28 | protected $name = "ns2";
29 | protected $name_long = "Natural Selection 2";
30 |
31 | /**
32 | * Default port for this server type
33 | *
34 | * @var int
35 | */
36 | protected $port = 27016;
37 | }
38 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/quake4.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Quake 4 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Quake4 extends GameQ_Protocols_Doom3
25 | {
26 | protected $name = "quake4";
27 | protected $name_long = "Quake 4";
28 |
29 | protected $port = 28004;
30 |
31 | protected function parsePlayers(GameQ_Buffer &$buf, GameQ_Result &$result)
32 | {
33 | while (($id = $buf->readInt8()) != 32)
34 | {
35 | $result->addPlayer('id', $id);
36 | $result->addPlayer('ping', $buf->readInt16());
37 | $result->addPlayer('rate', $buf->readInt32());
38 | $result->addPlayer('name', $buf->readString());
39 | $result->addPlayer('clantag', $buf->readString());
40 | }
41 |
42 | return true;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/redorchestra.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Red Orchestra: Ostfront 41-45 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Redorchestra extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "redorchestra";
27 | protected $name_long = "Red Orchestra: Ostfront 41-45";
28 |
29 | protected $port = 7767;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/redorchestra2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Red Orchestra 2 Protocol Class
21 | *
22 | * Thanks to http://forums.tripwireinteractive.com/showthread.php?t=72439 for information about the protocol
23 | *
24 | * @author Austin Bischoff
25 | */
26 | class GameQ_Protocols_Redorchestra2 extends GameQ_Protocols_Source
27 | {
28 | protected $name = "redorchestra2";
29 | protected $name_long = "Red Orchestra 2";
30 |
31 | protected $port = 27015;
32 | }
33 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/rtcw.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Return to Castle Wolfenstein Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Rtcw extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "rtcw";
27 | protected $name_long = "Return to Castle Wolfenstein";
28 |
29 | protected $port = 27960;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/rust.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Rust Protocol Class
21 | *
22 | * Seems to respond to A2S but no rules, unsure if players is complete
23 | *
24 | * @author Austin Bischoff
25 | */
26 | class GameQ_Protocols_Rust extends GameQ_Protocols_Source
27 | {
28 | protected $name = "rust";
29 | protected $name_long = "Rust";
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/sof2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Soldier of Fortune 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Sof2 extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "sof2";
27 | protected $name_long = "Soldier of Fortune 2";
28 |
29 | protected $port = 20100;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/soldat.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Soldat Protocol Class
21 | *
22 | * @author Marcel Bößendörfer
23 | */
24 | class GameQ_Protocols_Soldat extends GameQ_Protocols_ASE
25 | {
26 | protected $name = "Soldat";
27 | protected $name_long = "Soldat";
28 |
29 | protected $port = 23196;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/stalker.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Stalker Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Stalker extends GameQ_Protocols_Gamespy2
25 | {
26 | protected $name = "stalker";
27 | protected $name_long = "S.T.A.L.K.E.R: Shadow of Chernobyl";
28 |
29 | protected $port = 5445;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/starbound.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Starbound Protocol Class
21 | *
22 | * Unable to test if player information is returned. Also appears the challenge procedure
23 | * is ignored.
24 | *
25 | * @author Austin Bischoff
26 | */
27 | class GameQ_Protocols_Starbound extends GameQ_Protocols_Source
28 | {
29 | protected $name = "starbound";
30 | protected $name_long = "Starbound";
31 |
32 | protected $port = 21025;
33 | }
34 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/terraria.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Terraria Protocol Class
21 | *
22 | * This class utilizes the Tshock protocol
23 | *
24 | * @author Austin Bischoff
25 | */
26 | class GameQ_Protocols_Terraria extends GameQ_Protocols_Tshock
27 | {
28 | /**
29 | * Default port for this server type
30 | *
31 | * @var int
32 | */
33 | protected $port = 7878; // Default port, used if not set when instanced
34 |
35 | /**
36 | * String name of this protocol class
37 | *
38 | * @var string
39 | */
40 | protected $name = 'terraria';
41 |
42 | /**
43 | * Longer string name of this protocol class
44 | *
45 | * @var string
46 | */
47 | protected $name_long = "Terraria";
48 | }
49 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/tf2.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Team Fortress 2 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Tf2 extends GameQ_Protocols_Source
25 | {
26 | protected $name = "tf2";
27 | protected $name_long = "Team Fortress 2";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/tfc.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Team Fortress Classic Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Tfc extends GameQ_Protocols_Source
25 | {
26 | protected $name = "tfc";
27 | protected $name_long = "Team Fortress Classic";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/ut.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Unreal Tournament Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Ut extends GameQ_Protocols_Gamespy
25 | {
26 | protected $name = "ut";
27 | protected $name_long = "Unreal Tournament";
28 |
29 | protected $port = 7778;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/ut2004.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Unreal Tournament 2004 Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Ut2004 extends GameQ_Protocols_Unreal2
25 | {
26 | protected $name = "ut2004";
27 | protected $name_long = "Unreal Tournament 2004";
28 |
29 | protected $port = 7778;
30 | }
31 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/warsow.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Warsow Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Warsow extends GameQ_Protocols_Quake3
25 | {
26 | protected $name = "warsow";
27 | protected $name_long = "Warsow";
28 |
29 | protected $port = 44400;
30 |
31 | /**
32 | * Overload the parse players because the data coming back is different
33 | * @see GameQ_Protocols_Quake3::parsePlayers()
34 | */
35 | protected function parsePlayers(GameQ_Result &$result, $players_info)
36 | {
37 | // Explode the arrays out
38 | $players = explode("\x0A", $players_info);
39 |
40 | // Remove the last array item as it is junk
41 | array_pop($players);
42 |
43 | // Add total number of players
44 | $result->add('num_players', count($players));
45 |
46 | // Loop the players
47 | foreach($players AS $player_info)
48 | {
49 | $buf = new GameQ_Buffer($player_info);
50 |
51 | // Add player info
52 | $result->addPlayer('frags', $buf->readString("\x20"));
53 | $result->addPlayer('ping', $buf->readString("\x20"));
54 |
55 | // Skip first "
56 | $buf->skip(1);
57 |
58 | // Add player name
59 | $result->addPlayer('name', trim($buf->readString('"')));
60 |
61 | // Skip space
62 | $buf->skip(1);
63 |
64 | // Add team
65 | $result->addPlayer('team', $buf->read());
66 | }
67 |
68 | // Free some memory
69 | unset($buf, $players, $player_info);
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/zombiemaster.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Zombie Master Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Zombiemaster extends GameQ_Protocols_Source
25 | {
26 | protected $name = "zombiemaster";
27 | protected $name_long = "Zombie Master";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/gameq/protocols/zps.php:
--------------------------------------------------------------------------------
1 | .
17 | */
18 |
19 | /**
20 | * Zombie Panic Source Protocol Class
21 | *
22 | * @author Austin Bischoff
23 | */
24 | class GameQ_Protocols_Zps extends GameQ_Protocols_Source
25 | {
26 | protected $name = "zps";
27 | protected $name_long = "Zombie Panic Source";
28 | }
29 |
--------------------------------------------------------------------------------
/includes/GameQ/tests/phpunit.xml:
--------------------------------------------------------------------------------
1 |
20 |
21 |
22 | /path/to/*Test.php files
23 | /path/to/MyTest.php
24 | /path/to/exclude
25 |
26 |
27 |
--------------------------------------------------------------------------------
/includes/SSH/index.php:
--------------------------------------------------------------------------------
1 |