Этот бот предназначен для управления виртуальными банковскими картами и переводами денежных средств между игроками на Майнкрафт сервере. Бот интегрируется с Discord сервером и использует слэш-команды для взаимодействия.
config.yaml
- файл конфигурации ботаmain.py
- основной файл с кодом ботаbot/messages.py
- файл с константами для ID каналов Discordbot/models.py
- файл с моделями данныхrequirements.txt
- файл зависимостей
- Склонируйте этот репозиторий
git clone https://github.com/Mag329/EnderBank.git
- Установите все необходимые зависимости, указанные в
requirements.txt
pip install -r requirements.txt
- Заполните файл
config.yaml
- Запустите бота с помощью команды
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 (можно настроить в конфиге).