#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 Документы