1<?php
2$filepath = '../';
3require_once 'module.php';
4
5// Autofetch API modules
6$directory = 'modules';
7$plugins = [];
8
9// Load base
10$plugins['base'] = [
11 'player' => 'test.php'
12];
13
14$baseIterator = new DirectoryIterator($directory);
15
16foreach ($baseIterator as $dir) {
17 if ($dir->isDot() || !$dir->isDir()) {
18 continue;
19 }
20
21 $moduleName = $dir->getFilename();
22 $moduleIterator = new DirectoryIterator($dir->getPathname());
23
24 foreach ($moduleIterator as $file) {
25 if (!$file->isFile()) {
26 continue;
27 }
28
29 if ($file->getExtension() !== 'php') {
30 continue;
31 }
32
33 $plugins[$moduleName][] = $file->getFilename();
34 }
35}
36
37// Global data
38$response['modules'] = $plugins;
39$response['data']['title'] = $config['site_title'] ?? '';
40$response['data']['slogan'] = $config['site_title_context'] ?? '';
41$response['data']['time'] = getClock(time(), false, true);
42$response['data']['time_formatted'] = getClock(time(), true, true);
43
44// Account count
45$accounts = db()->fetchOne("SELECT COUNT(*) AS `count` FROM `accounts`");
46$response['data']['accounts'] = (int)($accounts['count'] ?? 0);
47
48// Player count
49$players = db()->fetchOne("SELECT COUNT(*) AS `count` FROM `players`");
50$response['data']['players'] = (int)($players['count'] ?? 0);
51
52// Online players
53if (znote_server_adapter()->normalizedEngine() !== 'TFS_10') {
54 $online = db()->fetchOne("
55 SELECT COUNT(*) AS `count`, COUNT(DISTINCT `lastip`) AS `unique`
56 FROM `players`
57 WHERE `online` = 1
58 ");
59} else {
60 $online = db()->fetchOne("
61 SELECT COUNT(o.player_id) AS `count`, COUNT(DISTINCT p.lastip) AS `unique`
62 FROM `players_online` o
63 INNER JOIN `players` p ON o.player_id = p.id
64 ");
65}
66
67$response['data']['online'] = (int)($online['count'] ?? 0);
68$response['data']['online_unique_ip'] = (int)($online['unique'] ?? 0);
69
70// Server info
71$response['data']['client'] = $config['client'] ?? null;
72$response['data']['port'] = $config['port'] ?? null;
73$response['data']['guildwar'] = $config['guildwar_enabled'] ?? false;
74$response['data']['forum'] = $config['forum']['enabled'] ?? false;
75
76SendResponse($response);
77?>