├── LICENSE.txt ├── README.md ├── README.txt ├── _SERVERS ├── .htaccess ├── accounts │ ├── .htaccess │ └── index.php ├── addons │ ├── .htaccess │ └── index.php ├── index.php ├── logs │ ├── .htaccess │ ├── gpx.log │ ├── index.php │ ├── servers.log │ ├── steam.log │ ├── steamcmdgame.log │ └── templates.log ├── scripts │ ├── .htaccess │ ├── AutoInstall │ ├── ChangePassword │ ├── CheckAddonCreationStatus │ ├── CheckCreateServerStatus │ ├── CheckGame │ ├── CheckInstall │ ├── CheckLoad │ ├── CheckSupportedInstallStatus │ ├── CheckTemplateStatus │ ├── CheckTemplates │ ├── CheckUpdateStatus │ ├── ConfigUpdate │ ├── CreateAddon │ ├── CreateDirectory │ ├── CreateServer │ ├── CreateTemplate │ ├── CreateUser │ ├── DeleteAddon │ ├── DeleteDirectory │ ├── DeleteServer │ ├── DeleteTemplate │ ├── DeleteUser │ ├── FileContent │ ├── FileDelete │ ├── FileSave │ ├── FileType │ ├── GPXManager │ ├── InstallAddon │ ├── InstallSupportedServer │ ├── MoveServerLocal │ ├── RemoveAddon │ ├── Restart │ ├── ServerOutput │ ├── ServerSendCMD │ ├── SteamCMDFunctions │ ├── SteamCMDInstall │ ├── SteamInstall │ ├── Stop │ ├── UpdateServer │ └── UsernameChange ├── templates │ ├── .htaccess │ └── index.php ├── tmp │ ├── .htaccess │ └── index.php └── uploads │ ├── .htaccess │ └── index.php ├── admin ├── admins.php ├── checkallowed.php ├── cloudgames.php ├── default.php ├── games.php ├── gamesadd.php ├── gamesedit.php ├── index.php ├── lang.php ├── login.php ├── logout.php ├── network.php ├── networkadd.php ├── networkedit.php ├── networkips.php ├── plugins.php ├── serveradd.php ├── servers.php ├── settings.php ├── templates.php ├── userperms.php ├── users.php ├── viewadmin.php └── viewuser.php ├── ajax ├── admin_actions.php ├── admin_create_form.php ├── admin_tabs.php ├── ajax.php ├── checkallowed.php ├── checklogin.php ├── cloud_actions.php ├── cloud_gameinfo.php ├── cloud_gameinstall.php ├── file_actions.php ├── file_load_dir.php ├── file_upload.php ├── games_actions.php ├── games_startup.php ├── games_tabs.php ├── index.php ├── login_actions.php ├── network_actions.php ├── network_create_form.php ├── network_edit.php ├── network_tabs.php ├── plugin_actions.php ├── server_actions.php ├── server_files.php ├── server_info.php ├── server_settings.php ├── server_startup.php ├── server_tabs.php ├── settings_save.php ├── template_actions.php ├── template_create_form.php ├── template_edit.php ├── template_status.php ├── user_actions.php ├── user_create_form.php ├── user_edit.php └── user_tabs.php ├── api ├── api.php ├── index.php ├── servers.php └── users.php ├── checkallowed.php ├── configuration.new.php ├── default.php ├── favicon.ico ├── images ├── gameicons │ ├── medium │ │ ├── bf2.png │ │ ├── cod2.png │ │ ├── cod4.png │ │ ├── cod_waw.png │ │ ├── cs_16.png │ │ ├── cs_cz.png │ │ ├── cs_go.png │ │ ├── cs_pm.png │ │ ├── cs_s.png │ │ ├── cs_s_icon.png │ │ ├── default.png │ │ ├── dod.png │ │ ├── dod_s.png │ │ ├── gta_samp.png │ │ ├── hl2_dm.png │ │ ├── l4d.png │ │ ├── l4d_2.png │ │ ├── mcraft.png │ │ ├── murmur.png │ │ ├── tf2.png │ │ ├── ts.png │ │ ├── ts2.png │ │ ├── ts3.png │ │ ├── unsupported.png │ │ ├── vent.png │ │ └── ws_et.png │ └── small │ │ ├── bf2.png │ │ ├── cloud_actions.php │ │ ├── cloud_gameinfo.php │ │ ├── cod2.png │ │ ├── cod4.png │ │ ├── cod_waw.png │ │ ├── cs_16.png │ │ ├── cs_cz.png │ │ ├── cs_go.png │ │ ├── cs_pm.png │ │ ├── cs_s.png │ │ ├── default.png │ │ ├── dod.png │ │ ├── dod_s.png │ │ ├── games.png │ │ ├── gta_samp.png │ │ ├── hl2_dm.png │ │ ├── l4d.png │ │ ├── l4d_2.png │ │ ├── mcft.png │ │ ├── mcraft.png │ │ ├── murmur.png │ │ ├── tf2.png │ │ ├── ts.png │ │ ├── ts2.png │ │ ├── ts3.png │ │ ├── vent.png │ │ └── ws_et.png ├── icons │ ├── medium │ │ ├── accounts.png │ │ ├── add.png │ │ ├── automatic.png │ │ ├── back.png │ │ ├── cloud.png │ │ ├── completed.png │ │ ├── edit.png │ │ ├── error.png │ │ ├── file.png │ │ ├── files.png │ │ ├── folder.png │ │ ├── home.png │ │ ├── info.png │ │ ├── logout.png │ │ ├── network.png │ │ ├── news.png │ │ ├── plugins.png │ │ ├── server_restart.png │ │ ├── server_stop.png │ │ ├── servers.png │ │ ├── startup.png │ │ ├── steam.png │ │ ├── success.png │ │ ├── template.png │ │ └── update.png │ └── small │ │ ├── accounts.png │ │ ├── automatic.png │ │ ├── back.png │ │ ├── plugins.png │ │ ├── select_down_arrow.png │ │ └── steam.png ├── index.php └── logo.png ├── includes ├── GameQ │ ├── GameQ.php │ ├── LICENSE │ ├── README.md │ ├── composer.json │ ├── examples │ │ ├── index.php │ │ └── list.php │ ├── gameq │ │ ├── buffer.php │ │ ├── filters.php │ │ ├── filters │ │ │ ├── core.php │ │ │ ├── normalise.php │ │ │ └── stripcolor.php │ │ ├── protocols.php │ │ ├── protocols │ │ │ ├── aa.php │ │ │ ├── aa3.php │ │ │ ├── aa3pre32.php │ │ │ ├── alienswarm.php │ │ │ ├── aoc.php │ │ │ ├── armedassault.php │ │ │ ├── armedassault2.php │ │ │ ├── armedassault2oa.php │ │ │ ├── armedassault3.php │ │ │ ├── ase.php │ │ │ ├── avp.php │ │ │ ├── avp2.php │ │ │ ├── bf1942.php │ │ │ ├── bf2.php │ │ │ ├── bf2142.php │ │ │ ├── bf3.php │ │ │ ├── bf4.php │ │ │ ├── bfbc2.php │ │ │ ├── bfv.php │ │ │ ├── brink.php │ │ │ ├── cod.php │ │ │ ├── cod2.php │ │ │ ├── cod4.php │ │ │ ├── codmw3.php │ │ │ ├── coduo.php │ │ │ ├── codwaw.php │ │ │ ├── core.php │ │ │ ├── crysis.php │ │ │ ├── crysis2.php │ │ │ ├── crysiswarhead.php │ │ │ ├── crysiswars.php │ │ │ ├── cs16.php │ │ │ ├── cscz.php │ │ │ ├── csgo.php │ │ │ ├── css.php │ │ │ ├── cube2.php │ │ │ ├── dayz.php │ │ │ ├── dayzmod.php │ │ │ ├── dod.php │ │ │ ├── dods.php │ │ │ ├── doom3.php │ │ │ ├── et.php │ │ │ ├── etqw.php │ │ │ ├── fear.php │ │ │ ├── ffe.php │ │ │ ├── ffow.php │ │ │ ├── gamespy.php │ │ │ ├── gamespy2.php │ │ │ ├── gamespy3.php │ │ │ ├── gamespy4.php │ │ │ ├── gmod.php │ │ │ ├── gore.php │ │ │ ├── graw.php │ │ │ ├── graw2.php │ │ │ ├── hl2dm.php │ │ │ ├── hldm.php │ │ │ ├── homefront.php │ │ │ ├── http.php │ │ │ ├── insurgency.php │ │ │ ├── jc2.php │ │ │ ├── killingfloor.php │ │ │ ├── l4d.php │ │ │ ├── l4d2.php │ │ │ ├── m2mp.php │ │ │ ├── minecraft.php │ │ │ ├── minequery.php │ │ │ ├── mohaa.php │ │ │ ├── mohsh.php │ │ │ ├── mohwf.php │ │ │ ├── mta.php │ │ │ ├── mumble.php │ │ │ ├── ns.php │ │ │ ├── ns2.php │ │ │ ├── quake2.php │ │ │ ├── quake3.php │ │ │ ├── quake4.php │ │ │ ├── redeclipse.php │ │ │ ├── redfaction.php │ │ │ ├── redorchestra.php │ │ │ ├── redorchestra2.php │ │ │ ├── rtcw.php │ │ │ ├── rust.php │ │ │ ├── samp.php │ │ │ ├── sof2.php │ │ │ ├── soldat.php │ │ │ ├── source.php │ │ │ ├── stalker.php │ │ │ ├── starbound.php │ │ │ ├── teamspeak2.php │ │ │ ├── teamspeak3.php │ │ │ ├── teeworlds.php │ │ │ ├── terraria.php │ │ │ ├── tf2.php │ │ │ ├── tfc.php │ │ │ ├── tribes2.php │ │ │ ├── tshock.php │ │ │ ├── unreal2.php │ │ │ ├── ut.php │ │ │ ├── ut2004.php │ │ │ ├── ut3.php │ │ │ ├── ventrilo.php │ │ │ ├── warsow.php │ │ │ ├── zombiemaster.php │ │ │ └── zps.php │ │ └── result.php │ └── tests │ │ ├── GameQ │ │ └── protocols │ │ │ └── bf3Test.php │ │ └── phpunit.xml ├── SSH │ ├── Crypt │ │ ├── AES.php │ │ ├── DES.php │ │ ├── Hash.php │ │ ├── RC4.php │ │ ├── RSA.php │ │ ├── Random.php │ │ ├── Rijndael.php │ │ └── TripleDES.php │ ├── File │ │ ├── ANSI.php │ │ ├── ASN1.php │ │ └── X509.php │ ├── Math │ │ └── BigInteger.php │ ├── Net │ │ ├── SFTP.php │ │ ├── SSH1.php │ │ └── SSH2.php │ ├── index.php │ └── openssl.cnf ├── callback.php ├── classes │ ├── admins.php │ ├── core.php │ ├── files.php │ ├── gameq.php │ ├── index.php │ ├── network.php │ ├── plugins.php │ ├── servers.php │ ├── templates.php │ ├── upload.php │ └── users.php └── index.php ├── index.php ├── install ├── index.php ├── install_actions.php ├── sql │ ├── 3.0.10.sql │ ├── 3.0.11.sql │ ├── 3.0.12.sql │ ├── 3.0.3.sql │ ├── 3.0.4.sql │ ├── 3.0.5.sql │ ├── 3.0.6.sql │ ├── 3.0.8.sql │ └── 3.0.sql ├── update.php └── version.php ├── lang.php ├── languages ├── croatian.php ├── dutch.php ├── english.php ├── french.php ├── german.php ├── hungarian.php ├── index.php ├── japanese.php ├── macedonian.php ├── polish.php ├── portuguese.php ├── romanian.php └── spanish.php ├── login.php ├── logout.php ├── plugins ├── index.php └── my_plugin123 │ ├── my_plugin123.php │ └── plugin.json.txt ├── scripts ├── base64.js ├── ddslick.js ├── gpx.js ├── gpxadmin.js ├── index.php ├── internal.min.js ├── internal │ ├── admins.js │ ├── cloud.js │ ├── files.js │ ├── games.js │ ├── install.js │ ├── login.js │ ├── network.js │ ├── plugins.js │ ├── servers.js │ ├── settings.js │ ├── templates.js │ └── users.js ├── jquery-ui.min.js ├── jquery.dd.js ├── jquery.form.js ├── jquery.min.js ├── jquery.simplemodal.min.js └── upload │ ├── fileuploader.css │ ├── fileuploader.js │ └── loading.gif ├── servers.php ├── settings.php ├── themes ├── dark │ ├── index.css │ └── index.php ├── dd.css ├── default │ ├── index.css │ └── index.php ├── index.php └── modern │ ├── index.css │ └── index.php └── uploads ├── .htaccess └── index.php /README.md: -------------------------------------------------------------------------------- 1 | ============= 2 | 3 | GamePanelX-V3 4 | 5 | Created by Ryan Gehrig 6 | 7 | GamePanelX is a Free and Open Source Game Control Panel. It was the first full-featured, useful game control panel which started in 2007. 8 | 9 | 10 | Website: https://gamepanelx.com/ 11 | 12 | Documentation: https://gamepanelx.com/wikiv3/index.php?title=Main_Page 13 | 14 | Forums: https://gamepanelx.com/forums/ 15 | 16 | Latest Downloads: https://gamepanelx.com/downloads/ 17 | -------------------------------------------------------------------------------- /README.txt: -------------------------------------------------------------------------------- 1 | Website: http://gamepanelx.com/ 2 | Downloads: http://gamepanelx.com/downloads/ 3 | Documentation: http://gamepanelx.com/wikiv3/index.php?title=Main_Page 4 | Forums: https://gamepanelx.com/forums/ 5 | -------------------------------------------------------------------------------- /_SERVERS/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/accounts/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/accounts/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_SERVERS/addons/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/addons/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_SERVERS/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_SERVERS/logs/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/logs/gpx.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/_SERVERS/logs/gpx.log -------------------------------------------------------------------------------- /_SERVERS/logs/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_SERVERS/logs/servers.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/_SERVERS/logs/servers.log -------------------------------------------------------------------------------- /_SERVERS/logs/steam.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/_SERVERS/logs/steam.log -------------------------------------------------------------------------------- /_SERVERS/logs/steamcmdgame.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/_SERVERS/logs/steamcmdgame.log -------------------------------------------------------------------------------- /_SERVERS/logs/templates.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/_SERVERS/logs/templates.log -------------------------------------------------------------------------------- /_SERVERS/scripts/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/scripts/ChangePassword: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.11 5 | # 6 | # Queue a password change of a gpx user account 7 | # -p passwords should be done with crypt() before giving it here, no plaintext passwords can be used here. 8 | # Example usage: 9 | # 10 | # ./ChangePassword -u test1 -p pass123 11 | # 12 | sso_user= 13 | sso_pass= 14 | tmp_dir="$HOME/tmp" 15 | queue_dir="$HOME/queue" 16 | rand_str="$(date +%s | sha256sum | base64 | head -c 24 ; echo)" 17 | 18 | while getopts "u:p:" OPTION 19 | do 20 | case $OPTION in 21 | u) 22 | sso_user=$OPTARG 23 | ;; 24 | p) 25 | sso_pass=$OPTARG 26 | ;; 27 | ?) 28 | exit 29 | ;; 30 | esac 31 | done 32 | 33 | # Check empty 34 | if [[ "$sso_user" == "" || "$sso_pass" == "" ]] 35 | then 36 | echo "Insufficient info given, exiting." 37 | exit 38 | fi 39 | 40 | # No system accounts in local mode. Just exit 41 | 42 | echo "success" 43 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckAddonCreationStatus: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check status of Addon creation 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CheckAddonCreationStatus -i fa4990f190de97a37abfab9980e8df8e06bbc291 12 | # 13 | tpl_hash= 14 | 15 | while getopts "i:" OPTION 16 | do 17 | case $OPTION in 18 | i) 19 | tpl_hash=$OPTARG 20 | ;; 21 | ?) 22 | exit 23 | ;; 24 | esac 25 | done 26 | 27 | if [[ "$tpl_hash" == "" ]] 28 | then 29 | echo "CheckAddonCreationStatus: Required settings were left out. Exiting." 30 | exit 31 | fi 32 | 33 | if [ -f $HOME/addons/.gpx_$tpl_hash ] 34 | then 35 | pid=`cat $HOME/addons/.gpx_$tpl_hash` 36 | check_pid=`ps aux | grep $pid | grep -v grep` 37 | 38 | if [ "$check_pid" == "" ] 39 | then 40 | echo "complete" 41 | else 42 | echo "running" 43 | fi 44 | else 45 | echo "complete" 46 | fi 47 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckCreateServerStatus: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check status of Game/Voice Server creation 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CheckCreateServerStatus -u user123 -t game -i 192.168.10.10 -p 27015 12 | # 13 | srv_username= 14 | srv_type= 15 | srv_ip= 16 | srv_port= 17 | 18 | while getopts "u:t:i:p:" OPTION 19 | do 20 | case $OPTION in 21 | u) 22 | srv_username=$OPTARG 23 | ;; 24 | t) 25 | srv_type=$OPTARG 26 | ;; 27 | i) 28 | srv_ip=$OPTARG 29 | ;; 30 | p) 31 | srv_port=$OPTARG 32 | ;; 33 | ?) 34 | exit 35 | ;; 36 | esac 37 | done 38 | 39 | 40 | if [[ "$srv_username" == "" || "$srv_type" == "" || "$srv_ip" == "" || "$srv_port" == "" ]] 41 | then 42 | echo "CheckCreateServerStatus: Required settings were left out. Exiting." 43 | exit 44 | fi 45 | 46 | if [ -f $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/.gpx_template ] 47 | then 48 | pid=`cat $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/.gpx_template` 49 | check_pid=`ps aux | grep $pid | grep -v grep` 50 | 51 | if [ "$check_pid" == "" ] 52 | then 53 | echo "complete" 54 | else 55 | echo "running" 56 | fi 57 | else 58 | echo "complete" 59 | fi 60 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckGame: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check status of servers (get PID(s), cpu/mem info, time running) 7 | # 8 | # -u: Client's gpx username 9 | # -i: Server IP Address (x.x.x.x) 10 | # -p: Server Port 11 | # 12 | # Example usage: 13 | # ./CheckGame -u user123 -i 192.168.10.10 -p 27015 14 | # 15 | srv_username= 16 | srv_ip= 17 | srv_port= 18 | 19 | while getopts "u:i:p:" OPTION 20 | do 21 | case $OPTION in 22 | u) 23 | srv_username=$OPTARG 24 | ;; 25 | i) 26 | srv_ip=$OPTARG 27 | ;; 28 | p) 29 | srv_port=$OPTARG 30 | ;; 31 | ?) 32 | exit 33 | ;; 34 | esac 35 | done 36 | 37 | if [[ "$srv_username" == "" || "$srv_ip" == "" || "$srv_port" == "" ]] 38 | then 39 | echo '{"error":"Restart: Required settings were left out"}' 40 | exit 41 | fi 42 | 43 | # Check for homedir 44 | gpxdir=$HOME/accounts/$srv_username/$srv_ip.$srv_port 45 | 46 | if [ ! -d $gpxdir ] 47 | then 48 | echo '{"error":"Restart: Game directory ('$gpxdir') doesnt exist!"}' 49 | exit 50 | fi 51 | 52 | 53 | srv_username= 54 | srv_ip= 55 | srv_port= 56 | 57 | # Restart PID, server PID 58 | res_pid=$(cat $gpxdir/.gpxrespid) 59 | parent_pid=$(cat $gpxdir/.gpxpid) 60 | child_pid=$(ps -ef | grep $parent_pid | grep -v grep | awk '{print $2}' | grep -v $parent_pid) 61 | 62 | # Get CPU and Mem info 63 | if [ "$child_pid" ] 64 | then 65 | cpuinfo=$(ps aux | grep $child_pid | grep -v grep | awk '{print $3}') 66 | meminfo=$(ps aux | grep $child_pid | grep -v grep | awk '{print $4}') 67 | else 68 | cpuinfo=$(ps aux | grep $parent_pid | grep -v grep | awk '{print $3}') 69 | meminfo=$(ps aux | grep $parent_pid | grep -v grep | awk '{print $4}') 70 | fi 71 | 72 | #echo "Res: $res_pid, parent: $parent_pid, Child: $child_pid, cpu: $cpuinfo, mem: $meminfo" 73 | 74 | 75 | # Output JSON response 76 | echo '{"respid":"'$res_pid'","ppid":"'$parent_pid'","cpid":"'$child_pid'","cpu":"'$cpuinfo'","mem":"'$meminfo'"}' 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckInstall: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check the Remote Server installation 7 | # 8 | master_cback= 9 | user_accounts= 10 | 11 | while getopts "c:u:" OPTION 12 | do 13 | case $OPTION in 14 | c) 15 | master_cback=$OPTARG 16 | ;; 17 | u) 18 | user_accounts=$OPTARG 19 | ;; 20 | ?) 21 | exit 22 | ;; 23 | esac 24 | done 25 | 26 | if [ ! -d "$HOME/scripts" ] 27 | then 28 | echo "Unable to find the scripts directory; exiting." 29 | exit 30 | else 31 | if [ ! -f "$HOME/scripts/CheckLoad" ] 32 | then 33 | echo "Missing scripts in the scripts directory; exiting." 34 | exit 35 | fi 36 | if [ ! -f "$HOME/scripts/Restart" ] 37 | then 38 | echo "Missing scripts in the scripts directory; exiting." 39 | exit 40 | fi 41 | if [ ! -f "$HOME/scripts/Stop" ] 42 | then 43 | echo "Missing scripts in the scripts directory; exiting." 44 | exit 45 | fi 46 | fi 47 | if [ ! -d "$HOME/accounts" ] 48 | then 49 | echo "Unable to find the accounts directory; exiting." 50 | exit 51 | fi 52 | if [ ! -d "$HOME/addons" ] 53 | then 54 | echo "Unable to find the addons directory; exiting." 55 | exit 56 | fi 57 | if [ ! -d "$HOME/templates" ] 58 | then 59 | echo "Unable to find the templates directory; exiting." 60 | exit 61 | fi 62 | if [ ! -d "$HOME/tmp" ] 63 | then 64 | echo "Unable to find the tmp directory; exiting." 65 | exit 66 | fi 67 | if [ ! -d "$HOME/uploads" ] 68 | then 69 | echo "Unable to find the uploads directory; exiting." 70 | exit 71 | fi 72 | 73 | # Create any user account dirs that are in the db 74 | if [ "$user_accounts" ] 75 | then 76 | for usrname in $(echo "$user_accounts" | sed s/,/\\n/g); do 77 | if [ ! -d $HOME/accounts/$usrname ]; then 78 | mkdir $HOME/accounts/$usrname 79 | fi 80 | done 81 | fi 82 | 83 | # Update config with token 84 | if [ "$master_cback" ] 85 | then 86 | # Check if already there 87 | if [ "$(grep master_callback $HOME/etc/config.cfg)" ] 88 | then 89 | # sed -i "s/^master_callback\:\ .*\r\n//g" $HOME/etc/config.cfg 90 | sed -i '/^master_callback\:\ http.*/d' $HOME/etc/config.cfg 91 | echo "master_callback: $master_cback" >> $HOME/etc/config.cfg 92 | else 93 | echo "master_callback: $master_cback" >> $HOME/etc/config.cfg 94 | fi 95 | fi 96 | 97 | echo "success" 98 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckLoad: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check system load average 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CheckLoad 12 | # 13 | freemem=`cat /proc/meminfo | grep MemFree | awk '{print $2}'` 14 | totalmem=`cat /proc/meminfo | grep MemTotal | awk '{print $2}'` 15 | loadavg=`uptime|awk '{print $10}' | tr ',' ' '` 16 | 17 | echo "$loadavg,$totalmem,$freemem" 18 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckSupportedInstallStatus: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check status of Supported Server creation 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CheckSupportedInstallStatus -i 12 12 | # 13 | tpl_id= 14 | total_size= 15 | 16 | while getopts "i:s:" OPTION 17 | do 18 | case $OPTION in 19 | i) 20 | tpl_id=$OPTARG 21 | ;; 22 | s) 23 | # Deprecated 24 | total_size=$OPTARG 25 | ;; 26 | ?) 27 | exit 28 | ;; 29 | esac 30 | done 31 | 32 | if [[ "$tpl_id" == "" ]] 33 | then 34 | echo "CheckSupportedInstallStatus: Required settings were left out. Exiting." 35 | exit 36 | fi 37 | 38 | if [ -f $HOME/tmp/$tpl_id/.gpxpid ] 39 | then 40 | pid=`cat $HOME/tmp/$tpl_id/.gpxpid` 41 | check_pid=`ps aux | grep $pid | grep -v grep` 42 | 43 | # Completed 44 | if [ "$check_pid" == "" ] 45 | then 46 | echo "complete" 47 | # Steam Installs 48 | elif [ -f ~/tmp/$tpl_id/.gpxinstall.log ] 49 | then 50 | # Get percentage done 51 | steam_percent=`tail -n1 ~/tmp/$tpl_id/.gpxinstall.log | awk '{print $1}'` 52 | 53 | # "No" for "No installation record found at ./css" etc 54 | if [ "$steam_percent" == "No" ] 55 | then 56 | echo "running" 57 | else 58 | echo $steam_percent 59 | fi 60 | 61 | # Total Size 62 | else 63 | if [ -n "$total_size" ] 64 | then 65 | curr_size=`du -s $HOME/tmp/$tpl_id/ | awk '{print $1}'` 66 | echo "running,$curr_size" 67 | else 68 | echo "running" 69 | fi 70 | fi 71 | else 72 | echo "unknown" 73 | fi 74 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckTemplateStatus: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check status of Template creation 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CheckTemplateStatus -i fa4990f190de97a37abfab9980e8df8e06bbc291 12 | # 13 | tpl_hash= 14 | 15 | while getopts "i:" OPTION 16 | do 17 | case $OPTION in 18 | i) 19 | tpl_hash=$OPTARG 20 | ;; 21 | ?) 22 | exit 23 | ;; 24 | esac 25 | done 26 | 27 | if [[ "$tpl_hash" == "" ]] 28 | then 29 | echo "CheckTemplateStatus: Required settings were left out. Exiting." 30 | exit 31 | fi 32 | 33 | if [ -f $HOME/templates/.gpx_$tpl_hash ] 34 | then 35 | pid=`cat $HOME/templates/.gpx_$tpl_hash` 36 | check_pid=`ps aux | grep $pid | grep -v grep` 37 | 38 | if [ "$check_pid" == "" ] 39 | then 40 | echo "complete" 41 | else 42 | echo "running" 43 | fi 44 | else 45 | echo "complete" 46 | fi 47 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckTemplates: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check status of Template creation 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CheckTemplateStatus -i fa4990f190de97a37abfab9980e8df8e06bbc291 12 | # 13 | tpl_ids= 14 | outp='{' 15 | 16 | while getopts "i:" OPTION 17 | do 18 | case $OPTION in 19 | i) 20 | tpl_ids=$OPTARG 21 | ;; 22 | ?) 23 | exit 24 | ;; 25 | esac 26 | done 27 | 28 | if [[ "$tpl_ids" == "" ]] 29 | then 30 | echo "CheckTpls: No template IDs provided! Exiting." 31 | exit 32 | fi 33 | 34 | for tplid in $(echo "$tpl_ids" | sed 's/\,/\ /g') 35 | do 36 | if [ -f $HOME/templates/.gpx_"$tplid" ] 37 | then 38 | this_pid="$(cat $HOME/templates/.gpx_"$tplid")" 39 | 40 | if [ "$this_pid" ] 41 | then 42 | # Check if running 43 | # Giving wrong output due to other matching PIDs: if [ "$(ps -ef | grep $this_pid | grep -v grep)" ] 44 | if [ "$(ps -ef | awk '{print $2}' | grep '^'$this_pid'$' | grep -v grep)" ] 45 | then 46 | this_status="running" 47 | else 48 | this_status="complete" 49 | fi 50 | 51 | outp="$outp"'"'$tplid'":"'$this_status'",' 52 | fi 53 | fi 54 | done 55 | 56 | # Remove last comma 57 | outp=${outp%?} 58 | 59 | # Finish JSON output 60 | outp="$outp"'}' 61 | 62 | 63 | # JSON Response 64 | echo $outp 65 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CheckUpdateStatus: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Check status of a Game/Voice server update 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CheckUpdateStatus -u user123 -t game -i 192.168.10.10 -p 27015 12 | # 13 | srv_username= 14 | srv_type= 15 | srv_ip= 16 | srv_port= 17 | 18 | while getopts "u:t:i:p:" OPTION 19 | do 20 | case $OPTION in 21 | u) 22 | srv_username=$OPTARG 23 | ;; 24 | t) 25 | srv_type=$OPTARG 26 | ;; 27 | i) 28 | srv_ip=$OPTARG 29 | ;; 30 | p) 31 | srv_port=$OPTARG 32 | ;; 33 | ?) 34 | exit 35 | ;; 36 | esac 37 | done 38 | 39 | if [[ "$srv_username" == "" || "$srv_type" == "" || "$srv_ip" == "" || "$srv_port" == "" ]] 40 | then 41 | echo "CheckUpdateStatus: Required settings were left out. Exiting." 42 | exit 43 | fi 44 | 45 | if [ -f $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/.gpxupdatepid ] 46 | then 47 | pid=`cat $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/.gpxupdatepid` 48 | check_pid=`ps aux | grep $pid | grep -v grep` 49 | 50 | if [ "$check_pid" == "" ] 51 | then 52 | echo "complete" 53 | else 54 | echo "running" 55 | fi 56 | else 57 | echo "complete" 58 | fi 59 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CreateAddon: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Create a Game/Voice Server Addon 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./CreateAddon -p /home/gpx/tmp/maniadmin -i fa4990f190de97a37abfab9980e8df8e06bbc291 12 | # 13 | tpl_file_path= 14 | tpl_hash= 15 | 16 | while getopts "p:i:" OPTION 17 | do 18 | case $OPTION in 19 | p) 20 | tpl_file_path=$OPTARG 21 | ;; 22 | i) 23 | tpl_hash=$OPTARG 24 | ;; 25 | ?) 26 | exit 27 | ;; 28 | esac 29 | done 30 | 31 | if [[ "$tpl_file_path" == "" || "$tpl_hash" == "" ]] 32 | then 33 | echo "CreateAddon: Required settings were left out. Exiting." 34 | exit 35 | fi 36 | 37 | cd $tpl_file_path 38 | tar -czf $HOME/addons/$tpl_hash.tar.gz * >> /dev/null 2>&1 & 39 | pid=$! 40 | echo $pid > $HOME/addons/.gpx_$tpl_hash 41 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CreateDirectory: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Create Directory on game/voice servers 7 | # 8 | # -u: Client's gpx username 9 | # -i: Server IP Address (x.x.x.x) 10 | # -p: Server Port 11 | # -d: New directory name (with relative path, such as "cstrike/newdirname") 12 | # 13 | # Example usage: 14 | # ./CreateDirectory -u user123 -i 192.168.10.10 -p 27015 -d newdirname 15 | # 16 | srv_username= 17 | srv_ip= 18 | srv_port= 19 | new_dir= 20 | 21 | while getopts "u:i:p:d:" OPTION 22 | do 23 | case $OPTION in 24 | u) 25 | srv_username=$OPTARG 26 | ;; 27 | i) 28 | srv_ip=$OPTARG 29 | ;; 30 | p) 31 | srv_port=$OPTARG 32 | ;; 33 | d) 34 | new_dir=$OPTARG 35 | ;; 36 | ?) 37 | exit 38 | ;; 39 | esac 40 | done 41 | 42 | if [[ "$srv_username" == "" || "$srv_ip" == "" || "$srv_port" == "" || "$new_dir" == "" ]] 43 | then 44 | echo "CreateDirectory: Required settings were left out! Exiting." 45 | exit 46 | fi 47 | 48 | # Check for homedir 49 | gpxdir=$HOME/accounts/$srv_username/$srv_ip.$srv_port 50 | 51 | if [ ! -d $gpxdir ] 52 | then 53 | echo ": Game directory ($gpxdir) doesnt exist! Exiting." 54 | exit 55 | fi 56 | 57 | # Create directory 58 | mkdir $gpxdir/$new_dir 59 | 60 | echo "success" 61 | -------------------------------------------------------------------------------- /_SERVERS/scripts/CreateUser: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.11 5 | # 6 | # Queue creation of a GPX system user 7 | # -p passwords should be done with crypt() before giving it here, no plaintext passwords can be used here. 8 | # Example usage: 9 | # 10 | # Create only: 11 | # ./CreateUser -u test1 -p pass123 12 | # 13 | sso_user= 14 | sso_pass= 15 | tmp_dir="$HOME/tmp" 16 | queue_dir="$HOME/queue" 17 | rand_str="$(date +%s | sha256sum | base64 | head -c 24 ; echo)" 18 | 19 | while getopts "u:p:" OPTION 20 | do 21 | case $OPTION in 22 | u) 23 | sso_user=$OPTARG 24 | ;; 25 | p) 26 | sso_pass=$OPTARG 27 | ;; 28 | ?) 29 | exit 30 | ;; 31 | esac 32 | done 33 | 34 | # Check empty 35 | if [[ "$sso_user" == "" || "$sso_pass" == "" ]] 36 | then 37 | echo "Insufficient info given, exiting." 38 | exit 39 | fi 40 | 41 | # Check if user dir already exists 42 | if [ -d $HOME/accounts/$sso_user ]; then 43 | echo "That user already exists, exiting." 44 | exit 45 | fi 46 | 47 | # Create user dir 48 | mkdir -p $HOME/accounts/$sso_user 49 | 50 | echo "success" 51 | -------------------------------------------------------------------------------- /_SERVERS/scripts/DeleteAddon: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Delete a Game/Voice Addon 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./DeleteAddon -i fa4990f190de97a37abfab9980e8df8e06bbc291 12 | # 13 | tpl_hash= 14 | 15 | while getopts "i:" OPTION 16 | do 17 | case $OPTION in 18 | i) 19 | tpl_hash=$OPTARG 20 | ;; 21 | ?) 22 | exit 23 | ;; 24 | esac 25 | done 26 | 27 | if [[ "$tpl_hash" == "" ]] 28 | then 29 | echo "DeleteAddon: Required settings were left out. Exiting." 30 | exit 31 | fi 32 | 33 | if [ -f $HOME/addons/$tpl_hash.tar.gz ] 34 | then 35 | rm -f $HOME/addons/$tpl_hash.tar.gz $HOME/addons/.gpx_$tpl_hash 36 | fi 37 | -------------------------------------------------------------------------------- /_SERVERS/scripts/DeleteDirectory: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Delete a gameserver directory (only if empty) 7 | # 8 | # Example usage: 9 | # ./DeleteDirectory -f /path/to/some/dir 10 | # 11 | file= 12 | 13 | while getopts "f:" OPTION 14 | do 15 | case $OPTION in 16 | f) 17 | file=$OPTARG 18 | ;; 19 | ?) 20 | exit 21 | ;; 22 | esac 23 | done 24 | 25 | if [ "$file" == "" ] 26 | then 27 | echo "DeleteDirectory: No filename given! Exiting." 28 | exit 29 | fi 30 | 31 | # Ensure directory exists 32 | if [ -f $file ] 33 | then 34 | # Make sure it's empty 35 | if [ "$(ls $file)" == "" ] 36 | then 37 | rmdir $file 38 | echo "success" 39 | else 40 | echo "DeleteDirectory: That directory isnt empty! Exiting." 41 | exit 42 | fi 43 | # No such directory 44 | else 45 | echo "DeleteDirectory: That directory ($file) doesnt exist! Exiting." 46 | fi 47 | 48 | -------------------------------------------------------------------------------- /_SERVERS/scripts/DeleteServer: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX Pro 4 | # Remote scripts v3.0.12 5 | # 6 | # Delete a Game/Voice Server 7 | # 8 | # Example usage: 9 | # ./DeleteServer -u user123 -i 192.168.10.10 -p 27015 10 | # 11 | srv_username= 12 | srv_ip= 13 | srv_port= 14 | 15 | while getopts "u:i:p:" OPTION 16 | do 17 | case $OPTION in 18 | u) 19 | srv_username=$OPTARG 20 | ;; 21 | i) 22 | srv_ip=$OPTARG 23 | ;; 24 | p) 25 | srv_port=$OPTARG 26 | ;; 27 | ?) 28 | exit 29 | ;; 30 | esac 31 | done 32 | 33 | if [[ "$srv_username" == "" || "$srv_ip" == "" || "$srv_port" == "" ]] 34 | then 35 | echo "DeleteServer: Required settings were left out ($srv_username,$srv_ip,$srv_port) . Exiting." 36 | exit 37 | fi 38 | 39 | if [ -d $HOME/accounts/$srv_username/$srv_ip.$srv_port ] 40 | then 41 | # Make sure server is stopped 42 | $HOME/scripts/Stop -u $srv_username -i $srv_ip -p $srv_port >> /dev/null 2>&1 43 | 44 | # Delete all contents 45 | rm -fr $HOME/accounts/$srv_username/$srv_ip.$srv_port >> /dev/null 2>&1 & 46 | fi 47 | 48 | echo "success" 49 | -------------------------------------------------------------------------------- /_SERVERS/scripts/DeleteUser: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.11 5 | # 6 | # Queue deletion of a GPX system user 7 | # 8 | # Example usage: 9 | # 10 | # ./DeleteUser -u test1 11 | # 12 | sso_user= 13 | tmp_dir="$HOME/tmp" 14 | queue_dir="$HOME/queue" 15 | rand_str="$(date +%s | sha256sum | base64 | head -c 24 ; echo)" 16 | 17 | while getopts "u:" OPTION 18 | do 19 | case $OPTION in 20 | u) 21 | sso_user=$OPTARG 22 | ;; 23 | ?) 24 | exit 25 | ;; 26 | esac 27 | done 28 | 29 | # Check empty 30 | if [ "$sso_user" == "" ] 31 | then 32 | echo "No username given, exiting." 33 | exit 34 | fi 35 | 36 | # Delete user dir 37 | rm -fr $HOME/accounts/$sso_user 38 | 39 | echo "success" 40 | -------------------------------------------------------------------------------- /_SERVERS/scripts/FileContent: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Get contents of a file 7 | # 8 | # Example usage: 9 | # ./FileContent -f /path/to/some/file.txt 10 | # 11 | file= 12 | 13 | while getopts "f:" OPTION 14 | do 15 | case $OPTION in 16 | f) 17 | file=$OPTARG 18 | ;; 19 | ?) 20 | exit 21 | ;; 22 | esac 23 | done 24 | 25 | if [ "$file" == "" ] 26 | then 27 | echo "FileContent: No filename given! Exiting." 28 | exit 29 | fi 30 | 31 | cat $file 32 | -------------------------------------------------------------------------------- /_SERVERS/scripts/FileDelete: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Delete a gameserver file 7 | # 8 | # Example usage: 9 | # ./FileDelete -f /path/to/some/file.txt 10 | # 11 | file= 12 | 13 | while getopts "f:" OPTION 14 | do 15 | case $OPTION in 16 | f) 17 | file=$OPTARG 18 | ;; 19 | ?) 20 | exit 21 | ;; 22 | esac 23 | done 24 | 25 | if [ "$file" == "" ] 26 | then 27 | echo "FileDelete: No filename given! Exiting." 28 | exit 29 | fi 30 | 31 | # File exists 32 | if [ -f $file ] 33 | then 34 | rm -f $file 35 | echo "success" 36 | # No such file 37 | else 38 | echo "FileDelete: That file ($file) doesnt exist! Exiting." 39 | fi 40 | 41 | -------------------------------------------------------------------------------- /_SERVERS/scripts/FileSave: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Save new contents to a file 7 | # 8 | # Example usage: 9 | # ./FileSave -f /path/to/some/file.txt -c "lots\nof\n\n\ncontents\nhere" 10 | # 11 | file= 12 | content= 13 | 14 | while getopts "f:c:" OPTION 15 | do 16 | case $OPTION in 17 | f) 18 | file=$OPTARG 19 | ;; 20 | c) 21 | content=$OPTARG 22 | ;; 23 | ?) 24 | exit 25 | ;; 26 | esac 27 | done 28 | 29 | if [ "$file" == "" ] 30 | then 31 | echo "FileSave: No filename given! Exiting." 32 | exit 33 | fi 34 | 35 | if [ ! -f $file ] 36 | then 37 | touch $file 38 | fi 39 | 40 | # Try and strip slashes on quotes 41 | content=$(echo $content | sed 's/\\"/"/g') 42 | 43 | echo -e $content > $file 44 | 45 | echo "success" 46 | -------------------------------------------------------------------------------- /_SERVERS/scripts/FileType: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Get a file type 7 | # 8 | # Example usage: 9 | # 10 | # ./FileType -d /path/to/accounts/user123/game/192.168.10.10\:27015/ -f cstrike/cfg/server.cfg 11 | # 12 | srv_directory= 13 | srv_filename= 14 | 15 | while getopts "d:f:" OPTION 16 | do 17 | case $OPTION in 18 | d) 19 | srv_directory=$OPTARG 20 | ;; 21 | f) 22 | srv_filename=$OPTARG 23 | ;; 24 | ?) 25 | exit 26 | ;; 27 | esac 28 | done 29 | 30 | if [[ "$srv_directory" == "" || "$srv_filename" == "" ]] 31 | then 32 | echo "FileType: Required options were left out" 33 | exit 34 | fi 35 | 36 | if [ ! -d "$srv_directory" ] 37 | then 38 | echo "FileType: The specified directory does not exist" 39 | exit 40 | fi 41 | 42 | if [ ! -f "$srv_directory/$srv_filename" ] 43 | then 44 | echo "FileType: The specified filename does not exist" 45 | exit 46 | fi 47 | 48 | file $srv_directory/$srv_filename 49 | -------------------------------------------------------------------------------- /_SERVERS/scripts/InstallAddon: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Install a Game/Voice server Addon 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./InstallAddon -u user123 -t game -i 192.168.10.10 -p 27015 -x fa4990f190de97a37abfab9980e8df8e06bbc291 -a / 12 | # 13 | srv_username= 14 | srv_type= 15 | srv_ip= 16 | srv_port= 17 | tpl_hash= 18 | install_target= 19 | 20 | while getopts "u:t:i:p:x:a:" OPTION 21 | do 22 | case $OPTION in 23 | u) 24 | srv_username=$OPTARG 25 | ;; 26 | t) 27 | srv_type=$OPTARG 28 | ;; 29 | i) 30 | srv_ip=$OPTARG 31 | ;; 32 | p) 33 | srv_port=$OPTARG 34 | ;; 35 | x) 36 | tpl_hash=$OPTARG 37 | ;; 38 | a) 39 | install_target=$OPTARG 40 | ;; 41 | ?) 42 | exit 43 | ;; 44 | esac 45 | done 46 | 47 | if [[ "$srv_username" == "" || "$srv_type" == "" || "$srv_ip" == "" || "$srv_port" == "" || "$tpl_hash" == "" || "$install_target" == "" ]] 48 | then 49 | echo "InstallAddon: Required settings were left out. Exiting." 50 | exit 51 | fi 52 | 53 | nice -n 19 tar -zxf $HOME/addons/$tpl_hash.tar.gz -C $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/$install_target/ >> /dev/null 2>&1 & 54 | pid=$! 55 | echo $pid > $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/.gpx_addon 56 | 57 | echo "success" 58 | -------------------------------------------------------------------------------- /_SERVERS/scripts/MoveServerLocal: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Move a Game/Voice Server locally to a new User/IP/Port 7 | # 8 | # Example usage: 9 | # ./MoveServerLocal -u user123 -i 192.168.10.10 -p 27015 -U user123 -I 192.168.10.11 -P 27015 10 | # 11 | srv_username= 12 | srv_ip= 13 | srv_port= 14 | srv_new_user= 15 | srv_new_ip= 16 | srv_new_port= 17 | 18 | while getopts "u:i:p:U:I:P:" OPTION 19 | do 20 | case $OPTION in 21 | u) 22 | srv_username=$OPTARG 23 | ;; 24 | i) 25 | srv_ip=$OPTARG 26 | ;; 27 | p) 28 | srv_port=$OPTARG 29 | ;; 30 | U) 31 | srv_new_user=$OPTARG 32 | ;; 33 | I) 34 | srv_new_ip=$OPTARG 35 | ;; 36 | P) 37 | srv_new_port=$OPTARG 38 | ;; 39 | ?) 40 | exit 41 | ;; 42 | esac 43 | done 44 | 45 | if [[ "$srv_username" == "" || "$srv_ip" == "" || "$srv_port" == "" || "$srv_new_user" == "" || "$srv_new_ip" == "" || "$srv_new_port" == "" ]] 46 | then 47 | echo "MoveServerLocal: Required settings were left out. Exiting." 48 | exit 49 | fi 50 | 51 | cur_dir="$HOME/accounts/$srv_username/$srv_ip.$srv_port" 52 | new_dir="$HOME/accounts/$srv_new_user" 53 | 54 | if [ -d $cur_dir ] 55 | then 56 | # Create new dir if needed 57 | if [ ! -d $new_dir ] 58 | then 59 | mkdir -p $new_dir 60 | fi 61 | 62 | # Run the move 63 | mv $cur_dir $new_dir/$srv_new_ip.$srv_new_port >> /dev/null 2>&1 & 64 | else 65 | echo "Server directory ($cur_dir) doesnt exist! Exiting." 66 | exit 67 | fi 68 | 69 | echo "success" 70 | -------------------------------------------------------------------------------- /_SERVERS/scripts/RemoveAddon: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Uninstall a Game/Voice server Addon 7 | # 8 | 9 | # 10 | # Example usage: 11 | # ./RemoveAddon -u user123 -t game -i 192.168.10.10 -p 27015 -x fa4990f190de97a37abfab9980e8df8e06bbc291 -a / -d cfg/script.cfg test.cfg something/else/script.txt 12 | # 13 | srv_username= 14 | srv_type= 15 | srv_ip= 16 | srv_port= 17 | tpl_hash= 18 | install_target= 19 | remove_dirs= 20 | 21 | while getopts "u:t:i:p:x:a:d:" OPTION 22 | do 23 | case $OPTION in 24 | u) 25 | srv_username=$OPTARG 26 | ;; 27 | t) 28 | srv_type=$OPTARG 29 | ;; 30 | i) 31 | srv_ip=$OPTARG 32 | ;; 33 | p) 34 | srv_port=$OPTARG 35 | ;; 36 | x) 37 | tpl_hash=$OPTARG 38 | ;; 39 | a) 40 | install_target=$OPTARG 41 | ;; 42 | d) 43 | remove_dirs=$OPTARG 44 | ;; 45 | ?) 46 | exit 47 | ;; 48 | esac 49 | done 50 | 51 | if [[ "$srv_username" == "" || "$srv_type" == "" || "$srv_ip" == "" || "$srv_port" == "" || "$tpl_hash" == "" || "$install_target" == "" ]] 52 | then 53 | echo "RemoveAddon: Required settings were left out. Exiting." 54 | exit 55 | fi 56 | 57 | for file in `tar --list --file=$HOME/addons/$tpl_hash.tar.gz | sort` 58 | do 59 | rm -f $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/$install_target/$file 60 | done 61 | 62 | if [ -n "$remove_dirs" ] 63 | then 64 | for dir in `echo $remove_dirs` 65 | do 66 | rm -fr $HOME/accounts/$srv_username/$srv_type/$srv_ip.$srv_port/$install_target/$dir 67 | done 68 | fi 69 | 70 | echo "success" 71 | -------------------------------------------------------------------------------- /_SERVERS/scripts/ServerSendCMD: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Send a command to a server's GNU Screen session 7 | # 8 | # -u: Client's gpx username 9 | # -i: Server IP Address (x.x.x.x) 10 | # -p: Server Port 11 | # -w: Server working directory to CD into for the server startup. Again, local paths only. 12 | # 13 | # Example usage: 14 | # ./ServerSendCMD -u user123 -i 192.168.10.10 -p 27015 -w orangebox -c "status" 15 | # 16 | srv_username= 17 | srv_ip= 18 | srv_port= 19 | working_dir= 20 | srv_cmd_line= 21 | run_cmd= 22 | 23 | while getopts "u:i:p:w:c:" OPTION 24 | do 25 | case $OPTION in 26 | u) 27 | srv_username=$OPTARG 28 | ;; 29 | i) 30 | srv_ip=$OPTARG 31 | ;; 32 | p) 33 | srv_port=$OPTARG 34 | ;; 35 | w) 36 | working_dir=$OPTARG 37 | ;; 38 | c) 39 | run_cmd=$OPTARG 40 | ;; 41 | ?) 42 | exit 43 | ;; 44 | esac 45 | done 46 | 47 | if [[ "$srv_username" == "" || "$srv_ip" == "" || "$srv_port" == "" ]] 48 | then 49 | echo "ServerSendCMD: Required settings were left out. Exiting." 50 | exit 51 | fi 52 | 53 | # Check for homedir 54 | gpxdir=$HOME/accounts/$srv_username/$srv_ip.$srv_port 55 | 56 | if [ ! -d $gpxdir ] 57 | then 58 | echo "ServerSendCMD: Game directory ($gpxdir) doesnt exist! Exiting." 59 | exit 60 | fi 61 | 62 | if [[ ! -f $gpxdir/.gpxsrv.log && ! -f $gpxdir/.gpxscreen.pid ]] 63 | then 64 | echo "ServerSendCMD: Sorry, server log doesnt exist." 65 | exit 66 | fi 67 | 68 | # Ensure this is a screen setup 69 | if [ -f $gpxdir/.gpxscreen.pid ] 70 | then 71 | screen_pid="$(cat $gpxdir/.gpxscreen.pid)" 72 | screen -r -S $screen_pid -p0 -X stuff "$run_cmd"`echo -ne '\015'` 73 | else 74 | echo "Sorry, screen is unavailable." 75 | exit 76 | fi 77 | 78 | echo "success" 79 | -------------------------------------------------------------------------------- /_SERVERS/scripts/UsernameChange: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # GamePanelX 4 | # Remote scripts v3.0.12 5 | # 6 | # Change a username - move all servers to new user dir 7 | # 8 | # Example usage: 9 | # ./UsernameChange -o olduser -n newuser 10 | # 11 | old_user= 12 | new_user= 13 | tmp_dir="$HOME/tmp" 14 | queue_dir="$HOME/queue" 15 | rand_str="$(date +%s | sha256sum | base64 | head -c 24 ; echo)" 16 | 17 | while getopts "o:n:" OPTION 18 | do 19 | case $OPTION in 20 | o) 21 | old_user=$OPTARG 22 | ;; 23 | n) 24 | new_user=$OPTARG 25 | ;; 26 | ?) 27 | exit 28 | ;; 29 | esac 30 | done 31 | 32 | if [[ "$old_user" == "" || "$new_user" == "" ]] 33 | then 34 | echo "Insufficient info given! Exiting." 35 | exit 36 | fi 37 | 38 | # Check if user dir already exists 39 | if [ ! -d $HOME/accounts/$old_user ]; then 40 | echo "That user does not exist, exiting." 41 | exit 42 | fi 43 | 44 | mv $HOME/accounts/$old_user $HOME/accounts/$new_user 45 | 46 | echo "success" 47 | -------------------------------------------------------------------------------- /_SERVERS/templates/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/templates/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_SERVERS/tmp/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/tmp/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_SERVERS/uploads/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /_SERVERS/uploads/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/admins.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 |
7 |
8 |
9 | 10 | 11 |
12 |
13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 44 | 45 | 46 | 47 | 48 | '; 49 | } 50 | 51 | ?> 52 |
 
