Попытка заставить бота покинуть сервер с помощью команды

#python #discord.py

#python #discord.py

Вопрос:

Я пытаюсь заставить бота покинуть сервер с идентификатором, команда!оставить

Я получаю сообщение об ошибке 'Bot' object has no attribute 'get_server'

Вот мой скрипт:

 import discord
from discord.ext import commands

client = commands.Bot(command_prefix='!')

token = TOKEN HERE

@client.command()
async def leave(ctx, ID):
    toleave = client.get_server(ID)
    await client.leave_server(toleave)
    print("Left Server")

client.run(token)
  

Ответ №1:

Поскольку, discord.py 1.1, get_server был переименован в get_guild , и leave_server был перенесен в Guild.leave . Итак, ваш код будет выглядеть примерно так:

 toleave = client.get_guild(ID)
await toleave.leave()
  

Комментарии:

1. Спасибо, я пропустил первую ошибку, но теперь, 'NoneType' object has no attribute 'leave'

2. Проверьте свой идентификатор и убедитесь, что он действительно действителен.

3. буквально просто скопировал идентификатор с тестового сервера, на котором находится бот

Ответ №2:

Это должно сработать

 @commands.command()
  async def leave(self, ctx, *, message=None ):
    guild_id = message
    guild = await self.client.get_guild(int(guild_id))
    channel = guild.system_channel
    await channel.send("Leaving this server due to misuse!")
    await guild.leave()
  

Комментарии:

1. Пожалуйста, объясните свой код и почему он должен работать

2. @phoenixstudio это было создано для cog, но может быть сделано для одного скриптового бота, изменив @commands.command() на @client.command() . что касается того, почему это должно работать, просто прочитайте discord.py документацию, братан. Discord.py Документы