Подключение Telegram Bot RCON [+venv]

Предисловие

Данный пост является дополнением к посту моего RCON бота
Хотя часть инструкции подойдет для всех.

Для начала вам нужен VDS, обычный сервер Minecraft не подойдет!


Создание бота

Создаем бота. Для этого переходим в чат BotFather и пишем ему:

/newbot

Вас попросят ввести ник. Вводим ник.
Потом попросят ввести id бота, по которому к нему будут обращаться
пример: test24serv_bot - bot ОБЯЗАТЕЛЬНО пишем в конце

Итог:
Все, вы создали бота. Вам выслали ссылку и token бота.

Скачиваем самого бота и переносим в нужную директорию.

Переходим к следующему этапу

"ВНИМАНИЕ!'

Запускать бота и устанавливать зависимости лучше в виртуальной среде.
Для чего требуется?
Как минимум, возможно вы используете или будете использовать 2 разных проекта на одной машине. Для устранения ошибок связанных с использованием одной библиотеки, но разных версий. Это не единственная причина, но с другими вы можете ознакомиться на других ресурсах.

Если вы думаете, что вам не нужно использовать виртуальное окружение - смело пролистывайте этот тап, переходя к следующему. Но в случае чего, плач не поможет.

Создаем виртуальное окружение:

Для начала переходим в главную директорию бота (для удобства)
И прописываем:
sudo apt install python3-venv
python3 -m venv venv

Как мы видим, создалась папка venv - это и есть наше виртуальной окружение.

Теперь осталось его активировать:

source venv/bin/activate  - для Linux

venv\Scripts\activate - для Windows

Среда активирована. Теперь переходим к следующим пунктам инструкции.
Устанавливая зависимости и запуская бота в виртуальном окружении.

Установка зависимостей

Заходим в терминал и следуем инструкциям ниже:

Для начала нам нужно установить pip. Для этого прописываем:

sudo apt -y install python3-pip

Следующее. Устанавливаем зависимости (заранее прописанные в requirements.txt для удобства)

pip install -r requirements.txt

Вот и все! Установка зависимостей завершена.
Переходим к настройке бота

Конфигурация

Открываем одноименный файл конфигурации (config.yaml)
И видим там следующие строки:

Telegram:
  token: ""  # здесь указываем токен бота
  on_logger_group: False  # логирование в группе телеграм (True - вкл, False - выкл)
  logger_chat_id: ''  # id группы для логирования бота (если включено)

database:
  name: 'rcon_bot.db'  # название бд

rcon:
  HOST: "127.0.0.1"  # ip rcon, оставляем так, если бот запускается с машины, где запущен сервер
  PASSWORD: "pass" # вводим rcon пароль
  PORT: 25576  # ркон порт (стандарт для Java Edition)

Записываем туда данные, как указано в комментариях самого файла.
Где пароль ркон, мы получаем в конфигурации нашего сервера:

файл server.properties, строки:
     rcon.password=пароль
     rcon.port=порт

На примере:

Telegram:
  token: "5320952114:AAELZBQ8sRs2oxPUgDjO04PsLqWyA44S5oI"
  on_logger_group: False 
  logger_chat_id: '' 
database:
  name: 'rcon_bot.db'
rcon:
  HOST: "127.0.0.1"сервер
  PASSWORD: "Star Butterfly Forever"
  PORT: 25576  # 

Также в конфиге найдутся строки:

console:
  give_role: False # включение выдачи супер-админа через консоль (рекомендую поставить True)
Запуск

Прописываем в терминале:
python3 bot.py

Если включена выдача супер-админа, на 1 старте пропускаем. Дальше переходим в сообщения, вводим команду /id, получаем свой ID.
Перезапускаем бота и в поле выдачи супер-админа вводим свой id (только перед первым запуском). Все! Вы получили права супер-админа, бот полностью функционирует и можно пользоваться

Логирование в группе

Добавляем бота в группу, выдаем ему админку.
Прописываем /id и получаем id беседы.
Включаем логгер в конфиге,
строчка:
on_logger_group = False - ставим на True - on_logger_group = True
И в строку:
logger_chat_id = '' Вставляем id группы. Пример: logger_chat_id = '-758'

Все! Логгер включен. Перезапускаем бота и наслаждаемся жизнью.

Послесловие:

Бота можно и запустить с вашего компьютера под управлением Windows\Linux\Mac. Однако, это делать нежелательно из-за соображений безопасности и скорости ответа.
Хотя никто этого вам не запрещает)

1 лайк

а я не активирую виенв, а прямо к ./venv/bin/python или .\venv\Scripts\python.exe обращаюсь)

Каждый (кхм) как он хочет.

Но советую остальным идти по пунктам)

Куда закидывать?

Можно ли это запустить на другой машине? Типо на одном сервере майн сервер а на другом телеграми бот

Убится

Нехочу

Конечно же можно

screen к твоим услугам

Тебя как обозвать? При чем тут скрин?

Боже, он про то, как связать сервер с ботом

на разных машинах, а не одной

Подключение по RCON происходит, что позволяет держать сервис отдельно от основного, где расположен сервер.
Однако, бд должна находиться с ботом вместе, поддержка Postgresql, Mysql и др серверных бд отсутствует.

В этом зипе должен быть файл зависимостями но их там нет. О каких зависимостях писал? Я две установил и и это mcrcon и aiogram вроде. Какие ещё нужны зависимости?

Нет, не должно быть это во-первых, во вторых качай с гита. Ссылку тебе уже скинули

Библиотеки устанавливать через pip или poetry

На гите лежит ласт версия, установка всех зависимостей командой:
python3 pip install -r requirements.txt

У меня получилось запустить. Но что это такое? Типо нет соиденения или что?

1 лайк

Проблемы у тебя с хостом

ты конченный?

1 лайк