Skip to content

Latest commit

 

History

History
142 lines (108 loc) · 7.11 KB

README.md

File metadata and controls

142 lines (108 loc) · 7.11 KB

EnderBank

Банковский Discord бот для Майнкрафт сервера

Этот бот предназначен для управления виртуальными банковскими картами и переводами денежных средств между игроками на Майнкрафт сервере. Бот интегрируется с Discord сервером и использует слэш-команды для взаимодействия.

Файлы

  • config.yaml - файл конфигурации бота
  • main.py - основной файл с кодом бота
  • bot/messages.py - файл с константами для ID каналов Discord
  • bot/models.py - файл с моделями данных
  • requirements.txt - файл зависимостей

Настройка

  1. Склонируйте этот репозиторий
git clone https://github.com/Mag329/EnderBank.git
  1. Установите все необходимые зависимости, указанные в requirements.txt
pip install -r requirements.txt
  1. Заполните файл config.yaml
  2. Запустите бота с помощью команды
python3 main.py

Функции бота

  • Создание виртуальных карт для игроков
  • Просмотр списка имеющихся карт и их баланса
  • Перевод денежных средств между картами игроков
  • Изменение карты по умолчанию
  • Выписка и оплата штрафов
  • Статистика игроков по балансу
  • Команды администрации (изменение баланса, SQL-запросы, выдача доступа к гос. карте и др.)
  • Логирование всех админ-операций в специальных каналах Discord

Использование

Бот реагирует на следующие слэш-команды в Discord:

Команды для игроков

  • /create_card user: <Ник в Minecraft> cardname: <Название карты> - создание новой банковской карты

    /create_card user:Mag329 cardname:Карта Мага
    
  • /cards - вывод списка всех имеющихся карт и их баланса

  • /transfer user: <Ник хотите перевести> cardname: <Карта с которой списать деньги> count: <Сумма перевода> descrition: <Сообщение> - перевод денег другому игроку или клану

    /transfer user: Withor_ cardname: Карта Мага count: 10 descrition: Спасибо за плагин
    
  • /swap card_1: <Название карты с которой вы хотите перевести Ары> card_2: <Название карты на которую хотите перевести Ары> count: <Сумма перевода> - перевод денег между своими картами

    /swap card_1: Карта Мага card_2: Вторая карта count:15
    
  • /set_default card: <Название карты> - изменение карты по умолчанию

    /set_default card: Вторая карта
    
  • /fines - список выписанных штрафов

  • /pay id: <ID штрафа, выводится при получение или при использование /fines> count: <Сумма оплаты> cardname: <Карта с которой хотите оплатить> - оплата штрафа

    /pay id: 24 count: 10 cardname: Карта мага
    
  • /stats - статистика топ игроков по балансу

  • /clancard_create cardname: <Название карты клана> - Создание карты для клана

    /clancard_create cardname: EnderBank
    
  • /clan_add username: <Ник игрока> - Дать доступ другому игроку к карте клана

    /clan_add username: Withor_
    
  • /clan_card - Информация о карте клана

Команды администрации

  • /set_balance user_mc: <Ник игрока> cardname: <Название карты на которой изменить баланс> balance: <Новый баланс> - изменить баланс карты игрока
/set_balance user_mc: Mag329 cardname: Карта мага balance: 10
  • /cards_admin username: <Ник игрока> - показать карты и баланс указанного игрока
/cards_admin username: Mag329
  • /sql_console sqlcommand: <SQL запрос> - выполнить SQL запрос в базе данных
/sql_console sqlcommand: DELETE FROM users WHERE username = "Mag329"
  • /fine username: <Ник игрока> count: <Сумма штрафа> description: <Описание> autopay: <Авто оплата(True/False)> - выписать штраф игроку
/fine username: Mag329 count: 10 description: Просто так autopay: False
  • /fines_admin username: <Ник игрока> - список штрафов указанного игрока
/fines_admin username: Mag329
  • /unfine username: <Ник игрока> id: <ID штрафа> - удалить штраф игрока
/unfine username: Mag329 id: 50
  • /restart - перезапустить бота.
  • /government_add username: <Ник игрока> - выдать доступ к государственной карте
/government_add username: Mag329
  • /debug - получить файл с логами бота

Описание механик

Авто-оплата

Администратор который выдает штраф может указать значение для авто-оплаты True или False

При значение True функция считается включенной, в этом случае с счета игрока которому выдали штраф будут автоматически списаны средства. Штраф не будет отображаться в команде /fines. Это единственный случай когда баланс может стать отрицательным. Если это произошло блокируются функции, такие как:

  • /create_card
  • /transfer
  • /set_default

При значение False функция считается выключенной, в этом случае можно оплатить штраф через команду /pay, также штраф будет отображаться в /fines

Логирование

Все операции бота логируются в каналы на Discord-сервере (согласно конфигу) и в файл log_file.txt. Критические ошибки отправляются владельцу бота в Discord (можно настроить в конфиге).