Не работает кик в боте discord
учусь делать бота для дискорда. Хотел реализовать функцию кика но при команде !kickничего не происходит, даже никаких ошибок не появляется. Код бота прилагаю.
import random
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)
bot = commands.Bot(command_prefix="!", intents=discord.Intents.all())
@client.event
async def on_ready():
print(f'We have logged in as {client.user}')
await client.change_presence(activity=discord.Activity(name='GTA V', type=1))
@client.event
async def on_member_join(member):
channel = client.get_channel(768743908045488161)
await channel.send(f'@everyone {member.mention} проходи не задерживайся!')
@client.event
async def on_member_remove(member):
channel = client.get_channel(768743908045488161)
await channel.send(f'@everyone {member.mention} покинул нас...')
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('!ДаНет'):
a = random.randint(1, 2)
if a == 1:
await message.channel.send("Да!")
else:
await message.channel.send("Нет!")
@bot.command()
async def kick(ctx, member: discord.Member, reason):
await ctx.send("Изгоняем участника {0} по причине: {1}".format(member, reason))
await member.kick(reason=f'{ctx.author} Выгнал {member}')
client.run('token')
Ответы (1 шт):
Автор решения: 5iq чел
→ Ссылка
возможно проблема в наличии разрешения у бота, потому что у меня этот код работает В коде разрешения можно прописать так:
discord.Intents.all()
стоит проверить, есть ли эти разрешения в кабинете бота на discord/developers и посмотреть на всякий права на сервере
также стоит немного изменить команду:
@bot.command()
async def kick(ctx, member: discord.Member, reason = None):
if reason:
await ctx.send("Изгоняем участника {0} по причине: {1}".format(member, reason))
await member.kick(reason=f'{ctx.author} Выгнал {member}')
else:
await ctx.send("Изгоняем участника {0}".format(member))
await member.kick()