Python

Что делать? Discord.py

И что спрашивается делать?
 Написал (скопировал) код: 

bot.handler = AntiSpamHandler(bot, warn_threshold=5, kick_threshold=8, message_interval=1000, guild_warn_message="Stop spamming! wait 15 and then you can send a message without getting kicked.")

А тут меня питон поприветствовал:

TypeError: __init__() got an unexpected keyword argument 'kick_threshold'
Lazma 3
Lazma 3
534
bot_handler = AntiSpamHandler(bot, warn_threshold=5, message_interval=1000, guild_warn_message="Stop spamming! wait 15 and then you can send a message without getting kicked.")
bot_handler.kick_threshold = 8
ЕБ
Ерлан Бакиров
21 517
Лучший ответ
Lazma 3 Спасибо, заработал
Учить Python
Serik Djubanisov
Serik Djubanisov
78 209
Меньше копировать, больше делать самостоятельно. А если копируешь, то только то, что понимаешь.

Конкретно здесь - идти и читать документацию по библиотеке, которую ты тут используешь (для антиспама, не дискорд пай)
АР
Андрей Рыжов
34 940
Попробуйте это

import discord

import asyncio



client = discord.Client()



# создаем словарь для отслеживания сообщений

message_dict = {}



@client.event

async def on_message(message):

# проверяем, что сообщение не от бота

if message.author.bot:

return



# проверяем, что сообщение отправлено в канал

if isinstance(message.channel, discord.TextChannel):



# добавляем сообщение в словарь

if message.author.id not in message_dict:

message_dict[message.author.id] = [message.created_at]

else:

message_dict[message.author.id].append(message.created_at)



# проверяем, были ли отправлены 10 сообщений в течение 1 секунды

if len(message_dict[message.author.id]) >= 10:

if (message_dict[message.author.id][-1] - message_dict[message.author.id][-10]).total_seconds() <= 1:

# отправляем пользователя в мут

await message.author.add_roles(discord.utils.get(message.guild.roles, name="Muted"))

await message.channel.send(f"{message.author.mention} был отправлен в мут за спам.")

# очищаем словарь для данного пользователя

message_dict[message.author.id] = []



await client.process_commands(message)



@client.event

async def on_message_edit(before, after):

# проверяем, что сообщение не от бота

if after.author.bot:

return



# проверяем, что сообщение отправлено в канал

if isinstance(after.channel, discord.TextChannel):



# проверяем, что сообщение было изменено

if before.content != after.content:



# удаляем старое сообщение из словаря

if after.author.id in message_dict:

message_dict[after.author.id].remove(before.created_at)



# добавляем новое сообщение в словарь

if after.author.id not in message_dict:

message_dict[after.author.id] = [after.created_at]

else:

message_dict[after.author.id].append(after.created_at)



# проверяем, были ли отправлены 10 сообщений в течение 1 секунды

if len(message_dict[after.author.id]) >= 10:

if (message_dict[after.author.id][-1] - message_dict[after.author.id][-10]).total_seconds() <= 1:

# отправляем пользователя в мут

await after.author.add_roles(discord.utils.get(after.guild.roles, name="Muted"))

await after.channel.send(f"{after.author.mention} был отправлен в мут за спам.")

# очищаем словарь для данного пользователя

message_dict[after.author.id] = []



await client.process_commands(after)



client.run('TOKEN')