1
+ <?php
2
+ /*
3
+ PHP Minecraft Query API
4
+ https://github.com/MCServerStatus/PHP-Minecraft-Query-API
5
+ */
6
+ header ('Content-type:text/json ' );
7
+
8
+ $ host = $ _GET ['host ' ];
9
+ $ port = $ _GET ['port ' ];
10
+
11
+ require 'ApiQuery.php ' ;
12
+ require 'ApiPing.php ' ;
13
+
14
+ if (($ Info = $ Query ->GetInfo ()) !== false ){
15
+ $ CleanHostName = str_replace ("§k " ,"" ,$ Info ['HostName ' ]);
16
+ $ CleanHostName = str_replace ("§l " ,"" ,$ CleanHostName );
17
+ $ CleanHostName = str_replace ("§m " ,"" ,$ CleanHostName );
18
+ $ CleanHostName = str_replace ("§n " ,"" ,$ CleanHostName );
19
+ $ CleanHostName = str_replace ("§o " ,"" ,$ CleanHostName );
20
+ $ CleanHostName = str_replace ("§r " ,"" ,$ CleanHostName );
21
+ $ CleanHostName = str_replace ("§1 " ,"" ,$ CleanHostName );
22
+ $ CleanHostName = str_replace ("§2 " ,"" ,$ CleanHostName );
23
+ $ CleanHostName = str_replace ("§3 " ,"" ,$ CleanHostName );
24
+ $ CleanHostName = str_replace ("§4 " ,"" ,$ CleanHostName );
25
+ $ CleanHostName = str_replace ("§5 " ,"" ,$ CleanHostName );
26
+ $ CleanHostName = str_replace ("§6 " ,"" ,$ CleanHostName );
27
+ $ CleanHostName = str_replace ("§7 " ,"" ,$ CleanHostName );
28
+ $ CleanHostName = str_replace ("§8 " ,"" ,$ CleanHostName );
29
+ $ CleanHostName = str_replace ("§9 " ,"" ,$ CleanHostName );
30
+ $ CleanHostName = str_replace ("§a " ,"" ,$ CleanHostName );
31
+ $ CleanHostName = str_replace ("§b " ,"" ,$ CleanHostName );
32
+ $ CleanHostName = str_replace ("§c " ,"" ,$ CleanHostName );
33
+ $ CleanHostName = str_replace ("§d " ,"" ,$ CleanHostName );
34
+ $ CleanHostName = str_replace ("§e " ,"" ,$ CleanHostName );
35
+ $ CleanHostName = str_replace ("§f " ,"" ,$ CleanHostName );
36
+ if ($ Info ['GameName ' ] == 'MINECRAFT ' ) {
37
+ $ json = array (
38
+ 'status ' => 'Online ' ,
39
+ 'platform ' => 'Minecraft ' ,
40
+ 'gametype ' => $ Info ['GameType ' ],
41
+ 'motd ' => array (
42
+ 'motd ' => $ Info ['HostName ' ],
43
+ 'clean_motd ' => $ CleanHostName
44
+ ),
45
+ 'host ' => array (
46
+ 'host ' => $ host ,
47
+ 'hostip ' => $ Info ['HostIp ' ],
48
+ 'port ' => $ Info ['HostPort ' ]
49
+ ),
50
+ 'players ' => array (
51
+ 'max ' => $ Info ['MaxPlayers ' ],
52
+ 'online ' => $ Info ['Players ' ]
53
+ ),
54
+ 'version ' => array (
55
+ 'version ' => $ Info ['Version ' ],
56
+ 'software ' => $ Info ['Software ' ]
57
+ ),
58
+ 'queryinfo ' => array (
59
+ 'agreement ' => 'Query ' ,
60
+ 'processed ' => $ Timer
61
+ )
62
+ );
63
+ } else if ($ Info ['GameName ' ] == 'MINECRAFTPE ' ) {
64
+ $ json = array (
65
+ 'status ' => 'Online ' ,
66
+ 'platform ' => 'Minecraft: Pocket Edition ' ,
67
+ 'gametype ' => $ Info ['GameType ' ],
68
+ 'motd ' => array (
69
+ 'motd ' => $ Info ['HostName ' ],
70
+ 'clean_motd ' => $ CleanHostName
71
+ ),
72
+ 'host ' => array (
73
+ 'host ' => $ host ,
74
+ 'hostip ' => $ Info ['HostIp ' ],
75
+ 'port ' => $ Info ['HostPort ' ]
76
+ ),
77
+ 'players ' => array (
78
+ 'max ' => $ Info ['MaxPlayers ' ],
79
+ 'online ' => $ Info ['Players ' ]
80
+ ),
81
+ 'version ' => array (
82
+ 'version ' => $ Info ['Version ' ],
83
+ 'software ' => $ Info ['Software ' ]
84
+ ),
85
+ 'queryinfo ' => array (
86
+ 'agreement ' => 'Query ' ,
87
+ 'processed ' => $ Timer
88
+ )
89
+ );
90
+ } else {
91
+ $ json = array (
92
+ 'status ' => 'Online ' ,
93
+ 'platform ' => $ Info ['GameName ' ],
94
+ 'gametype ' => $ Info ['GameType ' ],
95
+ 'motd ' => array (
96
+ 'motd ' => $ Info ['HostName ' ],
97
+ 'clean_motd ' => $ CleanHostName
98
+ ),
99
+ 'host ' => array (
100
+ 'host ' => $ host ,
101
+ 'hostip ' => $ Info ['HostIp ' ],
102
+ 'port ' => $ Info ['HostPort ' ]
103
+ ),
104
+ 'players ' => array (
105
+ 'max ' => $ Info ['MaxPlayers ' ],
106
+ 'online ' => $ Info ['Players ' ]
107
+ ),
108
+ 'version ' => array (
109
+ 'version ' => $ Info ['Version ' ],
110
+ 'software ' => $ Info ['Software ' ]
111
+ ),
112
+ 'queryinfo ' => array (
113
+ 'agreement ' => 'Query ' ,
114
+ 'processed ' => $ Timer
115
+ )
116
+ );
117
+ }
118
+ } else if ($ InfoPing !== false ){
119
+ $ version = explode (" " ,$ InfoPing ['version ' ]['name ' ],2 );
120
+ $ CleanHostName = str_replace ("§k " ,"" ,$ InfoPing ['description ' ]);
121
+ $ CleanHostName = str_replace ("§l " ,"" ,$ CleanHostName );
122
+ $ CleanHostName = str_replace ("§m " ,"" ,$ CleanHostName );
123
+ $ CleanHostName = str_replace ("§n " ,"" ,$ CleanHostName );
124
+ $ CleanHostName = str_replace ("§o " ,"" ,$ CleanHostName );
125
+ $ CleanHostName = str_replace ("§r " ,"" ,$ CleanHostName );
126
+ $ CleanHostName = str_replace ("§1 " ,"" ,$ CleanHostName );
127
+ $ CleanHostName = str_replace ("§2 " ,"" ,$ CleanHostName );
128
+ $ CleanHostName = str_replace ("§3 " ,"" ,$ CleanHostName );
129
+ $ CleanHostName = str_replace ("§4 " ,"" ,$ CleanHostName );
130
+ $ CleanHostName = str_replace ("§5 " ,"" ,$ CleanHostName );
131
+ $ CleanHostName = str_replace ("§6 " ,"" ,$ CleanHostName );
132
+ $ CleanHostName = str_replace ("§7 " ,"" ,$ CleanHostName );
133
+ $ CleanHostName = str_replace ("§8 " ,"" ,$ CleanHostName );
134
+ $ CleanHostName = str_replace ("§9 " ,"" ,$ CleanHostName );
135
+ $ CleanHostName = str_replace ("§a " ,"" ,$ CleanHostName );
136
+ $ CleanHostName = str_replace ("§b " ,"" ,$ CleanHostName );
137
+ $ CleanHostName = str_replace ("§c " ,"" ,$ CleanHostName );
138
+ $ CleanHostName = str_replace ("§d " ,"" ,$ CleanHostName );
139
+ $ CleanHostName = str_replace ("§e " ,"" ,$ CleanHostName );
140
+ $ CleanHostName = str_replace ("§f " ,"" ,$ CleanHostName );
141
+ $ json = array (
142
+ 'status ' => 'Online ' ,
143
+ 'motd ' => array (
144
+ 'motd ' => $ InfoPing ['description ' ],
145
+ 'clean_motd ' => $ CleanHostName
146
+ ),
147
+ 'host ' => array (
148
+ 'host ' => $ host ,
149
+ 'port ' => $ port
150
+ ),
151
+ 'players ' => array (
152
+ 'max ' => $ InfoPing ['players ' ]['max ' ],
153
+ 'online ' => $ InfoPing ['players ' ]['online ' ]
154
+ ),
155
+ 'version ' => array (
156
+ 'version ' => $ version [1 ],
157
+ 'protocol ' => $ InfoPing ['version ' ]['protocol ' ]
158
+ ),
159
+ 'queryinfo ' => array (
160
+ 'agreement ' => 'Ping ' ,
161
+ 'processed ' => $ Timer
162
+ )
163
+ );
164
+ } else {
165
+ $ json = array (
166
+ 'status ' => 'Offline ' ,
167
+ 'host ' => $ host ,
168
+ 'port ' => $ port
169
+ );
170
+ }
171
+ echo json_encode ($ json , JSON_UNESCAPED_UNICODE |JSON_PRETTY_PRINT );
172
+ ?>
0 commit comments