Как поменять префикс бота в дискорде
Перейти к содержимому

Как поменять префикс бота в дискорде

  • автор:

Смена префикса команды 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 (символ)

Данил АнЗнаток (331) 3 года назад

А как тогда менять префикс у JuniperBot’a?

Данил Ан, в самом сайте этого бота

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Хочу сделать смену префикса бота командой, но получаю ошибку, как исправить?

Ignoring exception in on_guild_remove
Traceback (most recent call last):
File «C:\Users\kruasan\AppData\Local\Programs\Python\Python38\lib\site-packages\discord\client.py», line 343, in _run_event
await coro(*args, **kwargs)
File «bot.py», line 31, in on_guild_remove
prefixes = json.load(f)
File «C:\Users\kruasan\AppData\Local\Programs\Python\Python38\lib\json\__init__.py», line 293, in load
return loads(fp.read(),
File «C:\Users\kruasan\AppData\Local\Programs\Python\Python38\lib\json\__init__.py», line 357, in loads
return _default_decoder.decode(s)
File «C:\Users\kruasan\AppData\Local\Programs\Python\Python38\lib\json\decoder.py», line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File «C:\Users\kruasan\AppData\Local\Programs\Python\Python38\lib\json\decoder.py», line 355, in raw_decode
raise JSONDecodeError(«Expecting value», s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Буду благодарен за помощь.

  • Вопрос задан более двух лет назад
  • 146 просмотров

Вопросы с меткой [discord]

Для использования с Discord API, который предоставляет интерфейс, позволяющий программировать ботов для служб обмена сообщениями Discord.

34 вопроса
Новые Текущие Конкурсные Неотвеченные Ещё

  • Конкурсные 0
  • Неотвеченные
  • Цитируемые
  • Рейтинг
  • Неотвеченные (мои метки)

4k показов

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
102 показа

Список юзеров на сервере

Всем привет! Решил сделать генератор таблицы юзеров на сервере. Начал с обычного получения ников юзеров. @client.command() async def members(ctx): guild = ctx.guild for member in guild.member.

задан 3 дек 2020 в 17:51
608 показов

Как проверить указанные аргументы discord py?

Я перерыл весь интернет, но не нашел нужного мне ответа. Простую проверку аргументов я знаю как делать. Но, как сделать проверку аргументов, когда их очень много и они разного типа, или указан ли id .

задан 1 мая 2022 в 15:38
8k показов

[discord.py]Удаление сообщение после выполнениыя команды

Поменялась версия и теперь не понимаю как удалить сообщение после выполнения команды client.delete_message() Раньше было так, но теперь поменялась команда. await ctx.message.delete(ctx) Вроде так, .

задан 11 дек 2019 в 19:40
2k показов

Создать кнопку на disnake

меня очень давно волнует вопрос как сделать кнопку на disnake, я слышал что это disnake.ui. Всё перечитал, не понял ничего. Буду благодарен.

задан 1 янв 2023 в 14:30
3k показов

авто выдача роли и приветствие Discord.py

Написал код. должен писать приветствие и выдавать роль. так же сделал пометки мне в батнике пишет действия которые написаны в принте. и при выполнение действия выдачи роли должно, мне не роль не .

задан 6 мая 2021 в 11:07
3k показов

Как считать время проведенное в голосовом канале? | discord.py

У меня есть код, который реагирует на вход в голосовой, и выход из него. При входе пишется «1», при выходе «0». Как мне его изменить, чтобы он еще и считал время проведенное в .

задан 21 дек 2020 в 11:50
7k показов

Логи дискорд боту

Делаю бота, столкнулся с проблемой, нужно делать логи, искал в документации, на других сайтах, единственное что я находил, так это код который выдаёт ошибки и прочее. Требуется вывести аудит в .

задан 30 янв 2021 в 12:30
6k показов

Смена префикса команды discord.py

Как я могу поменять префикс бота через команду в discord.py? Пробовал использовать этот код, но говорит что не найдена команда setprefix, понимаю что она идёт после bot.run но в коде так и было. Если .

задан 13 мая 2020 в 8:36

python перемещение по mp3 с помощью BytesIO.seek

Загружаю в io.BytesIO mp3-файл, и из этого io.BytesIO потом его проигрываю Если его надо проиграть не с начала, а с определенного момента времени, я так понимаю, надо воспользоваться методом seek .

задан 18 ноя 2020 в 16:18
567 показов

Как установить лимит для использования команды одним пользователем discord.py

Я хочу чтобы бот создавал приватный текстовый канал (канал видит только его создатель). Я уже сделал чтобы бот при прописывании команды создавал приватный канал, но эту команду можно использовать .

задан 8 ноя 2020 в 10:27
6k показов

discord.py и youtube_dl воспроизведение аудио без скачки

как можно воспроизвести аудио в боте при помощи библиотеки youtube_dl, но без установки самого аудио в директорию бота (из-за этой установки невозможно запустить стримы с музыкой по типу lo-fi) и если .

задан 6 дек 2020 в 13:33
155 показов

Discord py | Как выводить логи удаления и редактирования сообщений в определенный канал

Discord py | Как выводить логи удаления и редактирования сообщений в определенный канал Чтобы пинговало человека старое сообщение и его нынешнюю версию и канал в котором это произошло! Срочно

задан 12 янв 2023 в 15:34
67 показов

Не запускается дискорд бот

from discord.ext import commands from discord import Permissions import asyncio import os import discord, random, aiohttp, asyncio from threading import Thread import requests intents = discord.

задан 5 ноя 2022 в 8:49
8k показов

Как получить список все участников discord сервера (discord.py)

Как можно записать всех участников сервера в list? я пробовал вот так: @bot.command() async def members(ctx): for guild in bot.guilds: for member in guild.members: await ctx.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *