-
Notifications
You must be signed in to change notification settings - Fork 12
/
create.php
131 lines (118 loc) · 4.4 KB
/
create.php
1
2
3
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
date_default_timezone_set('UTC');
if (php_sapi_name() != 'cli')
die("error: not command line");
include('./config.php');
$drop = False;
try
{
$db = new PDO(DATABASE);
echo "Connection to DB established.\n";
if ($drop)
{
if ($db->query('DROP TABLE servers')
&& $db->query('DROP TABLE clients')
&& $db->query('DROP TABLE started')
&& $db->query('DROP TABLE map_stats'))
echo "Dropped all tables.\n";
}
// Holds currently active games
$schema = 'CREATE TABLE servers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR,
address VARCHAR UNIQUE,
ts INTEGER,
state INTEGER,
map VARCHAR,
mod VARCHAR,
version VARCHAR,
modtitle VARCHAR,
modwebsite VARCHAR,
modicon32 VARCHAR,
protected BOOLEAN DEFAULT 0,
authentication BOOLEAN DEFAULT 0,
players INTEGER,
bots VARCHAR default 0,
spectators INTEGER DEFAULT 0,
maxplayers INTEGER DEFAULT 0,
disabled_spawn_points VARCHAR,
started DATETIME
)';
if ($db->query($schema))
echo "Created table 'servers'.\n";
// Holds clients for currently active games
$schema = 'CREATE TABLE clients (
address VARCHAR,
name VARCHAR,
fingerprint VARCHAR,
color VARCHAR,
faction VARCHAR,
team INTEGER DEFAULT 0,
spawnpoint INTEGER DEFAULT 0,
isadmin BOOLEAN DEFAULT 0,
isspectator BOOLEAN DEFAULT 0,
isbot BOOLEAN DEFAULT 0,
ts INTEGER
)';
if ($db->query($schema))
echo "Created table 'clients'.\n";
// Permanently records games that were started (and hopefully finished)
$schema = 'CREATE TABLE started (
id INTEGER PRIMARY KEY AUTOINCREMENT,
protocol INTEGER DEFAULT 1,
game_id INTEGER UNIQUE,
name VARCHAR,
address VARCHAR,
map VARCHAR,
mod VARCHAR,
version VARCHAR,
protected BOOLEAN DEFAULT 0,
authentication BOOLEAN DEFAULT 0,
players INTEGER,
bots VARCHAR default 0,
spectators INTEGER DEFAULT 0,
maxplayers INTEGER DEFAULT 0,
disabled_spawn_points VARCHAR,
started DATETIME,
finished DATETIME
)';
if ($db->query($schema))
echo "Created table 'started'.\n";
// Records aggregate play counts for each map
$schema = 'CREATE TABLE map_stats (
id INTEGER PRIMARY KEY AUTOINCREMENT,
map VARCHAR UNIQUE,
played_counter INTEGER,
last_change DATETIME
)';
if ($db->query($schema))
echo "Created table 'map_stats'.\n";
$db = new PDO(SYSINFO_DATABASE);
echo "Connection to sysinfo DB established.\n";
// Records opt-in system information
$schema = 'CREATE TABLE sysinfo (
system_id STRING PRIMARY KEY,
updated DATETIME,
platform STRING,
os STRING,
x64 BOOL DEFAULT 1,
runtime STRING,
gl STRING,
windowsize STRING DEFAULT "0x0",
windowscale STRING DEFAULT "1.00",
uiscale STRING DEFAULT "1.00",
lang STRING,
version STRING,
mod STRING,
modversion STRING,
sysinfoversion INTEGER DEFAULT 1
)';
if ($db->query($schema))
echo "Created table 'sysinfo'.\n";
$db = null;
}
catch (PDOException $e)
{
echo $e->getMessage();
}
?>