' . $usr_usrname . '' . $usr_fullname . '' . $usr_email . '
53 | 54 |
55 |
56 | -------------------------------------------------------------------------------- /admin/checkallowed.php: -------------------------------------------------------------------------------- 1 | dbconnect(); 31 | #$Plugins->setup_actions(); 32 | 33 | ?> -------------------------------------------------------------------------------- /admin/cloudgames.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 |
8 | 9 |
10 |
11 |
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 | 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 | 67 | 68 | '; 69 | } 70 | ?> 71 |
 
'.$lang['none'].'
'.$net_ip.'
72 | 73 |
74 | -------------------------------------------------------------------------------- /admin/users.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 |
7 |
8 |
9 | 10 | do_action('users_top'); // Plugins ?> 11 | 12 |
13 |
14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 45 | 46 | 47 | 48 | 49 | '; 50 | } 51 | 52 | ?> 53 | do_action('users_table'); // Plugins ?> 54 |
 
' . $usr_usrname . '' . $usr_fullname . '' . $usr_email . '
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 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
:
:
:
 
:
:
:
 
50 | 51 |
52 |
53 |
54 | 55 | 56 |
57 |
58 | -------------------------------------------------------------------------------- /ajax/admin_tabs.php: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |
8 |
9 |
10 | 11 |
12 |
> 13 |
14 |
15 |
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 |
'.$lang['save'].'
'; 40 | 41 | exit; 42 | } 43 | 44 | // Show add directory dialog 45 | elseif($url_do == 'show_add_dir') 46 | { 47 | echo ''.$lang['new_dirname'].':
48 |
'.$lang['save'].'
'; 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 |
7 |
> 8 |
9 |
10 |
> 11 |
12 |
13 |
> 14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /ajax/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ajax/network_create_form.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 |
:
: 16 | 22 |
 
