aboutsummaryrefslogtreecommitdiff
path: root/lib/MasterServer/Database/Pg/dbUTServerInfo.pm
diff options
context:
space:
mode:
authorDarkelarious <darkelarious@333networks.com>2017-08-22 11:00:13 +0200
committerDarkelarious <darkelarious@333networks.com>2017-08-22 11:00:13 +0200
commitc06322da38b4cb76b2036af1a5448083adb8ff20 (patch)
tree189c9f0fec3325be927f763aba23cf18aa68cfe4 /lib/MasterServer/Database/Pg/dbUTServerInfo.pm
parente0d727670cbeda0db0812c5c9efc503d75f8d0a4 (diff)
downloadMasterServer-Perl-c06322da38b4cb76b2036af1a5448083adb8ff20.tar.gz
MasterServer-Perl-c06322da38b4cb76b2036af1a5448083adb8ff20.zip
new server checking mechanism, complete recode of major functionsv2.4.0
Diffstat (limited to 'lib/MasterServer/Database/Pg/dbUTServerInfo.pm')
-rwxr-xr-xlib/MasterServer/Database/Pg/dbUTServerInfo.pm237
1 files changed, 0 insertions, 237 deletions
diff --git a/lib/MasterServer/Database/Pg/dbUTServerInfo.pm b/lib/MasterServer/Database/Pg/dbUTServerInfo.pm
deleted file mode 100755
index 0bf005e..0000000
--- a/lib/MasterServer/Database/Pg/dbUTServerInfo.pm
+++ /dev/null
@@ -1,237 +0,0 @@
-package MasterServer::Database::Pg::dbUTServerInfo;
-
-use strict;
-use warnings;
-use MasterServer::Core::Util 'sqlprint';
-use Exporter 'import';
-
-our @EXPORT = qw| get_utserver
- add_utserver
- update_utserver
- delete_utplayers
- insert_utplayer |;
-
-################################################################################
-## get server details for one or multiple UT servers
-## opts: limit, see $order
-################################################################################
-sub get_utserver {
- my $s = shift;
- my %o = (
- sort => '',
- @_
- );
-
- my %where = (
- $o{id} ? ('server_id = ?' => $o{id}) : (),
- $o{minnetver} ? ('minnetver = ?' => $o{minnetver}) : (),
- $o{gamever} ? ('gamever = ?' => $o{gamever}) : (),
- $o{location} ? ('location = ?' => $o{location}) : (),
- $o{listenserver} ? ('listenserver = ?' => $o{listenserver}) : (),
- $o{hostport} ? ('hostport = ?' => $o{hostport}) : (),
- $o{hostname} ? ('hostname = ?' => $o{hostname}) : (),
- $o{adminname} ? ('adminname = ?' => $o{adminname}) : (),
- $o{adminemail} ? ('adminemail = ?' => $o{adminemail}) : (),
- $o{password} ? ('password = ?' => $o{password}) : (),
- $o{gametype} ? ('gametype = ?' => $o{gametype}) : (),
- $o{gamestyle} ? ('gamestyle = ?' => $o{gamestyle}) : (),
- $o{changelevels} ? ('changelevels = ?' => $o{changelevels}) : (),
- $o{maptitle} ? ('maptitle = ?' => $o{maptitle}) : (),
- $o{mapname} ? ('mapname = ?' => $o{mapname}) : (),
- $o{numplayers} ? ('numplayers = ?' => $o{numplayers}) : (),
- $o{maxplayers} ? ('maxplayers = ?' => $o{maxplayers}) : (),
- $o{minplayers} ? ('minplayers = ?' => $o{minplayers}) : (),
- $o{botskill} ? ('botskill = ?' => $o{botskill}) : (),
- $o{balanceteams} ? ('balanceteams = ?' => $o{balanceteams}) : (),
- $o{playersbalanceteams} ? ('playersbalanceteams = ?' => $o{playersbalanceteams}) : (),
- $o{friendlyfire} ? ('friendlyfire = ?' => $o{friendlyfire}) : (),
- $o{maxteams} ? ('maxteams = ?' => $o{maxteams}) : (),
- $o{timelimit} ? ('timelimit = ?' => $o{timelimit}) : (),
- $o{goalteamscore} ? ('goalteamscore = ?' => $o{goalteamscore}) : (),
- $o{fraglimit} ? ('fraglimit = ?' => $o{fraglimit}) : (),
- $o{mutators} ? ('hostname ILIKE ?' => "%$o{mutators}%") : (),
- $o{updated} ? ('updated > to_timestamp(?)'=> (time-$o{updated})) : (),
- );
-
- my @select = ( qw|
- server_id
- minnetver
- gamever
- location
- listenserver
- hostport
- hostname
- adminname
- adminemail
- password
- gametype
- gamestyle
- changelevels
- maptitle
- mapname
- numplayers
- maxplayers
- minplayers
- botskill
- balanceteams
- playersbalanceteams
- friendlyfire
- maxteams
- timelimit
- goalteamscore
- fraglimit
- mutators
- updated
- |);
-
- my $order = sprintf {
- server_id => 'server_id %s',
- minnetver => 'minnetver %s',
- gamever => 'gamever %s',
- location => 'location %s',
- listenserver => 'listenserver %s',
- hostport => 'hostport %s',
- hostname => 'hostname %s',
- adminname => 'adminname %s',
- adminemail => 'adminemail %s',
- password => 'password %s',
- gametype => 'gametype %s',
- gamestyle => 'gamestyle %s',
- changelevels => 'changelevels %s',
- maptitle => 'maptitle %s',
- mapname => 'mapname %s',
- numplayers => 'numplayers %s',
- maxplayers => 'maxplayers %s',
- minplayers => 'minplayers %s',
- botskill => 'botskill %s',
- balanceteams => 'balanceteams %s',
- playersbalanceteams => 'playersbalanceteams %s',
- friendlyfire => 'friendlyfire %s',
- maxteams => 'maxteams %s',
- timelimit => 'timelimit %s',
- goalteamscore => 'goalteamscore %s',
- fraglimit => 'fraglimit %s',
- mutators => 'mutators %s',
- updated => 'updated %s',
- }->{ $o{sort}||'server_id' }, $o{reverse} ? 'DESC' : 'ASC';
-
- return $s->db_all( q|
- SELECT !s FROM utserver_info
- !W
- ORDER BY !s|
- .($o{limit} ? " LIMIT ?" : ""),
- join(', ', @select), \%where, $order, ($o{limit} ? $o{limit} : ()),
- );
-}
-
-
-################################################################################
-## Update serverinfo for an existing address to the utserver list.
-## opts: all server info data fields.
-################################################################################
-sub update_utserver {
- my $self = shift;
- my $id = shift;
- my %s = (
- # defaults
- updated => time,
- @_);
-
- # try updating it in serverlist
- my %H = (
- $s{minnetver} ? ( 'minnetver = ?' => $s{minnetver} ) : (),
- $s{gamever} ? ( 'gamever = ?' => int( $s{gamever}) ) : (),
- $s{location} ? ( 'location = ?' => $s{location} ) : (),
- $s{listenserver} ? ( 'listenserver = ?' => ( $s{listenserver} ? 1 : 0) ) : (),
- $s{hostport} ? ( 'hostport = ?' => $s{hostport}) : (),
- $s{hostname} ? ( 'hostname = ?' => $s{hostname}) : (),
- $s{AdminName} ? ( 'adminname = ?' => $s{AdminName}) : (),
- $s{AdminEMail} ? ( 'adminemail = ?' => $s{AdminEMail}) : (),
- $s{password} ? ( 'password = ?' => ( $s{password} ? 1 : 0) ) : (),
- $s{gametype} ? ( 'gametype = ?' => $s{gametype}) : (),
- $s{gamestyle} ? ( 'gamestyle = ?' => $s{gamestyle}) : (),
- $s{changelevels} ? ( 'changelevels = ?' => ( $s{changelevels} ? 1 : 0) ) : (),
- $s{maptitle} ? ( 'maptitle = ?' => $s{maptitle}) : (),
- $s{mapname} ? ( 'mapname = ?' => $s{mapname}) : (),
- $s{numplayers} ? ( 'numplayers = ?' => $s{numplayers}) : ('numplayers = ?' => 0),
- $s{maxplayers} ? ( 'maxplayers = ?' => $s{maxplayers}) : ('maxplayers = ?' => 0),
- $s{minplayers} ? ( 'minplayers = ?' => $s{minplayers}) : ('minplayers = ?' => 0),
- $s{botskill} ? ( 'botskill = ?' => $s{botskill}) : (),
- $s{balanceteams} ? ( 'balanceteams = ?' => ( $s{balanceteams} ? 1 : 0) ) : (),
- $s{playersbalanceteams} ? ( 'playersbalanceteams = ?' => ( $s{playersbalanceteams} ? 1 : 0) ) : (),
- $s{friendlyfire} ? ( 'friendlyfire = ?' => $s{friendlyfire}) : (),
- $s{maxteams} ? ( 'maxteams = ?' => $s{maxteams}) : (),
- $s{timelimit} ? ( 'timelimit = ?' => $s{timelimit}) : (),
- $s{goalteamscore} ? ( 'goalteamscore = ?' => int( $s{goalteamscore}) ) : (),
- $s{fraglimit} ? ( 'fraglimit = ?' => int( $s{fraglimit}) ) : (),
- $s{mutators} ? ( 'mutators = ?' => $s{mutators}) : ('mutators = ?' => "None"),
- $s{updated} ? ('updated = to_timestamp(?)' => $s{updated}) : (),
- );
-
- my($q, @p) = sqlprint("UPDATE utserver_info !H WHERE server_id = ?", \%H, $id);
- return $self->{dbh}->do($q, undef, @p);
-}
-
-
-################################################################################
-## Add a new utserver and trigger the update routine above.
-## opts: id, server info data
-################################################################################
-sub add_utserver {
- my ($self, $ip, $port) = @_;
-
- # create new entry
- return $self->{dbh}->do(
- "INSERT INTO utserver_info (server_id)
- SELECT (SELECT id FROM serverlist WHERE ip = ? AND port = ?)",
- undef, $ip, $port);
-}
-
-
-################################################################################
-## Delete all players from a certain server ID
-## opts: server id
-################################################################################
-sub delete_utplayers {
- my ($self, $sid) = @_;
-
- # delete players for server_id
- return $self->{dbh}->do(
- "DELETE FROM utplayer_info WHERE server_id = ?",
- undef, $sid);
-}
-
-################################################################################
-## Insert player info for a single player in server sid
-## opts: server id, player info
-################################################################################
-sub insert_utplayer {
- my $self = shift;
- my $sid = shift;
- my %s = (
- updated => time,
- @_);
-
- # apparently useless chunk of code
- # FIXME move to site part
- my %H = (
- $s{server_id} ? ( 'server_id = ?' => $s{server_id}) : (),
- $s{player} ? ( 'player = ?' => $s{player}) : (),
- $s{team} ? ( 'team = ?' => int( $s{team})) : (),
- $s{frags} ? ( 'frags = ?' => int( $s{frags})) : (),
- $s{mesh} ? ( 'mesh = ?' => $s{mesh}) : (),
- $s{skin} ? ( 'skin = ?' => $s{skin}) : (),
- $s{face} ? ( 'face = ?' => $s{face}) : (),
- $s{ping} ? ( 'ping = ?' => int( $s{ping})) : (),
- $s{ngsecret} ? ( 'ngsecret = ?' => $s{ngsecret}) : (),
- $s{updated} ? ('updated = to_timestamp(?)' => $s{updated}) : (),
- );
-
- # insert
- return $self->{dbh}->do(
- "INSERT INTO utplayer_info (server_id, player, team, frags, mesh, skin, face, ping, ngsecret)
- VALUES (?,?,?,?,?,?,?,?,?)",
- undef, $sid, $s{player}, $s{team}, $s{frags}, $s{mesh}, $s{skin}, $s{face}, $s{ping}, $s{ngsecret});
-}
-
-1;