Преглед изворни кода

Merge pull request #21 from OpenGamePanel/master

Updating...
rocco27 пре 8 година
родитељ
комит
6ceefeb792

BIN
images/icons/brainbread2.png


+ 2 - 2
includes/database.php

@@ -277,7 +277,7 @@ abstract class OGPDatabase {
 
     abstract public function getGameHomes();
     
-    abstract public function getGameHomes_limit($page_gameHomes,$limit_gameHomes,$search_field);
+    abstract public function getGameHomes_limit($page_gameHomes, $limit_gameHomes, $searchType, $searchString);
 
     /// \return true If username and password match.
     /// \return false If username and password does not match
@@ -288,4 +288,4 @@ abstract class OGPDatabase {
     abstract public function getHomeAffinity($home_id);
 }
 
-?>
+?>

+ 51 - 27
includes/database_mysql.php

@@ -1619,7 +1619,6 @@ class OGPDatabaseMySQL extends OGPDatabase
 			NATURAL JOIN `'.$this->table_prefix.'user_homes`
 			NATURAL JOIN `'.$this->table_prefix.'remote_servers` 
  			NATURAL JOIN `'.$this->table_prefix.'home_ip_ports`
- 			NATURAL JOIN `'.$this->table_prefix.'remote_server_ips`
 			' : '').'
 			'
  			.($home_cfg_id ?" WHERE home_cfg_id = '$home_cfg_id'
@@ -1629,7 +1628,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
  								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%' 
  								" : '')." ": '
  			'.($search_field ?" WHERE home_cfg_id = '$home_cfg_id' OR home_id = '$search_field' OR user_id_main = '$search_field' OR home_path LIKE '%".$search_field."%'
  								OR home_name LIKE '%".$search_field."%'
@@ -1637,7 +1635,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
 								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
 								OR agent_ip = '$search_field' OR port = '$search_field'
-								OR ip LIKE '%" . $search_field . "%' 
 								" : '').'
 								'));
 		}
@@ -1648,7 +1645,6 @@ class OGPDatabaseMySQL extends OGPDatabase
 			NATURAL JOIN `'.$this->table_prefix.'server_homes`
 			NATURAL JOIN `'.$this->table_prefix.'remote_servers` 
  			NATURAL JOIN `'.$this->table_prefix.'home_ip_ports`
- 			NATURAL JOIN `'.$this->table_prefix.'remote_server_ips`
 			' : '').'
 			WHERE user_id = '.$assign_id.' ' .($home_cfg_id ? 'AND `home_id`
 			IN (SELECT `home_id` FROM `'.$this->table_prefix.'server_homes` WHERE home_cfg_id = '.$home_cfg_id.'
@@ -1658,7 +1654,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
  								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%' 
  								" : '').')'
 								: 
 								'
@@ -1668,7 +1663,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
 								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
 								OR agent_ip = '$search_field' OR port = '$search_field'
-								OR ip LIKE '%" . $search_field . "%' 
 								)" : '').'				
 								' 
 								));
@@ -1683,7 +1677,6 @@ class OGPDatabaseMySQL extends OGPDatabase
 			NATURAL JOIN `'.$this->table_prefix.'server_homes`
 			NATURAL JOIN `'.$this->table_prefix.'remote_servers` 
  			NATURAL JOIN `'.$this->table_prefix.'home_ip_ports`
- 			NATURAL JOIN `'.$this->table_prefix.'remote_server_ips`
 			' : '').'			
 			WHERE group_id IN (SELECT group_id FROM `'.$this->table_prefix.'user_groups` WHERE user_id = '.$assign_id.' )
 			
@@ -1692,14 +1685,12 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR home_name LIKE '%".$search_field."%'
  								OR user_id_main IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%'
  								" : '').')'
 			:'
 			'.($search_field ?" AND home_id = '$search_field' OR user_id_main = '$search_field' OR home_path LIKE '%".$search_field."%'
  								OR home_name LIKE '%".$search_field."%'
  								OR user_id_main IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%'
  								" : '').'
 			'));
 		}		
@@ -2889,34 +2880,67 @@ class OGPDatabaseMySQL extends OGPDatabase
 		return $this->listQuery($query);
 	}
 
-	public function getGameHomes_limit($page_gameHomes, $limit_gameHomes, $search_field) {
+	public function getGameHomes_limit($page_gameHomes, $limit_gameHomes, $searchType, $searchString) {
 		$game_home_id = ($page_gameHomes - 1) * $limit_gameHomes;
 		
-		$sql = 'SELECT %1$sserver_homes.*, %1$sremote_servers.*, %1$sconfig_homes.* FROM `%1$sserver_homes` NATURAL JOIN `%1$sconfig_homes` NATURAL JOIN `%1$sremote_servers` NATURAL JOIN %1$sremote_server_ips ';
+		$sql = 'SELECT %1$sserver_homes.*, %1$sremote_servers.*, %1$sconfig_homes.*, %1$shome_ip_ports.port
+					FROM `%1$sserver_homes`
+						NATURAL JOIN `%1$sconfig_homes`
+						NATURAL JOIN `%1$sremote_servers`
+						LEFT JOIN %1$shome_ip_ports 
+							NATURAL JOIN %1$sremote_server_ips ON %1$sserver_homes.home_id=%1$shome_ip_ports.home_id ';
 		
-		if (!empty($search_field)) {
-			$sql .= "WHERE home_id = '$search_field' OR remote_server_id = '$search_field'
-					OR user_id_main = '$search_field' OR home_path = '$search_field' OR home_cfg_id = '$search_field'
-					OR home_name LIKE '%%$search_field%%' OR agent_ip = '$search_field' OR remote_server_name LIKE '%%$search_field%%'
-					OR user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$search_field%%') 
-					OR ip LIKE '%%$search_field%% '";
+		if (!empty($searchString)) {
+			if ($searchType == 'ip_port') {
+				$sql .= "WHERE CONCAT_WS(':', %1\$sremote_server_ips.ip, %1\$shome_ip_ports.port) = '$searchString'
+							OR agent_ip = '$searchString' ";
+			}
+
+			if ($searchType == 'home_name') {
+				$sql .= "WHERE home_name LIKE '%%$searchString%%' ";
+			}
+			
+			if ($searchType == 'ownedBy') {
+				$sql .= "WHERE user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$searchString%%')
+							OR user_id_main = '$searchString' ";
+			}
+
+			if ($searchType == 'rserver') {
+				$sql .= "WHERE remote_server_name LIKE '%%$searchString%%'
+							OR %1\$sserver_homes.remote_server_id = '$searchString' ";
+			}
 		}
 
 		$sql .= "ORDER BY home_id ASC LIMIT $game_home_id, $limit_gameHomes;";
-
 		$sql = sprintf($sql, $this->table_prefix);
+
 		return $this->listQuery($sql);
 	}
 	
-	public function get_GameHomes_count($search_field) {
-		$sql = 'SELECT COUNT(1) AS total FROM %1$sserver_homes NATURAL JOIN %1$sremote_servers NATURAL JOIN %1$sremote_server_ips ';
+	public function get_GameHomes_count($searchType, $searchString) {
+		$sql = 'SELECT COUNT(1) AS total FROM %1$sserver_homes NATURAL JOIN %1$sremote_servers
+					LEFT JOIN %1$shome_ip_ports 
+						NATURAL JOIN %1$sremote_server_ips ON %1$sserver_homes.home_id=%1$shome_ip_ports.home_id ';
 
-		if (!empty($search_field)) {
-			$sql .= "WHERE home_id = '$search_field' OR remote_server_id = '$search_field'
-					OR user_id_main = '$search_field' OR home_path = '$search_field' OR home_cfg_id = '$search_field'
-					OR home_name LIKE '%%$search_field%%' OR agent_ip = '$search_field' OR remote_server_name LIKE '%%$search_field%%'
-					OR user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$search_field%%') 
-					OR ip LIKE '%%$search_field%% '";
+		if (!empty($searchString)) {
+			if ($searchType == 'ip_port') {
+				$sql .= "WHERE CONCAT_WS(':', %1\$sremote_server_ips.ip, %1\$shome_ip_ports.port) = '$searchString'
+							OR agent_ip = '$searchString' ";
+			}
+
+			if ($searchType == 'home_name') {
+				$sql .= "WHERE home_name LIKE '%%$searchString%%' ";
+			}
+			
+			if ($searchType == 'ownedBy') {
+				$sql .= "WHERE user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$searchString%%')
+							OR user_id_main = '$searchString' ";
+			}
+
+			if ($searchType == 'rserver') {
+				$sql .= "WHERE remote_server_name LIKE '%%$searchString%%'
+							OR %1\$sserver_homes.remote_server_id = '$searchString' ";
+			}
 		}
 
 		$sql = sprintf($sql, $this->table_prefix);
@@ -3608,4 +3632,4 @@ class OGPDatabaseMySQL extends OGPDatabase
 	}
 }
 
-?>
+?>

+ 51 - 27
includes/database_mysqli.php

@@ -1617,7 +1617,6 @@ class OGPDatabaseMySQL extends OGPDatabase
 			NATURAL JOIN `'.$this->table_prefix.'user_homes`
 			NATURAL JOIN `'.$this->table_prefix.'remote_servers` 
  			NATURAL JOIN `'.$this->table_prefix.'home_ip_ports`
- 			NATURAL JOIN `'.$this->table_prefix.'remote_server_ips`
 			' : '').'
 			'
  			.($home_cfg_id ?" WHERE home_cfg_id = '$home_cfg_id'
@@ -1627,7 +1626,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
  								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%' 
  								" : '')." ": '
  			'.($search_field ?" WHERE home_cfg_id = '$home_cfg_id' OR home_id = '$search_field' OR user_id_main = '$search_field' OR home_path LIKE '%".$search_field."%'
  								OR home_name LIKE '%".$search_field."%'
@@ -1635,7 +1633,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
 								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
 								OR agent_ip = '$search_field' OR port = '$search_field'
-								OR ip LIKE '%" . $search_field . "%' 
 								" : '').'
 								'));
 		}
@@ -1646,7 +1643,6 @@ class OGPDatabaseMySQL extends OGPDatabase
 			NATURAL JOIN `'.$this->table_prefix.'server_homes`
 			NATURAL JOIN `'.$this->table_prefix.'remote_servers` 
  			NATURAL JOIN `'.$this->table_prefix.'home_ip_ports`
- 			NATURAL JOIN `'.$this->table_prefix.'remote_server_ips`
 			' : '').'
 			WHERE user_id = '.$assign_id.' ' .($home_cfg_id ? 'AND `home_id`
 			IN (SELECT `home_id` FROM `'.$this->table_prefix.'server_homes` WHERE home_cfg_id = '.$home_cfg_id.'
@@ -1656,7 +1652,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
  								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%' 
  								" : '').')'
 								: 
 								'
@@ -1666,7 +1661,6 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR user_id = '$search_field'
 								OR user_id IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
 								OR agent_ip = '$search_field' OR port = '$search_field'
-								OR ip LIKE '%" . $search_field . "%' 
 								)" : '').'				
 								' 
 								));
@@ -1681,7 +1675,6 @@ class OGPDatabaseMySQL extends OGPDatabase
 			NATURAL JOIN `'.$this->table_prefix.'server_homes`
 			NATURAL JOIN `'.$this->table_prefix.'remote_servers` 
  			NATURAL JOIN `'.$this->table_prefix.'home_ip_ports`
- 			NATURAL JOIN `'.$this->table_prefix.'remote_server_ips`
 			' : '').'			
 			WHERE group_id IN (SELECT group_id FROM `'.$this->table_prefix.'user_groups` WHERE user_id = '.$assign_id.' )
 			
@@ -1690,14 +1683,12 @@ class OGPDatabaseMySQL extends OGPDatabase
  								OR home_name LIKE '%".$search_field."%'
  								OR user_id_main IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%' 
  								" : '').')'
 			:'
 			'.($search_field ?" AND home_id = '$search_field' OR user_id_main = '$search_field' OR home_path LIKE '%".$search_field."%'
  								OR home_name LIKE '%".$search_field."%'
  								OR user_id_main IN (SELECT `user_id` FROM `".$this->table_prefix."users` WHERE users_login LIKE '%".$search_field."%')
  								OR agent_ip = '$search_field' OR port = '$search_field'
- 								OR ip LIKE '%" . $search_field . "%' 
  								" : '').'
 			'));
 		}		
@@ -2897,34 +2888,67 @@ class OGPDatabaseMySQL extends OGPDatabase
 		return $this->listQuery($query);
 	}
 	
-	public function getGameHomes_limit($page_gameHomes, $limit_gameHomes, $search_field) {
+	public function getGameHomes_limit($page_gameHomes, $limit_gameHomes, $searchType, $searchString) {
 		$game_home_id = ($page_gameHomes - 1) * $limit_gameHomes;
 		
-		$sql = 'SELECT %1$sserver_homes.*, %1$sremote_servers.*, %1$sconfig_homes.* FROM `%1$sserver_homes` NATURAL JOIN `%1$sconfig_homes` NATURAL JOIN `%1$sremote_servers` NATURAL JOIN %1$sremote_server_ips ';
+		$sql = 'SELECT %1$sserver_homes.*, %1$sremote_servers.*, %1$sconfig_homes.*, %1$shome_ip_ports.port
+					FROM `%1$sserver_homes`
+						NATURAL JOIN `%1$sconfig_homes`
+						NATURAL JOIN `%1$sremote_servers`
+						LEFT JOIN %1$shome_ip_ports 
+							NATURAL JOIN %1$sremote_server_ips ON %1$sserver_homes.home_id=%1$shome_ip_ports.home_id ';
 		
-		if (!empty($search_field)) {
-			$sql .= "WHERE home_id = '$search_field' OR remote_server_id = '$search_field'
-					OR user_id_main = '$search_field' OR home_path = '$search_field' OR home_cfg_id = '$search_field'
-					OR home_name LIKE '%%$search_field%%' OR agent_ip = '$search_field' OR remote_server_name LIKE '%%$search_field%%'
-					OR user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$search_field%%') 
-					OR ip LIKE '%%$search_field%% '";
+		if (!empty($searchString)) {
+			if ($searchType == 'ip_port') {
+				$sql .= "WHERE CONCAT_WS(':', %1\$sremote_server_ips.ip, %1\$shome_ip_ports.port) = '$searchString'
+							OR agent_ip = '$searchString' ";
+			}
+
+			if ($searchType == 'home_name') {
+				$sql .= "WHERE home_name LIKE '%%$searchString%%' ";
+			}
+			
+			if ($searchType == 'ownedBy') {
+				$sql .= "WHERE user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$searchString%%')
+							OR user_id_main = '$searchString' ";
+			}
+
+			if ($searchType == 'rserver') {
+				$sql .= "WHERE remote_server_name LIKE '%%$searchString%%'
+							OR %1\$sserver_homes.remote_server_id = '$searchString' ";
+			}
 		}
 
 		$sql .= "ORDER BY home_id ASC LIMIT $game_home_id, $limit_gameHomes;";
-
 		$sql = sprintf($sql, $this->table_prefix);
+
 		return $this->listQuery($sql);
 	}
 	
-	public function get_GameHomes_count($search_field) {
-		$sql = 'SELECT COUNT(1) AS total FROM %1$sserver_homes NATURAL JOIN %1$sremote_servers NATURAL JOIN %1$sremote_server_ips ';
+	public function get_GameHomes_count($searchType, $searchString) {
+		$sql = 'SELECT COUNT(1) AS total FROM %1$sserver_homes NATURAL JOIN %1$sremote_servers
+					LEFT JOIN %1$shome_ip_ports 
+						NATURAL JOIN %1$sremote_server_ips ON %1$sserver_homes.home_id=%1$shome_ip_ports.home_id ';
 
-		if (!empty($search_field)) {
-			$sql .= "WHERE home_id = '$search_field' OR remote_server_id = '$search_field'
-					OR user_id_main = '$search_field' OR home_path = '$search_field' OR home_cfg_id = '$search_field'
-					OR home_name LIKE '%%$search_field%%' OR agent_ip = '$search_field' OR remote_server_name LIKE '%%$search_field%%'
-					OR user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$search_field%%') 
-					OR ip LIKE '%%$search_field%% '";
+		if (!empty($searchString)) {
+			if ($searchType == 'ip_port') {
+				$sql .= "WHERE CONCAT_WS(':', %1\$sremote_server_ips.ip, %1\$shome_ip_ports.port) = '$searchString'
+							OR agent_ip = '$searchString' ";
+			}
+
+			if ($searchType == 'home_name') {
+				$sql .= "WHERE home_name LIKE '%%$searchString%%' ";
+			}
+			
+			if ($searchType == 'ownedBy') {
+				$sql .= "WHERE user_id_main IN (SELECT user_id FROM %1\$susers WHERE users_login LIKE '%%$searchString%%')
+							OR user_id_main = '$searchString' ";
+			}
+
+			if ($searchType == 'rserver') {
+				$sql .= "WHERE remote_server_name LIKE '%%$searchString%%'
+							OR %1\$sserver_homes.remote_server_id = '$searchString' ";
+			}
 		}
 
 		$sql = sprintf($sql, $this->table_prefix);
@@ -3616,4 +3640,4 @@ class OGPDatabaseMySQL extends OGPDatabase
 	}
 }
 
-?>
+?>

+ 7 - 8
modules/administration/watch_logger.php

@@ -38,10 +38,10 @@ function exec_ogp_module() {
 
 	$logs = $db->read_logger($p, $l, $search_field);
 
-	if (empty($logs)) {
+	if (empty($logs) && !empty($search_field)) {
 		print_failure(get_lang_f('no_results_found', htmlentities($search_field)));
-
 		$view->refresh("?m=administration&p=watch_logger", 5);
+
 		return;
 	}
 
@@ -130,12 +130,11 @@ function exec_ogp_module() {
 	echo "</table>\n";
 	$count_logs = $db->get_logger_count($search_field);
 	
-	if(isset($_GET['search']) && !empty($_GET['search'])){
-	$uri = '?m=administration&p=watch_logger&search='.$_GET['search'].'&limit='.$l.'&page=';
-	}
-	else{
-	$uri = '?m=administration&p=watch_logger&limit='.$l.'&page=';
+	if (isset($_GET['search']) && !empty($_GET['search'])) {
+		$uri = '?m=administration&p=watch_logger&search='.$_GET['search'].'&limit='.$l.'&page=';
+	} else {
+		$uri = '?m=administration&p=watch_logger&limit='.$l.'&page=';
 	}
 	echo paginationPages($count_logs[0]['total'], $p, $l, $uri, 3, 'watchLogger');
 }
-?>
+?>

+ 149 - 0
modules/config_games/server_configs/brainbread2_linux32.xml

@@ -0,0 +1,149 @@
+<game_config>
+	<game_key>brainbread2_linux32</game_key>
+	<protocol>lgsl</protocol>
+	<lgsl_query_name>source</lgsl_query_name>
+	<installer>steamcmd</installer>
+	<game_name>BrainBread 2</game_name>
+	<server_exec_name>srcds_run</server_exec_name>
+	<cli_template>%GAME_TYPE% %PID_FILE% %MAP% %IP% %PORT% %PLAYERS%</cli_template>
+	<cli_params>
+		<cli_param id="GAME_TYPE" cli_string="-game" options="s" />
+		<cli_param id="PID_FILE" cli_string="-pid_file ../" />
+		<cli_param id="MAP" cli_string="+map" options="s" />
+		<cli_param id="IP" cli_string="+ip" options="s" />
+		<cli_param id="PORT" cli_string="-port" options="s" />
+		<cli_param id="PLAYERS" cli_string="+maxplayers" options="s" />
+	</cli_params>
+	<maps_location>brainbread2/maps/</maps_location>
+	<map_list>brainbread2/maplist.txt</map_list>
+	<max_user_amount>12</max_user_amount>
+	<control_protocol>rcon2</control_protocol>
+	<mods>
+		<mod key="brainbread2">
+			<name>none</name>
+			<installer_name>475370</installer_name>
+			<installer_login>anonymous</installer_login>
+		</mod>
+	</mods>
+	<replace_texts>
+		<text key="control_password">
+			<default>rcon_password.*</default>
+			<var>rcon_password</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>sq</options>
+		</text>
+		<text key="home_name">
+			<default>hostname.*</default>
+			<var>hostname</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>sq</options>
+		</text>
+	</replace_texts>
+	<server_params>
+		<param key="+sv_setsteamaccount" type="text">
+			<caption>Steam Account Login Token</caption>
+			<desc>Manage your steam tokens &lt;a href=https://steamcommunity.com/dev/managegameservers target=_blank&gt;here&lt;/a&gt;</desc>
+		</param>
+
+		<param key="-autoupdate -steam_dir {OGP_STEAM_CMD_DIR} -steamcmd_script {STEAMCMD_INSTALL_FILE}" type="checkbox_key_value">
+			<caption>Auto-Update</caption>
+			<desc>The server will automatically download official updates as they are released.</desc>
+		</param>
+		<param key="-sv_pure" type="select">
+			<option value="-1">Do not apply any rules or restrict which files the client may load. (Default)</option>
+			<option value="0">Apply rules in cfg/pure_server_minimal.txt only</option>
+			<option value="1">Apply rules in cfg/pure_server_full.txt and then cfg/pure_server_whitelist.txt</option>
+			<option value="2">Apply rules in cfg/pure_server_full.txt</option>
+			<caption>Pure Server</caption>
+			<desc>A pure server is one that forces all clients on the server to use content that matches what is on the server.</desc>
+		</param>
+		<param key="-dev" type="checkbox_key_value">
+			<caption>Developer Messages.</caption>
+			<desc>Show developer messages.</desc>
+		</param>
+		<param key="-debuglog custom_error.log" type="checkbox_key_value">
+			<caption>Error Logging</caption>
+			<desc>File Errors are Logged to.</desc>
+		</param>
+		<param key="-debug" type="checkbox_key_value">
+			<caption>Debugging</caption>
+			<desc>Turns on Debugging.</desc>
+		</param>
+		<param key="+motdfile custom_motd.txt" type="checkbox_key_value">
+			<caption>Custom MOTD</caption>
+			<desc>Custom MOTD file.</desc>
+		</param>
+		<param key="+mapcyclefile custom_mapcycle.txt" type="checkbox_key_value">
+			<caption>Custom Mapcycle</caption>
+			<desc>Custom Mapcycle file.</desc>
+		</param>
+		<param key="-nomaster" type="checkbox_key_value">
+			<caption>Disable master server communication</caption>
+		</param>
+		<param key="-insecure" type="checkbox_key_value">
+			<caption>Disable Valve Anti-Cheat</caption>
+			<desc>Will start the server without Valve Anti-Cheat technology.</desc>
+		</param>
+		<param key="-nohltv" type="checkbox_key_value">
+			<caption>No SourceTV</caption>
+			<desc>Disables SourceTV and closes its port.</desc>
+		</param>
+		<param key="-norestart" type="checkbox_key_value">
+			<caption>No Restart</caption>
+			<desc>Won't attempt to restart failed servers.</desc>
+		</param>
+	</server_params>
+	<custom_fields>
+		<field key="sv_maxrate" type="text">
+			<default>sv_maxrate.*</default>
+			<default_value>0</default_value>
+			<var>sv_maxrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Max bandwidth rate allowed on server ( bytes per second ), 0 == unlimited.</desc>
+		</field>
+		<field key="sv_minrate" type="text">
+			<default>sv_minrate.*</default>
+			<default_value>16000</default_value>
+			<var>sv_minrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Min bandwidth rate allowed on server ( bytes per second ), 0 == unlimited.</desc>
+		</field>
+		<field key="sv_maxcmdrate" type="text">
+			<default>sv_maxcmdrate.*</default>
+			<default_value>66</default_value>
+			<var>sv_maxcmdrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>If sv_mincmdrate is > 0, this sets the maximum value for cl_cmdrate.</desc>
+		</field>
+		<field key="sv_mincmdrate" type="text">
+			<default>sv_mincmdrate.*</default>
+			<default_value>66</default_value>
+			<var>sv_mincmdrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>This sets the minimum value for cl_cmdrate. 0 == unlimited.</desc>
+		</field>
+		<field key="sv_maxupdaterate" type="text">
+			<default>sv_maxupdaterate.*</default>
+			<default_value>66</default_value>
+			<var>sv_maxupdaterate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Maximum updates per second that the server will allow.</desc>
+		</field>
+		<field key="sv_minupdaterate" type="text">
+			<default>sv_minupdaterate.*</default>
+			<default_value>66</default_value>
+			<var>sv_minupdaterate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Minimum updates per second that the server will allow.</desc>
+		</field>
+	</custom_fields>
+	<configuration_files>
+		<file description="Main Configuration File">brainbread2/cfg/server.cfg</file>
+	</configuration_files>
+</game_config>

+ 149 - 0
modules/config_games/server_configs/brainbread2_win32.xml

@@ -0,0 +1,149 @@
+<game_config>
+	<game_key>brainbread2_win32</game_key>
+	<protocol>lgsl</protocol>
+	<lgsl_query_name>source</lgsl_query_name>
+	<installer>steamcmd</installer>
+	<game_name>BrainBread 2</game_name>
+	<server_exec_name>srcds.exe</server_exec_name>
+	<cli_template>%GAME_TYPE% %PID_FILE% %MAP% %IP% %PORT% %PLAYERS%</cli_template>
+	<cli_params>
+		<cli_param id="GAME_TYPE" cli_string="-game" options="s" />
+		<cli_param id="PID_FILE" cli_string="-pid_file ../" />
+		<cli_param id="MAP" cli_string="+map" options="s" />
+		<cli_param id="IP" cli_string="+ip" options="s" />
+		<cli_param id="PORT" cli_string="-port" options="s" />
+		<cli_param id="PLAYERS" cli_string="+maxplayers" options="s" />
+	</cli_params>
+	<maps_location>brainbread2/maps/</maps_location>
+	<map_list>brainbread2/maplist.txt</map_list>
+	<max_user_amount>12</max_user_amount>
+	<control_protocol>rcon2</control_protocol>
+	<mods>
+		<mod key="brainbread2">
+			<name>none</name>
+			<installer_name>475370</installer_name>
+			<installer_login>anonymous</installer_login>
+		</mod>
+	</mods>
+	<replace_texts>
+		<text key="control_password">
+			<default>rcon_password.*</default>
+			<var>rcon_password</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>sq</options>
+		</text>
+		<text key="home_name">
+			<default>hostname.*</default>
+			<var>hostname</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>sq</options>
+		</text>
+	</replace_texts>
+	<server_params>
+		<param key="+sv_setsteamaccount" type="text">
+			<caption>Steam Account Login Token</caption>
+			<desc>Manage your steam tokens &lt;a href=https://steamcommunity.com/dev/managegameservers target=_blank&gt;here&lt;/a&gt;</desc>
+		</param>
+
+		<param key="-autoupdate -steam_dir {OGP_STEAM_CMD_DIR} -steamcmd_script {STEAMCMD_INSTALL_FILE}" type="checkbox_key_value">
+			<caption>Auto-Update</caption>
+			<desc>The server will automatically download official updates as they are released.</desc>
+		</param>
+		<param key="-sv_pure" type="select">
+			<option value="-1">Do not apply any rules or restrict which files the client may load. (Default)</option>
+			<option value="0">Apply rules in cfg/pure_server_minimal.txt only</option>
+			<option value="1">Apply rules in cfg/pure_server_full.txt and then cfg/pure_server_whitelist.txt</option>
+			<option value="2">Apply rules in cfg/pure_server_full.txt</option>
+			<caption>Pure Server</caption>
+			<desc>A pure server is one that forces all clients on the server to use content that matches what is on the server.</desc>
+		</param>
+		<param key="-dev" type="checkbox_key_value">
+			<caption>Developer Messages.</caption>
+			<desc>Show developer messages.</desc>
+		</param>
+		<param key="-debuglog custom_error.log" type="checkbox_key_value">
+			<caption>Error Logging</caption>
+			<desc>File Errors are Logged to.</desc>
+		</param>
+		<param key="-debug" type="checkbox_key_value">
+			<caption>Debugging</caption>
+			<desc>Turns on Debugging.</desc>
+		</param>
+		<param key="+motdfile custom_motd.txt" type="checkbox_key_value">
+			<caption>Custom MOTD</caption>
+			<desc>Custom MOTD file.</desc>
+		</param>
+		<param key="+mapcyclefile custom_mapcycle.txt" type="checkbox_key_value">
+			<caption>Custom Mapcycle</caption>
+			<desc>Custom Mapcycle file.</desc>
+		</param>
+		<param key="-nomaster" type="checkbox_key_value">
+			<caption>Disable master server communication</caption>
+		</param>
+		<param key="-insecure" type="checkbox_key_value">
+			<caption>Disable Valve Anti-Cheat</caption>
+			<desc>Will start the server without Valve Anti-Cheat technology.</desc>
+		</param>
+		<param key="-nohltv" type="checkbox_key_value">
+			<caption>No SourceTV</caption>
+			<desc>Disables SourceTV and closes its port.</desc>
+		</param>
+		<param key="-norestart" type="checkbox_key_value">
+			<caption>No Restart</caption>
+			<desc>Won't attempt to restart failed servers.</desc>
+		</param>
+	</server_params>
+	<custom_fields>
+		<field key="sv_maxrate" type="text">
+			<default>sv_maxrate.*</default>
+			<default_value>0</default_value>
+			<var>sv_maxrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Max bandwidth rate allowed on server ( bytes per second ), 0 == unlimited.</desc>
+		</field>
+		<field key="sv_minrate" type="text">
+			<default>sv_minrate.*</default>
+			<default_value>16000</default_value>
+			<var>sv_minrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Min bandwidth rate allowed on server ( bytes per second ), 0 == unlimited.</desc>
+		</field>
+		<field key="sv_maxcmdrate" type="text">
+			<default>sv_maxcmdrate.*</default>
+			<default_value>66</default_value>
+			<var>sv_maxcmdrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>If sv_mincmdrate is > 0, this sets the maximum value for cl_cmdrate.</desc>
+		</field>
+		<field key="sv_mincmdrate" type="text">
+			<default>sv_mincmdrate.*</default>
+			<default_value>66</default_value>
+			<var>sv_mincmdrate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>This sets the minimum value for cl_cmdrate. 0 == unlimited.</desc>
+		</field>
+		<field key="sv_maxupdaterate" type="text">
+			<default>sv_maxupdaterate.*</default>
+			<default_value>66</default_value>
+			<var>sv_maxupdaterate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Maximum updates per second that the server will allow.</desc>
+		</field>
+		<field key="sv_minupdaterate" type="text">
+			<default>sv_minupdaterate.*</default>
+			<default_value>66</default_value>
+			<var>sv_minupdaterate</var>
+			<filepath>brainbread2/cfg/server.cfg</filepath>
+			<options>s</options>
+			<desc>Minimum updates per second that the server will allow.</desc>
+		</field>
+	</custom_fields>
+	<configuration_files>
+		<file description="Main Configuration File">brainbread2/cfg/server.cfg</file>
+	</configuration_files>
+</game_config>

+ 13 - 11
modules/user_games/show_homes.php

@@ -25,16 +25,19 @@
 function exec_ogp_module()
 {
 	global $db, $view, $loggedInUserInfo;
-	$search_field = (isset($_GET['search']) && !empty($_GET['search'])) ? $_GET['search'] : false;
 	
 	$page_GameHomes = (isset($_GET['page']) && (int)$_GET['page'] > 0) ? (int)$_GET['page'] : 1;
 	$limit_GameHomes = (isset($_GET['limit']) && (int)$_GET['limit'] > 0) ? (int)$_GET['limit'] : 10;
+
+	$searchString = (isset($_GET['search']) && !empty($_GET['search'])) ? $_GET['search'] : false;
+	$searchTypes = array('ip_port' => 'IP / Port', 'ownedBy' => 'Server Owner', 'rserver' => 'Remote Server', 'home_name' => 'Server Name');
+	$searchType = isset($_GET['searchType']) ? $_GET['searchType'] : false;
 	
 	if(hasValue($loggedInUserInfo) && is_array($loggedInUserInfo) && $loggedInUserInfo["users_page_limit"] && !hasValue($_GET['limit'])){
 		$limit_GameHomes = $loggedInUserInfo["users_page_limit"];
 	}
 
-	$game_homes = $db->getGameHomes_limit($page_GameHomes,$limit_GameHomes,$search_field);
+	$game_homes = $db->getGameHomes_limit($page_GameHomes, $limit_GameHomes, $searchType, $searchString);
 
 	echo "<h2>".get_lang('game_servers')."</h2>";
 	echo '<table style="width: 100%; margin-bottom: 50px;">
@@ -45,7 +48,8 @@ function exec_ogp_module()
 				<td style="width: 50%; vertical-align: middle; text-align: right;">
 					<form action="home.php" method="GET" style="float:right;">
 					<input type ="hidden" name="m" value="user_games" />
-					<input name="search" type="text" id="search" value="' . $search_field . '" />
+					'. create_drop_box_from_array($searchTypes, 'searchType', $searchType, false) .'
+					<input name="search" type="text" id="search" value="' . $searchString . '" />
 					<input type="submit" value="'.get_lang('search').'" />
 					</form>
 				</td>
@@ -97,14 +101,12 @@ function exec_ogp_module()
 	
 	echo "</table>";
 
-	$count_GameHomes = $db->get_GameHomes_count($search_field);
+	$count_GameHomes = $db->get_GameHomes_count($searchType, $searchString);
 	
-	if(isset($_GET['search']) && !empty($_GET['search'])){
-	$uri = '?m=user_games&search='.$_GET['search'].'&limit='.$limit_GameHomes.'&page=';
-	}
-	else
-	{
-	$uri = '?m=user_games&limit='.$limit_GameHomes.'&page=';
+	if (isset($_GET['search']) && !empty($_GET['search'])) {
+		$uri = '?m=user_games&search='.$_GET['search'].'&limit='.$limit_GameHomes.'&page=';
+	} else {
+		$uri = '?m=user_games&limit='.$limit_GameHomes.'&page=';
 	}
 	
 	echo paginationPages($count_GameHomes[0]['total'], $page_GameHomes, $limit_GameHomes, $uri, 3, 'userGames');
@@ -120,4 +122,4 @@ function exec_ogp_module()
 	</script>
 	<?php	
 }
-?>
+?>