Discord bots — как искать, пользоваться
Если вы начали искать ботов для дискорда, значит, вы уже уверенный пользователь этого программного обеспечения и пытаетесь разобраться, какие боты для Дискорда вам необходимы. Многие роботы упрощают или облегчают активность в каналах, остается только подобрать нужного помощника из большого списка предлагаемых нам на просторах интернета.
Поиски и выбор бота
Для начала нужно разобраться и понять, что такое бот, для чего они нужны. Бот это робот, программа, помощник, выполняющий работу, действие, которое нам лень осуществлять, говоря простым и понятным языком. В Discord помощники занимаются проигрыванием музыки, сбором новостей, фильтрацией и удалением спама, который может попадать на каналы. Они устанавливаются со стороннего сайта, где можно найти их на любой «цвет и вкус». Достаточно набрать в поиске «Discord bots» и система вам предложит наиболее популярные варианты.
Порядок установки и работы с ботом
- Для установки помощника, установите программу дискорд, в которую потом его внедрите;
- Найдите в интернете наиболее популярные и нужные вам программы-исполнители (боты);
- Это могут быть: музыкальные, новостные, удаляющие спам или просто поддерживающие беседу, прочитайте его возможности;
- На сайте с ботами можно почитать его предназначение, функционал, список команд, обязательно обратите внимание на префикс бота и его команды;
- Каждый исполнитель наделен отдельным префиксом и списком команд, после установки можете их у него запросить;
- Найдя необходимый, нажимайте на кнопку добавить на сервер (Add to server), напоминаю, изучите команды, особенно префикс бота;
- Нажав на кнопку, вам будет предложено выбрать сервер, куда необходимо его добавить;
- Выбирайте сервер, куда вы хотите встроить бота;
- После вам подскажет дискорд, что робот уже на сервере;
- Заходите на сервер, и вы увидите, что он уже там.
Работа с ботом
- Попытайтесь задать ему какое-либо действие, не забудьте написать префикс бота перед введением команды;
- Чтобы узнать возможности помощника, как правило, есть команда Help, впереди которой необходимо вписать префикс бота;
- Если вы наберете префикс и хелп, придет личное сообщение от него со списком возможных действий;
- Изучив список, поймете, по какому принципу работает бот;
- Вернитесь на свой сервер, куда устанавливали робота и попробуйте задать ему порядок его действий через изученные команды;
- Также боту можно задать роль, щелкнув на нем правой кнопки мыши и выбрав в появившемся меню, пункт «задать роль»;
- Робот очень удобная и приятная опция, которая может делать большой объем работы за вас.
Заключение
Разнообразие помощников настолько велико, что можно выбирать очень долго. Рекомендую сразу определиться, для какой цели вам он нужен, и какую роль он будет выполнять на вашем сервере. Только после этого следует начинать его поиски, вычитывая функционал, устанавливать его на свой сервер.
Вопрос насчет префикса discord.js?
Приветствую, я хочу сделать так, чтобы мой бот реагировал на различные префиксы. Допустим сейчас у меня стоит префикс «Бот«, но я хочу чтобы он реагировал еще и на префиксы: «ботик», «бот,».
То что я писал в конфиге бота, а конкретно:
«prefix»: [ «Бот», «ботик», «ботяра», «бот,» ] — это не помогло, бот перестал реагировать на изначальный префикс «Бот».
Вот то, для чего я пытаюсь влепить новые префиксы:
bot.on(«message», (message) => if (message.content.startsWith(prefix)) message.reply(botChoice[Math.floor(Math.random() * botChoice.length)]);
>
Надеюсь кто-нибудь знает ответ на мой вопрос 🙂
- Вопрос задан более трёх лет назад
- 5070 просмотров
Комментировать
Решения вопроса 1
Stockholm Syndrome @StockholmSyndrome
const prefixes = [ "Бот", "ботик", "ботяра", "бот," ]; bot.on("message", (message) => < if (prefixes.some((prefix) =>message.content.startsWith(prefix))) < message.reply(botChoice[Math.floor(Math.random() * botChoice.length)]); >>);
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- Node.js
- +1 ещё
Как собрать проект чтобы в конце бандла были лицензии всех пакетов?
- 2 подписчика
- 17 часов назад
- 106 просмотров
Смена префикса команды discord.py
Как я могу поменять префикс бота через команду в discord.py? Пробовал использовать этот код, но говорит что не найдена команда setprefix, понимаю что она идёт после bot.run но в коде так и было. Если ставлю её перед bot.run и меняю @commands.command на @bot.command то выдаёт ошибку str object has no attribute guild. Также не понимаю зачем в переменной bot вторым аргументом пишутся три точки. Помогите пожалуйста.
import discord from discord.ext import commands custom_prefixes = <> default_prefixes = ['.'] async def determine_prefix(bot, message): guild = message.guild if guild: return custom_prefixes.get(guild.id, default_prefixes) else: return default_prefixes bot = commands.Bot(command_prefix = determine_prefix, . ) bot.run(‘токен’) @commands.command() @commands.guild_only() async def setprefix(self, ctx, *, prefixes=""): custom_prefixes[ctx.guild.id] = prefixes.split() or default_prefixes await ctx.send("Prefixes set!")
Отслеживать
задан 13 мая 2020 в 8:36
miha barinov miha barinov
31 1 1 серебряный знак 7 7 бронзовых знаков
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Почему вы не сделаете через БД, это удобнее и в будущем если ваш бот будет на многих серверах то список не справиться с таким объемом информации
И прочитайте документацию пожалуйста
Сначала когда бот заходит на сервер в БД заноситься дефолтний префикс
@commands.Cog.listener() async def on_guild_join(self, guild): cursor.execute(f'INSERT INTO public."prefixDB" (guild_id, prefix) VALUES (, \'дефолтний префикс\');') conn.commit()
Также когда бот выходит с сервера мы удаляем сервер с БД
@commands.Cog.listener() async def on_guild_remove(self, guild): cursor.execute(f'DELETE FROM public."prefixDB" WHERE guild_id = ;') conn.commit()
Здесь вы заносите перфикс сервера в БД.
@commands.command() @commands.check(is_owner_guild) async def prefix(self, ctx, prefix): guildid = ctx.guild.id cursor.execute(f'UPDATE public."prefixDB" SET prefix=\'\' WHERE guild_id = \'\';')# здесь вы обновляете префикс сервера conn.commit() emb = discord.Embed(title='Выполнено успешно!', description=f'Префикс сервера изменений на "** **"', colour= discord.Color.green(), timestamp= ctx.message.created_at) emb.set_footer(text=ctx.message.author) await ctx.send(embed= emb) @prefix.error async def prefix_error(self, ctx, error): if isinstance(error, commands.CheckFailure): emb = discord.Embed(timestamp= ctx.message.created_at, title='Ошибка. ', colour=discord.Color.red(), description='Эту команду может использовать только владелец сервера') emb.set_footer(text= ctx.message.author) await ctx.channel.purge(limit=1) await ctx.send(embed=emb)
После просто через функцию забираете его:
def get_prefix(bot, message): guildid = message.guild.id #айди сервера где была визвана команда prefix cursor.execute(f'SELECT prefix FROM public."prefixDB" WHERE guild_id = \'\';') prefix = cursor.fetchone() conn.commit() return prefix bot =commands.Bot(command_prefix = get_prefix, help_command=None)
Создаём Discord-бота на Python
Сегодня мы напишем Discord-бота с помощью Python и discord.py. А также посмотрим на примеры ботов.
Всем привет, сегодня мы напишем Discord-бота на Python и discord.py + бонусом посмотрим на примеры ботов. Приступим ?
Перед работой
Перед тем, как начать, вам нужны:
- Python 3;
- discord.py;
- Discord-аккаунт и свой сервер.
Для установки discord.py воспользуйтесь пакетным менеджером:
pip3 install discord.py
Создаём нашего бота
Перейдите на Developer Portal и нажмите на New application.
Вы создали своё приложение, на странице приложение перейдите в Bot >> Add Bot и создайте своего Discord-бота.
Сохраните токен бота! Дальше он нам понадобится!
Если всё прошло успешно, поздравляю, половина дела сделана ?
Добавление бота на сервер
Теперь можно добавить бота на сервер.
Перейдите в OAuth2 >> URL Generator, в Scopes выбираем Bot и ниже — права бота, копируем сгенерированный URL. Вставляем в браузер, и добавляем на наш сервер.
Эхо-бот
Напишем традиционного эхо-бота, и разберём каждую строчку кода.
import discord from discord.ext import commands config = < 'token': 'your-token', 'prefix': 'prefix', >bot = commands.Bot(command_prefix=config['prefix']) @bot.event async def on_message(ctx): if ctx.author != bot.user: await ctx.reply(ctx.content) bot.run(config['token'])
import discord from discord.ext import commands
Нужные нам импорты.
config =
Вспомогательный словарь config в котором храним токен и префикс команд (далее расскажу зачем нужен префикс команд).
bot = commands.Bot(command_prefix=config['prefix'])
Создаём нашего бота, в аргументе передаём префикс.
@bot.event
Декоратор, предназначенный для обработки событий, подробнее здесь.
async def on_message(ctx):
Создаём асинхронную функцию, с параметром ctx, представляет из себя сообщение.
if ctx.author != bot.user:
Проверка, не является ли автор сообщения нашим Discord-ботом. Дело в том, что если бот отправит сообщение, это будет новым событием, и тогда получается цикл.
await ctx.reply(ctx.content)
Отвечаем на сообщение (ctx.reply), в аргументы передаём сообщение (ctx.content).
bot.run(config['token'])
Запускаем нашего бота, в аргументы передаём токен бота.
Надеюсь вы разобрались с кодом, и мы можем переходить далее.
Обработка команд
Перед тем, как обрабатывать команды, нам пригодится наш префикс.
import random import discord from discord.ext import commands config = < 'token': 'your-token', 'prefix': '$', >bot = commands.Bot(command_prefix=config['prefix']) @bot.command() async def rand(ctx, *arg): await ctx.reply(random.randint(0, 100)) bot.run(config['token'])
@bot.command()
Декоратор обработки команд
async def rand(ctx, *arg):
Асинхронная функция rand
await ctx.reply(random.randint(0, 100))
Отвечаем на сообщение, в аргументы передаём случайное число от 0 до 100
Бонус
import random import discord from discord.ext import commands config = < 'token': 'your-token', 'prefix': '$', >bot = commands.Bot(command_prefix=config['prefix']) @bot.command() @commands.has_role("Хозяин") async def rand(ctx, *arg): await ctx.reply(random.randint(0, 100)) bot.run(config['token'])
import discord from discord.ext import commands config = < 'token': 'your-token', 'prefix': '$', >bot = commands.Bot(command_prefix=config['prefix']) @bot.command() async def kick(ctx, user : discord.User(), *arg, reason='Причина не указана'): await bot.kick(user) await ctx.send('Пользователь был изгнан по причине ""') bot.run(config['token'])