Живой онлайн в .json

Добро пожаловать!

Зарегистрировавшись у нас, вы сможете обсуждать, делиться и отправлять личные сообщения другим участникам нашего сообщества.

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
15 Фев 2025
Сообщения
3
Здравствуйте, возможно ли сделать так, чтобы веб-сайт обновлял данные о онлайне SA-MP сервера в файле .json (например, server.json)? Буду очень благодарен! (Необходимо для обновления онлайна в лаунчере Arizona RP).
 

Вложения

  • servers.txt
    813 байт · Просмотры: 12
Пользователь
Регистрация
22 Янв 2025
Сообщения
5
@Nonameebla, установи nodejs
OFFTOP

const fs = require('fs');
const SampQuery = require('samp-query');

async function getServerStatus(ip, port) {
return new Promise((resolve) => {
const options = { host: ip, port: port };
SampQuery(options, (error, response) => {
if (error) {
resolve(null);
} else {
resolve({
online: response.players,
maxplayers: response.maxplayers
});
}
});
});
}

async function updateServerData() {
const data = JSON.parse(fs.readFileSync('server.json', 'utf-8'));

for (const server of data.arizona) {
const status = await getServerStatus(server.ip, server.port);
if (status) {
server.online = status.online;
server.maxplayers = status.maxplayers;
}
}

fs.writeFileSync('server.json', JSON.stringify(data, null, 4));
console.log('Данные обновлены!');
}

updateServerData();

 
Пользователь
Регистрация
15 Фев 2025
Сообщения
3
@Nonameebla, установи nodejs
OFFTOP

const fs = require('fs');
const SampQuery = require('samp-query');

async function getServerStatus(ip, port) {
return new Promise((resolve) => {
const options = { host: ip, port: port };
SampQuery(options, (error, response) => {
if (error) {
resolve(null);
} else {
resolve({
online: response.players,
maxplayers: response.maxplayers
});
}
});
});
}

async function updateServerData() {
const data = JSON.parse(fs.readFileSync('server.json', 'utf-8'));

for (const server of data.arizona) {
const status = await getServerStatus(server.ip, server.port);
if (status) {
server.online = status.online;
server.maxplayers = status.maxplayers;
}
}

fs.writeFileSync('server.json', JSON.stringify(data, null, 4));
console.log('Данные обновлены!');
}

updateServerData();

На веб сайте возможно такое сделать? Я не могу подключится к SSH чтобы установить nodejs. Да и не вижу ищо гдето кнопок для установки nodejs
 
Пользователь
Регистрация
12 Фев 2025
Сообщения
53
Не обязательно делать замену в JSON можно в лаунчере использовать php

Для Mobile:
PHP:
<?php
require_once("SampQueryAPI.php");

$query = new SampQueryAPI('5.55.555.55, '7777');
$serverInfo = $query->getInfo();
$serverRules = $query->getRules();

echo('{"query":[{"number":1,"name":"Test","ip":"5.55.555.55","port":7777,"online":'. $serverInfo['players'] .',"maxplayers":300,"password":false,"icon": "https:\/\/arizona-recovery.react.domains\/desktop\/resources\/icons\/arizona\/24.png"}]}');

Для PC:

PHP:
<?php
require_once("SampQueryAPI.php");

$query = new SampQueryAPI('5.55.555.55', '7777');
$serverInfo = $query->getInfo();
$serverRules = $query->getRules();

echo('{"arizona":[{"number":1,"name":"Test","ip":"5.55.555.55","port":7777,"online":'. $serverInfo['players'] .',"maxplayers":300,"password":false,"icon": "https:\/\/arizona-recovery.react.domains\/desktop\/resources\/icons\/arizona\/24.png"}]}');

В папке с данным PHP должен быть SampQueryAPI.php
 
Пользователь
Регистрация
22 Окт 2024
Сообщения
118
Не обязательно делать замену в JSON можно в лаунчере использовать php

Для Mobile:
PHP:
<?php
require_once("SampQueryAPI.php");

$query = new SampQueryAPI('5.55.555.55, '7777');
$serverInfo = $query->getInfo();
$serverRules = $query->getRules();

echo('{"query":[{"number":1,"name":"Test","ip":"5.55.555.55","port":7777,"online":'. $serverInfo['players'] .',"maxplayers":300,"password":false,"icon": "https:\/\/arizona-recovery.react.domains\/desktop\/resources\/icons\/arizona\/24.png"}]}');

Для PC:

PHP:
<?php
require_once("SampQueryAPI.php");

$query = new SampQueryAPI('5.55.555.55', '7777');
$serverInfo = $query->getInfo();
$serverRules = $query->getRules();

echo('{"arizona":[{"number":1,"name":"Test","ip":"5.55.555.55","port":7777,"online":'. $serverInfo['players'] .',"maxplayers":300,"password":false,"icon": "https:\/\/arizona-recovery.react.domains\/desktop\/resources\/icons\/arizona\/24.png"}]}');

В папке с данным PHP должен быть SampQueryAPI.php
поможешь пожалуйста?
 
Сверху