Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/santaspeen/rcon-vk-bot
RCON бот для ВК сообществ
https://github.com/santaspeen/rcon-vk-bot
minecraft python rcon vk
Last synced: 2 months ago
JSON representation
RCON бот для ВК сообществ
- Host: GitHub
- URL: https://github.com/santaspeen/rcon-vk-bot
- Owner: SantaSpeen
- License: mit
- Created: 2023-03-28T17:13:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-01-24T14:32:51.000Z (11 months ago)
- Last Synced: 2024-10-09T13:23:40.201Z (2 months ago)
- Topics: minecraft, python, rcon, vk
- Language: Python
- Homepage:
- Size: 1.94 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RCON бот для ВК сообществ
[![CodeTime badge](https://img.shields.io/endpoint?style=flat&url=https%3A%2F%2Fapi.codetime.dev%2Fshield%3Fid%3D24004%26project%3D%26in%3D0)](https://github.com/SantaSpeen/)**Не забывай про звёздочку!)**
## Что умеет:### Команды
**Не стесняйтесь, предлагайте свои идеи в issue, Vk, Telegram**\
Бот использует по умолчанию хост - *default*, т.е. `.rcon default say hello` такое же что и `.rcon say hello`#### RCON
* **`.rcon ( | default) `** - Исполняет <*command*> на <*host*> и показывает ответ сервера (`bot.rcon.` и `bot.rcon..`)
#### ADMIN команды
* **`.bot`** - Команды бота (`bot.help`)
* **`.bot help`** - Команды бота (`bot.help`)
* **`.bot info`** - Выводит краткую информацию о боте. (`bot.info`)
* **`.bot hosts list`** - Список доступных хостов. (`bot.hosts.list`)
* **`.bot hosts reload`** - Перезагружает hosts.yml. (`bot.hosts.reload`)
* **`.bot perms reload`** - Перезагружает permissions.yml. (`bot.perms.reload`)#### Остальные
* **`!help`** - Выводит содержимое help_message.txt (`bot.cmd.help`)
* **`!id`** - Выводит ID пользователя, его роль и ник (`bot.cmd.id`)
* **`!online ( | default)`** - Запрашивает у <*host*> онлайн и выводит (`bot.cmd.online.`)
* **`!history ( | default)`** - **(WIP)** Выводит график онлайна на <*host*> (`bot.cmd.history.`)### Возможности
* Работа в [Docker](./Dockerfile)
* Система [Permissions](#система-permissions) - Разрешения для пользователей
* Система [MultiHost](#система-multihost) - Если у тебя очень много хостов## Как запустить?
### Скачать скомпилированный вариант
* [Страница релизов](https://github.com/SantaSpeen/Rcon-VK-Bot/releases)
### Запуск в Docker
У вас уже должен стоять докер, для этого
```bash
docker run -v ./rconbot/config:/app/config -it santaspeen/rcon-vk-bot:2.0.0-alpine
```Папки бота:
* `/app/config` - Тут будет храниться вся конфигурация### Запуск исходного кода
1. Должен быть установлен Python3.12 (**На версиях ниже не будет работать**)
2. Качаем репозиторий
3. `pip install -r requirements.txt` - Установка зависимостей
4. 1 Раз запускаем, что бы сгенерировалось всё что нужно
5. Лезем в `config.json`, `permissions.yml` и настраиваем
6. `python main.py` - Запускаем
7. [Опционально] Скомпилировать `pyinstaller --noconfirm --onefile --console --icon "./win/icon.ico" --name "Rcon-VK-Bot" --version-file "./win/version.txt" "./src/main.py"`_Всё очень легко и просто)_
## Система Permissions
Файл: `config/permissions.yml`\
В файле указаны **vk id** пользователей и их разрешения\
Стандартный вид:
```yaml
noRole: Нет роли
noRights: Нет прав # null для отключения
noNick: Не указан # Используется для !id# Таблица соответствия vkID к нику в Майнкрафте
# Ник будет передаваться в плагины (Плагины бота)
nicks:
370926160: Rick
583018016: SantaSpeenperms:
admin: # Имя группы
name: Админ # Имя группы, которое будет отображаться в боте
ids: # вк ИД входящих в состав группы
- 370926160
parent: # Наследование прав
- helper
allow: # Какие команды разрешены, "*" - все
- '*'
helper:
name: Хелпер
ids:
- 583018016
allow:
- bot.rcon.* # См. host.yml
- say
- mute
- warn
default:
name: Игрок
allow:
- bot.cmd.help
- bot.cmd.id
- bot.cmd.online.*
- bot.cmd.history.*
```## Система MultiHost
Файл: `config/hosts.yml`\
Тут должно быть описание..\
Стандартный вид:
```yaml
hosts:
survival: # Название сервера (имя), может быть любым, может быть сколько угодно
meta:
name: Выживание # Это имя будет выводиться в ответе, или статистике (имя для бота)
java: true # Это JAVA сервер?
important: true # Если да, то бот не включится, если не подключится
# 0 - выключен
# 1 - Доступно без имени (!! Такое значение может быть только у 1 хоста !!) (.rcon )
# 2 - Доступно с именем (.rcon )
# Разрешение: bot.rcon.; bot.online.; bot.history.
# При запуске бота будет проверка доступности всего
rcon: 2 # RCON будет доступен по команде .rcon lobby (разрешение: bot.rcon.lobby)
# !online будет доступен по команде !online lobby (разрешение: bot.cmd.online.lobby)
# !history будет доступен по команде !history lobby (разрешение: bot.cmd.history.lobby)
online: 2
rcon: # RCON подключение
host: 192.168.0.31
port: 15101
password: rconPass1
mine: # Minecraft подключение (нужно для !online и !history)
host: 192.168.0.31
port: 15001lobby:
meta:
name: Лобби
important: true
java: true
rcon: 1
online: 2
rcon:
host: 192.168.0.31
port: 15100
password: rconPass2
mine:
host: 192.168.0.31
port: 15000devlobby:
meta:
name: Лобби
important: false
java: true
rcon: 2
online: 2
rcon:
host: 192.168.0.31
port: 15108
password: rconPass3
mine:
host: 192.168.0.31
port: 15008proxy-local:
meta:
name: Proxy-Local
java: true
important: true
rcon: 0
online: 1
rcon:
mine:
host: 192.168.0.31
port: 15009
```### За помощью, заказами и предложениями можно обратиться сюда:
1. _Vk_ [@l.vindeta](https://vk.me/l.vindeta)
2. _Telegram_ [@id01234](https://t.me/id0124)Мб что-нибудь ещё добавлю :)