This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
README.md
Гайд по написанию дискорд бота на языке Python и на библиотеке Disnake
Для корректной работы бота советуем установить Python 3.9 и выше
- Тыкаем сюда и у вас скачивается Python 3.9
- Обязательно включаем галочку рядом с Add Python 3.9 to PATH и проходим дальнейшую установку
После установки Python вы так же можете установить Visual Studio Code для редактирования файлов бота по этой ссылке
- Заходим на сайт и нажимаем на кнопку New Application
- Вводим название приложения и нажимаем Create
- Выбираем вкладку Bot
- Нажимаем Add Bot
- И снова нажимаем Yes, do it!
- Нажимаем Reset Token и сохраняем его где-нибудь (После перезагрузки страницы токен пропадет и его придется пересоздать в случае утери)
Во вкладке Bot включаем следующие галочки
- Public Bot — Означает, что бот является общедоступным и может быть добавлен другими людьми на их сервера в Discord.
- Presence Intent — Позволяет боту отслеживать присутствие пользователей, включая их статус в реальном времени (например, онлайн, отсутствует, занят) и активность (например, играет в игру).
- Server Members Intent — Позволяет боту получать информацию об участниках сервера, такую как имена, никнеймы, роли и т.д.
- Message Content Intent — Позволяет боту получать информацию о содержимом сообщений, включая текст и вложения.
Пишем в cmd вот эту команду pip install disnake
Корневой файл bot.py
Настройка бота под себя
Онлайн status=disnake.Status.online Оффлайн status=disnake.Status.offline Не беспокоить status=disnake.Status.
dnd Не активен status=disnake.Status.idle
Играет activity=disnake.Game(name=»игру») Смотрит activity=disnake.
Activity(type=disnake.ActivityType.watching, name=»ютуб») Слушает activity=disnake.Activity(type=disnake.ActivityType.
listening, name=»музыку») Стримит activity=disnake.Streaming(name=»игру», url=»https://www.twitch.tv/никнейм») #если убрать аргумент url то кнопки просто не будет, но все будет работать Соревнуется в activity=disnake.Activity(type=disnake.ActivityType.competing, name=»создании бота»)
Этот параметр обозначает добавление тестового сервера на котором слеш команды будут обновляться сразу При добавлении большого количество идентификаторов то бот будет запускаться медленно, советуем добавлять не более 3х
Что бы добавить туда свой сервер напишите так
test_guilds=[960169222808432660]
Что бы добавить несколько серверов напишите так
test_guilds=[960169222808432660, 941767647790514216]
Важно — Если айди вашего сервера не будет там то слеш команда появится/обновится только через 10-15 минут после её добавления/изменения
Создаем файл .py в папке cogs , пример — moderation.py
Начинка кога (Вместо Fun ставим название своего кога)
Ког — модуль бота где хранятся команды, можно создавать столько когов, сколько захотите (Модерация, Развлечение и.т.п)
Токен — зашифрованный ключ Discord, с помощью которого бот авторизуется
Импорт — обязательная вещь которая добавляет в код много полезного, пример ниже
import disnake from disnake.ext import commands
Ивент — триггер который активируется при каком либо действии, к примеру on_ready — бот включен(готов)
На этом все, дальше смотрите файлы, там я буду выкладывать примеры
About
Гайд по написанию Discord бота на языке Python
Источник: github.com
Создаём Discord-бота на PHP
Давно хотел написать статью про дискорд-ботов, но всё никак не мог определиться с конкретной тематикой, ведь подобных туториалов и уроков в интернете полно, и в основном для этих целей используют Python и Node.JS. А вот какой-либо документации и примеров написания ботов для дискорда на PHP почти нет, и уж тем более на русском языке. Поэтому в этой статье будем разбирать основы написания ботов на библиотеке Discord-PHP.
Шаг 1: Подготовка бота
1. Переходим по ссылке и создаём новое приложение:
2. Во вкладке Bot добавляем бота, подтверждаем выбор в появившемся окне:
3. Во вкладке OAuth2 -> URL Generator ставим галочку напротив пункта bot, ниже выбираем необходимые права доступа и копируем появившуюся внизу ссылку на инвайт бота:
4. Переходим по скопированной ссылке и приглашаем бота в нужный нам сервер.
5. Генерируем токен бота и сохраняем его у себя:
6. Включаем SERVER MEMBERS INTENT, дабы отслеживать события пользователей (например, вход на сервер):
Шаг 2: Скрипт
Подключаем библиотеку через composer:
composer require team-reflex/discord-php
В этот раз много всего делать не будем, разберём только базовые вещи. В будущих уроках, возможно, напишем ещё что-нибудь. А, возможно, и сделаем бота на питоне. Впрочем, пока загадывать не буду.
Начинаем с подключения библиотеки, импортируем необходимые для работы классы:
Создаём экземпляр класса Discord:
$ds = new Discord( [ ‘token’ => ‘*****************’, // Токен, который мы сгенерировали ранее ‘intents’ => Intents::getDefaultIntents() | Intents::GUILD_MEMBERS, // Понадобится для отслеживания событий участников ] );
Далее вставляем конструкцию, внутри которой будем прописывать конкретные события для отслеживания. В конец сразу добавил $ds->run() для запуска бота:
$ds->on( ‘ready’, function( $ds ) < // Тут продолжим писать код >); $ds->run();
И первое событие, которое мы обработаем — так это входящие сообщения:
$ds->on( Event::MESSAGE_CREATE, function( Message $msg, Discord $ds ) < // Тут будем обрабатывать входящие >);
Добавим тестовую команду:
if ( $msg->content == ‘/бот’ ) < $msg->reply( ‘Привет, ‘ . $msg->author->username ); >
Да, бот пока не запущен и не готов к работе, но я забегу наперёд и покажу, как это будет работать:
С помощью метода ban() можно заблокировать участника. В первом параметре можно указать, за какой промежуток времени нужно удалить сообщения этого пользователя (я для примера удалю сообщения за последние сутки), а во втором — причину бана:
else if ( str_contains( $msg->content, ‘админ лох’ ) ) < $msg->member->ban( 1, ‘reason’ ); >
Такое условие на практике, конечно, использоваться никогда не будет, да и в принципе банить людей по ключевым словам — решение не шибко надёжное. Но сейчас я просто показываю, как можно банить юзеров средствами библиотеки.
В первом шаге мы включили Members Intent, поэтому теперь можем отслеживать вход новых участников на наш сервер:
$ds->on( Event::GUILD_MEMBER_ADD, function( Member $member, Discord $ds ) < // Тут продолжим писать код >);
Давайте выдадим новым участникам какую-нибудь роль, а для этого нам понадобится получить ID этой самой роли. Чтобы его получить — включаем режим разработчика (Настройки -> Настройки приложения -> Расширенное):
Ну, и теперь копируем ID нужной роли:
Теперь мы можем воспользоваться методом addRole(), передав в него скопированный айдишник (в виде строки):
$member->addRole( ‘1007995229674156102’ );
Ну, и ещё поменяем никнейм присоединившегося участника на сервере методом setNickname():
$member->setNickname( ‘Новый никнейм’ );
‘******************’, ‘intents’ => Intents::getDefaultIntents() | Intents::GUILD_MEMBERS, ] ); $ds->on( ‘ready’, function( $ds ) < $ds->on( Event::MESSAGE_CREATE, function( Message $msg, Discord $ds ) < if ( $msg->content == ‘/бот’ ) < $msg->reply( ‘Привет, ‘ . $msg->author->username ); > else if ( str_contains( $msg->content, ‘админ лох’ ) ) < $msg->member->ban( 1, ‘reason’ ); > > ); $ds->on( Event::GUILD_MEMBER_ADD, function( Member $member, Discord $ds ) < $member->addRole( ‘1007995229674156102’ ); $member->setNickname( ‘Новый никнейм’ ); > ); > ); $ds->run();
Шаг 3: Запуск бота
Запустить бота можно на OpenServer. Для этого нужно перейти в консоль:
И ввести следующую команду (путь, естественно, указывать нужно свой):
Если же у вас есть купленный хост, который предоставляет возможность юзать консоль, то запустить бота можно там. Покажу на примере ISPManager принцип:
1. Переходим во вкладку Shell-клиент:
2. Вводим следующую команду:
Путь и версию PHP меняем под себя.
Чтобы быстро вставить команду в консоли — нажмите ПКМ -> Paste from browser:
- 5id15
- 13.08.2022
- 3 472
- 0
- 8
Источник: kotoff.net
Как создать бота в сервере дискорд
Сегодня мы сделаем такой функционал:
Выдача роли при заходе на сервер, выдача роли по реакции
Бан, очистка сообщений
Поработаем с базой данных
Затронем API.
Так-же прикреплю полностью рабочий код в конце данной статьи.
База
Думаю как установить python вы разберетесь.
Прописываем в консольку:
python3 -m pip install -U discord.py
Импортируем все нужные нам для данного гайда модули, а так-же задаем нужные нам интенты.
Но где мне взять токен и включить интент?
Заходим сюда > discord.com/developers/applications/
Тыкаем по стрелочкам.
Дальше нам нужно немного пролистать вниз и нажать воть сюда
Чтобы узнать токен жмем сюда
И сразу вставляем его вместо ваштокен.
С начальной подготовкой мы справились и переходим к следующему шагу.
Next Level – Код бота:
Начнём мы с самого простого – команды для модерации сервера.
Сделаем очистку сообщений по заданному количеству, бан, а так-же роли по клику на реакцию.
Лично я буду добавлять ко всем данным командам логирование в определенный канал, однако это совсем не обязательно.
Начнем с очистки сообщений.
А теперь разберемся и с баном.
Сделаем так-же выдачу роли при входе на сервер.
А так-же сделаем выдачу ролей по реакциям ведь это так круто!
Ну и бан сделаем.
А так-же чет захотелось сделать отправку эмбедов с discord.club (дабы отправлять эмбеды не залезая в код)
Теперь когда вы пропишите “!embed < json embed >” у вас отправится красивенький эмбед.
А теперь немножечко поработаем с БД.
База данных:
Создадим рядом с ботом файлик bd.json.
Теперь добавим туда следующее:
Переходим обратно к нашему боту и пишем функцию, которую будем использовать.
def AddBan(): # функция аддбан «»»Добавит +1 к банам, которые хранятся в bd.json»»» with open(‘bd.json’, ‘r’) as f: json_data = json.load(f) json_data[‘bans’] += 1 # добавляем 1 к числу with open(‘bd.json’, ‘w’) as f: f.write(json.dumps(json_data)) # записываем данные
А теперь просто добавим в конце команды ban эту строку ( после await logs.send ):
AddBan()
Ну и на закуску мы сделаем статистику.
С БД я вроде закончил.
Ну и закончим нашу статью работой с API.
Api: