Смена префикса команды 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)
Как изменить префикс команды ботов дискорда?
Как изменить префикс команды [!] на какой-то либо другой у ботов Rythm и MEE6 ?
Голосование за лучший ответ
у mee6 нельзя (если очень нужно то либо probot либо juniperbot) у rythm! prefix (символ)
Данил АнЗнаток (297) 3 года назад
А как тогда менять префикс у JuniperBot’a?
Данил Ан, в самом сайте этого бота
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Вопрос насчет префикса discord.js?
Приветствую, я хочу сделать так, чтобы мой бот реагировал на различные префиксы. Допустим сейчас у меня стоит префикс «Бот«, но я хочу чтобы он реагировал еще и на префиксы: «ботик», «бот,».
То что я писал в конфиге бота, а конкретно:
«prefix»: [ «Бот», «ботик», «ботяра», «бот,» ] — это не помогло, бот перестал реагировать на изначальный префикс «Бот».
Вот то, для чего я пытаюсь влепить новые префиксы:
bot.on(«message», (message) => if (message.content.startsWith(prefix)) message.reply(botChoice[Math.floor(Math.random() * botChoice.length)]);
>
Надеюсь кто-нибудь знает ответ на мой вопрос 🙂
- Вопрос задан более трёх лет назад
- 5061 просмотр
Комментировать
Решения вопроса 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 ещё
Почему не удается подгрузить картинки на страницу через Node.js (и Express)?
- 1 подписчик
- 5 часов назад
- 14 просмотров
Вопросы с меткой [discord]
Для использования с Discord API, который предоставляет интерфейс, позволяющий программировать ботов для служб обмена сообщениями Discord.
34 вопроса
Конкурсные
Неотвеченные
- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Неотвеченные (мои метки)
3k показов
discord.py отправка сообщения без ввода команды в канале
у меня есть код: import discord from discord.ext import commands Bot = commands.Bot(command_prefix=»») @Bot.command(pass_context=True) async def go_say(ctx): say_at_me = input(«.
задан 15 апр 2021 в 16:38
Список юзеров на сервере
Всем привет! Решил сделать генератор таблицы юзеров на сервере. Начал с обычного получения ников юзеров. @client.command() async def members(ctx): guild = ctx.guild for member in guild.member.
задан 3 дек 2020 в 17:51
580 показов
Как проверить указанные аргументы discord py?
Я перерыл весь интернет, но не нашел нужного мне ответа. Простую проверку аргументов я знаю как делать. Но, как сделать проверку аргументов, когда их очень много и они разного типа, или указан ли id .
задан 1 мая 2022 в 15:38
8k показов
[discord.py]Удаление сообщение после выполнениыя команды
Поменялась версия и теперь не понимаю как удалить сообщение после выполнения команды client.delete_message() Раньше было так, но теперь поменялась команда. await ctx.message.delete(ctx) Вроде так, .
задан 11 дек 2019 в 19:40
1k показов
Создать кнопку на disnake
меня очень давно волнует вопрос как сделать кнопку на disnake, я слышал что это disnake.ui. Всё перечитал, не понял ничего. Буду благодарен.
задан 1 янв 2023 в 14:30
3k показов
авто выдача роли и приветствие Discord.py
Написал код. должен писать приветствие и выдавать роль. так же сделал пометки мне в батнике пишет действия которые написаны в принте. и при выполнение действия выдачи роли должно, мне не роль не .
задан 6 мая 2021 в 11:07
680 показов
discord.py Копирование ID всех участников сервера
Я делал функцию для своего бота копирующую ID всех участников сервера, однако копирует лишь один ID. В чем проблема? По циклу же вроде всё сделано правильно. Вот код: @client.command(aliases=[‘id_copy’.
задан 5 янв 2022 в 7:07
3k показов
Как считать время проведенное в голосовом канале? | discord.py
У меня есть код, который реагирует на вход в голосовой, и выход из него. При входе пишется «1», при выходе «0». Как мне его изменить, чтобы он еще и считал время проведенное в .
задан 21 дек 2020 в 11:50
6k показов
Смена префикса команды discord.py
Как я могу поменять префикс бота через команду в discord.py? Пробовал использовать этот код, но говорит что не найдена команда setprefix, понимаю что она идёт после bot.run но в коде так и было. Если .
задан 13 мая 2020 в 8:36
6k показов
discord.py и youtube_dl воспроизведение аудио без скачки
как можно воспроизвести аудио в боте при помощи библиотеки youtube_dl, но без установки самого аудио в директорию бота (из-за этой установки невозможно запустить стримы с музыкой по типу lo-fi) и если .
задан 6 дек 2020 в 13:33
7k показов
Логи дискорд боту
Делаю бота, столкнулся с проблемой, нужно делать логи, искал в документации, на других сайтах, единственное что я находил, так это код который выдаёт ошибки и прочее. Требуется вывести аудит в .
задан 30 янв 2021 в 12:30
149 показов
python перемещение по mp3 с помощью BytesIO.seek
Загружаю в io.BytesIO mp3-файл, и из этого io.BytesIO потом его проигрываю Если его надо проиграть не с начала, а с определенного момента времени, я так понимаю, надо воспользоваться методом seek .
задан 18 ноя 2020 в 16:18
555 показов
Как установить лимит для использования команды одним пользователем discord.py
Я хочу чтобы бот создавал приватный текстовый канал (канал видит только его создатель). Я уже сделал чтобы бот при прописывании команды создавал приватный канал, но эту команду можно использовать .
задан 8 ноя 2020 в 10:27
215 показов
Помогите с записью JSON файла
Я занимаюсь разработкой бота на discord.js, я пытаюсь дополнить файл json, но у меня не выходит Мой код: text = <[message.author.id]:<"text":[args.slice(1).join(' ');]>> fs.appendFile(.
задан 26 сен 2020 в 23:08
2k показов
Приложение не отвечает «discord.py» py-cord
Сам бот чистит сообщения в канале без проблем, но одновременно пишет «Приложение не отвечает» Ошибок никаких не вылазит. @bot.slash_command(name=’clear’, description=’Очистить сообщения в .