Новичок
Новичок
- Статус
- Оффлайн
- Регистрация
- 28 Авг 2025
- Сообщения
- 1
- Реакции
- 0
Заголовок: Как я сделал Aternos 24/7 через GeyserMC + Replit (простой скрипт)
Привет! Делюсь рабочим способом держать сервер Aternos всегда онлайн (у меня сервер с GeyserMC). Идея простая: на Replit запускаем bot-скрипт, который подключается к серверу как Bedrock-клиент и держит соединение. Пока бот подключён — Aternos считает, что есть игрок, и не засыпает.
В посте — пошаговая инструкция и готовый код для Replit (Node.js + bedrock-protocol). (Дальше вставляешь весь код и инструкции из гайда выше.)
Если кому нужно — могу выложить готовый Repl template (с настройками env) — скажите, кто захочет.
ПОЛНЫЙ КОД NODE JS:
надеюсь был полезен
при поддержке chatgpt.com
Привет! Делюсь рабочим способом держать сервер Aternos всегда онлайн (у меня сервер с GeyserMC). Идея простая: на Replit запускаем bot-скрипт, который подключается к серверу как Bedrock-клиент и держит соединение. Пока бот подключён — Aternos считает, что есть игрок, и не засыпает.
В посте — пошаговая инструкция и готовый код для Replit (Node.js + bedrock-protocol). (Дальше вставляешь весь код и инструкции из гайда выше.)
Если кому нужно — могу выложить готовый Repl template (с настройками env) — скажите, кто захочет.
ПОЛНЫЙ КОД NODE JS:
Быстрый порядок действий
- Создаёшь новый Replit → выбираешь шаблон Node.js.
- В package.json добавь зависимость bedrock-protocol (или установи через терминал npm i bedrock-protocol).
- Создай файл index.js и вставь код (ниже).
- В коде поменяй значения SERVER_IP и SERVER_PORT (у тебя сначала меняется порт, потом IP — см. примечание ниже).
- Запусти Replit. Скрипт попытается подключиться и будет автоматически переподключаться при разрыве.
- Если Replit у тебя требует «Always on» — используй свой способ удержания Repl (у тебя уже получалось).
Код node.js:
// index.js
// Простой "держатель онлайна" для Bedrock (GeyserMC на Java-сервере).
// Перед запуском поменяй SERVER_IP и SERVER_PORT на реальные значения.
// Установка: npm i bedrock-protocol
const bedrock = require('bedrock-protocol');
const SERVER_IP = process.env.SERVER_IP || 'PUT_SERVER_IP_HERE'; // <-- сюда IP сервера Aternos / Geyser
const SERVER_PORT = parseInt(process.env.SERVER_PORT || '19132'); // <-- сюда порт (обычно 19132 для Bedrock)
const BOT_NAME = process.env.BOT_NAME || 'KeepAliveBot';
let client = null;
let reconnectDelay = 5000; // ms
function connect() {
console.log(`[${new Date().toISOString()}] Попытка подключиться к ${SERVER_IP}:${SERVER_PORT} как ${BOT_NAME}...`);
try {
client = bedrock.createClient({
host: SERVER_IP,
port: SERVER_PORT,
username: BOT_NAME,
// В зависимости от версии библиотеки и сервера могут потребоваться дополнительные опции.
// Если нужно, можно указать `offline: true` или другие поля. Оставим базовые.
});
client.on('spawn', () => {
console.log(`[${new Date().toISOString()}] Успешно подключились — держим соединение.`);
});
client.on('end', () => {
console.log(`[${new Date().toISOString()}] Соединение закрыто. Переподключаемся через ${reconnectDelay} ms.`);
setTimeout(connect, reconnectDelay);
});
client.on('error', (err) => {
console.log(`[${new Date().toISOString()}] Ошибка клиента:`, err && err.message ? err.message : err);
// если ошибка — попробуем переподключиться
try { client.close && client.close(); } catch(e){}
setTimeout(connect, reconnectDelay);
});
// Иногда сервер "режет" без события error/end — на всякий отправляем пинг раз в 30 сек
setInterval(() => {
try {
client && client.raw && client.raw.write && client.raw.write(); // безопасная попытка вызвать что-то (необязательно)
} catch (e) {}
}, 30_000);
} catch (e) {
console.log(`[${new Date().toISOString()}] Ошибка при подключении:`, e.message || e);
setTimeout(connect, reconnectDelay);
}
}
connect();
надеюсь был полезен

при поддержке chatgpt.com
Последнее редактирование модератором: