• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Гайд Aternos 24/7

Новичок
Новичок
Статус
Оффлайн
Регистрация
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:

Быстрый порядок действий​


  1. Создаёшь новый Replit → выбираешь шаблон Node.js.
  2. В package.json добавь зависимость bedrock-protocol (или установи через терминал npm i bedrock-protocol).
  3. Создай файл index.js и вставь код (ниже).
  4. В коде поменяй значения SERVER_IP и SERVER_PORT (у тебя сначала меняется порт, потом IP — см. примечание ниже).
  5. Запусти Replit. Скрипт попытается подключиться и будет автоматически переподключаться при разрыве.
  6. Если Replit у тебя требует «Always on» — используй свой способ удержания Repl (у тебя уже получалось).

Код node.js:
Expand Collapse Copy
// 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
 
Последнее редактирование модератором:
Назад
Сверху Снизу