:
:
:
 
:
:
:
:
 
68 | 69 |
70 |
71 |
72 | -------------------------------------------------------------------------------- /ajax/network_tabs.php: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |
8 |
9 |
10 | 11 |
12 |
13 |
14 |
15 | 20 |
> 21 |
22 |
23 | 24 |
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 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
:
:
:
 
:
:
:
 
49 | 50 |
51 |
52 |
53 | 54 | 55 |
56 |
57 | -------------------------------------------------------------------------------- /ajax/user_tabs.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 |
7 |
8 |
9 | 10 |
11 |
> 12 |
13 |
14 |
> 15 |
16 |
17 |
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 | '; 3 | exit; 4 | ?> 5 | -------------------------------------------------------------------------------- /includes/SSH/openssl.cnf: -------------------------------------------------------------------------------- 1 | # minimalist openssl.cnf file for use with phpseclib 2 | 3 | HOME = . 4 | RANDFILE = $ENV::HOME/.rnd 5 | 6 | [ v3_ca ] -------------------------------------------------------------------------------- /includes/classes/admins.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /includes/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /install/version.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /lang.php: -------------------------------------------------------------------------------- 1 | '; 10 | require(DOCROOT.'/languages/english.php'); 11 | } 12 | else 13 | { 14 | # if(GPXDEBUG) echo 'Setting language to "'.$usr_lang.'" ...
'; 15 | unset($lang); 16 | require(DOCROOT.'/languages/'.$usr_lang.'.php'); 17 | } 18 | } 19 | // Default to english if sess data unavailable 20 | else 21 | { 22 | require(DOCROOT.'/languages/english.php'); 23 | } 24 | 25 | ?> 26 | -------------------------------------------------------------------------------- /languages/german.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/languages/german.php -------------------------------------------------------------------------------- /languages/hungarian.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/languages/hungarian.php -------------------------------------------------------------------------------- /languages/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /languages/spanish.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/languages/spanish.php -------------------------------------------------------------------------------- /logout.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/my_plugin123/my_plugin123.php: -------------------------------------------------------------------------------- 1 | set_action('home_top','ryan1'); 12 | 13 | ?> 14 | -------------------------------------------------------------------------------- /plugins/my_plugin123/plugin.json.txt: -------------------------------------------------------------------------------- 1 | { 2 | "name":"My Plugin 123", 3 | "intname":"my_plugin123", 4 | "description":"This is my first plugin that will display some text on the home page." 5 | } 6 | -------------------------------------------------------------------------------- /scripts/base64.js: -------------------------------------------------------------------------------- 1 | "use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery)); 2 | -------------------------------------------------------------------------------- /scripts/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/internal.min.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/scripts/internal.min.js -------------------------------------------------------------------------------- /scripts/internal/install.js: -------------------------------------------------------------------------------- 1 | function install_start() 2 | { 3 | var dbHost = $('#db_host').val(); 4 | var dbName = $('#db_name').val(); 5 | var dbUser = $('#db_user').val(); 6 | var dbPass = $('#db_pass').val(); 7 | var adminUser = $('#admin_user').val(); 8 | var adminEmail = $('#admin_email').val(); 9 | var adminPass = $('#admin_pass').val(); 10 | var adminPass2 = $('#admin_pass2').val(); 11 | 12 | if(dbHost == "") { infobox('i','You left a field blank!'); $('#db_host').focus(); return false; } 13 | else if(dbName == "") { infobox('i','You left a field blank!'); $('#db_name').focus(); return false; } 14 | else if(dbUser == "") { infobox('i','You left a field blank!'); $('#db_user').focus(); return false; } 15 | else if(dbPass == "") { infobox('i','You left a field blank!'); $('#db_pass').focus(); return false; } 16 | else if(adminUser == "") { infobox('i','You left a field blank!'); $('#admin_user').focus(); return false; } 17 | else if(adminEmail == "") { infobox('i','You left a field blank!'); $('#admin_email').focus(); return false; } 18 | else if(adminPass == "") { infobox('i','You left a field blank!'); $('#admin_pass').focus(); return false; } 19 | else if(adminPass2 == "") { infobox('i','You left a field blank!'); $('#admin_pass2').focus(); return false; } 20 | 21 | if(adminPass != adminPass2) 22 | { 23 | infobox('f','Your passwords do not match!'); 24 | $('#admin_pass').focus(); 25 | return false; 26 | } 27 | 28 | $.ajax({ 29 | url: 'install_actions.php', 30 | type: 'POST', 31 | data: 'a=start'+'&db_host='+dbHost+'&db_name='+dbName+'&db_user='+dbUser+'&db_pass='+dbPass+'&admin_user='+adminUser+'&admin_email='+adminEmail+'&admin_pass='+adminPass, 32 | beforeSend:function(){ 33 | $('#install_btn').hide(); 34 | }, 35 | success:function(html){ 36 | if(html == 'success') 37 | { 38 | infobox('s',''); 39 | setTimeout("window.location='../admin/'", 2000); 40 | } 41 | else 42 | { 43 | $('#install_btn').fadeIn(); 44 | infobox('f','Error: '+html); 45 | } 46 | }, 47 | error:function(a,b,c){ 48 | $('#install_btn').fadeIn(); 49 | infobox('f','Error: '+b+', '+c); 50 | } 51 | }); 52 | } -------------------------------------------------------------------------------- /scripts/internal/login.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Login 4 | * 5 | */ 6 | 7 | // Admin Login 8 | function login_admin() 9 | { 10 | 11 | var loginUser = $.base64.encode('xxz'+$('#login_user').val()+'yy'); 12 | var loginPass = $.base64.encode('xyy'+$('#login_pass').val()+'yyx'); 13 | 14 | if(loginUser == "" || loginPass == "") return false; 15 | 16 | $.ajax({ 17 | url: ajaxURL, 18 | type: 'POST', 19 | data: 'a=login_actions&do=adminlogin&user='+loginUser+'&pass='+loginPass, 20 | success:function(html){ 21 | if(html == 'success') 22 | { 23 | infobox('s','Successfully logged in! Redirecting ...'); 24 | 25 | setTimeout("window.location='index.php'", 1000); 26 | } 27 | else 28 | { 29 | infobox('f','Login Failed: '+html); 30 | $('#login_pass').val(''); 31 | } 32 | }, 33 | error:function(a,b,c){ 34 | infobox('f','Error: '+b+', '+c); 35 | } 36 | }); 37 | } 38 | 39 | // User Login 40 | function login_user() 41 | { 42 | 43 | var loginUser = $.base64.encode('xxff'+$('#login_user').val()+'yyuuu'); 44 | var loginPass = $.base64.encode('xyd'+$('#login_pass').val()+'yyd'); 45 | 46 | if(loginUser == "" || loginPass == "") return false; 47 | 48 | $.ajax({ 49 | url: ajaxURL, 50 | type: 'POST', 51 | data: 'a=login_actions&do=userlogin&user='+loginUser+'&pass='+loginPass, 52 | success:function(html){ 53 | if(html == 'success') 54 | { 55 | infobox('s','Successfully logged in! Redirecting ...'); 56 | 57 | setTimeout("window.location='index.php'", 1000); 58 | } 59 | else 60 | { 61 | infobox('f','Login Failed: '+html); 62 | $('#login_pass').val(''); 63 | } 64 | }, 65 | error:function(a,b,c){ 66 | infobox('f','Error: '+b+', '+c); 67 | } 68 | }); 69 | } 70 | -------------------------------------------------------------------------------- /scripts/internal/plugins.js: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Plugins functions 4 | * 5 | */ 6 | 7 | // Update a currently installed plugin 8 | function plugin_update_active(pluginID) 9 | { 10 | if(pluginID == "") 11 | { 12 | alert("No plugin ID given!"); 13 | return false; 14 | } 15 | 16 | var plgStatus = $('#plg_'+pluginID+'_status').val(); 17 | 18 | // Confirm delete 19 | if(plgStatus == 'delete') 20 | { 21 | var answer = confirm("Are you sure?\n\nDelete this plugin?"); 22 | 23 | if(!answer) return false; 24 | } 25 | 26 | $.ajax({ 27 | url: ajaxURL, 28 | data: 'a=plugin_actions&do=update&id='+pluginID+'&status='+plgStatus, 29 | success:function(html){ 30 | if(plgStatus == 'delete') $('#plugin_'+pluginID).fadeOut(); 31 | 32 | if(html == 'success') infobox('s',''); 33 | else infobox('f','Failed: '+html); 34 | } 35 | }); 36 | } 37 | 38 | // Install a new plugin that has been uploaded 39 | function plugin_install(name) 40 | { 41 | if(name == "") 42 | { 43 | alert("No plugin name given!"); 44 | return false; 45 | } 46 | 47 | $.ajax({ 48 | url: ajaxURL, 49 | data: 'a=plugin_actions&do=install&name='+name, 50 | success:function(html){ 51 | if(html == 'success') infobox('s',''); 52 | else infobox('f','Failed: '+html); 53 | } 54 | }); 55 | } 56 | -------------------------------------------------------------------------------- /scripts/internal/settings.js: -------------------------------------------------------------------------------- 1 | // Generate a random string of 6 characters 2 | function settings_genstring() 3 | { 4 | var text = ""; 5 | var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; 6 | 7 | for( var i=0; i < 6; i++ ) 8 | text += possible.charAt(Math.floor(Math.random() * possible.length)); 9 | 10 | return text; 11 | } 12 | 13 | // Submit Settings 14 | function settings_save() 15 | { 16 | var lang = encodeURIComponent($('#lang').val()); 17 | var email = encodeURIComponent($('#email').val()); 18 | var company = encodeURIComponent($('#company').val()); 19 | var theme = encodeURIComponent($('#theme').val()); 20 | var localDir = encodeURIComponent($('#local_dir').val()); 21 | var steamAuth = encodeURIComponent($('#steam_auth').val()); 22 | var steamUser = settings_genstring()+$.base64.encode($('#steam_user').val())+settings_genstring(); 23 | var steamPass = settings_genstring()+$.base64.encode($('#steam_pass').val())+settings_genstring(); 24 | var datastr = "&lang="+lang+"&email="+email+"&company="+company+"&theme="+theme+"&local_dir="+localDir+"&steam_login_user="+steamUser+"&steam_login_pass="+steamPass+"&steam_auth="+steamAuth+"&pure=1"; 25 | 26 | $.ajax({ 27 | url: ajaxURL, 28 | type: "POST", 29 | data: 'a=settings_save'+datastr, 30 | success:function(html){ 31 | if(html == 'success') infobox('s',''); 32 | else infobox('f','Failed: '+html); 33 | }, 34 | error:function(a,b,c){ 35 | infobox('f','Error: '+b+', '+c); 36 | } 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /scripts/upload/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devryan/GamePanelX-V3/2f78f27727da4216587d46a0be13ffc71f9267a2/scripts/upload/loading.gif -------------------------------------------------------------------------------- /themes/dark/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/default/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /themes/modern/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /uploads/.htaccess: -------------------------------------------------------------------------------- 1 | order allow,deny 2 | deny from all 3 | -------------------------------------------------------------------------------- /uploads/index.php: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------