Задать вопрос
@niklazh
да.

Как сделать чтобы одна команда моего бота дискорд работала только в одном канале, а в других нет Discord — Python?

как сделать чтобы команда работала только в одном канале для входа и больше нигде?
сразу говорю что каналов много и делать исключение для каждого долго, я подозреваю что надо как-то сделать перебор может быть по имени или скорее всего по айди канала (бот не для всех серверов, а только для моего, поэтому можно делать через айди)
вот команда:
@client.command()
async def reg (ctx, *, nick):
    await ctx.message.delete()
    member = ctx.message.author
    role = discord.utils.get(ctx.message.guild.roles, id = "my_id")
    old_role = discord.utils.get(member.guild.roles, id = "my_id")
    await member.add_roles(role)
    await member.edit(nick= nick)
    await member.remove_roles(old_role)
  • Вопрос задан
  • 544 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
commands.check:

ALLOWED_CHANNEL = 2338229588067772743

def allowed_channel_check():
    def predicate(ctx):
        return ctx.channel.id == ALLOWED_CHANNEL
    return commands.check(predicate)

@client.command()
@allowed_channel_check()
async def reg (ctx, *, nick):
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
скорее всего по айди канала

Да. Читай доки на параметр ctx, там есть сведения о канале.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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