Написал (скопировал) код:
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'
Python
Что делать? Discord.py
И что спрашивается делать?
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
bot_handler.kick_threshold = 8
Lazma 3
Спасибо, заработал
Учить Python
Меньше копировать, больше делать самостоятельно. А если копируешь, то только то, что понимаешь.
Конкретно здесь - идти и читать документацию по библиотеке, которую ты тут используешь (для антиспама, не дискорд пай)
Конкретно здесь - идти и читать документацию по библиотеке, которую ты тут используешь (для антиспама, не дискорд пай)
Попробуйте это
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')
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')
Похожие вопросы
- Discord.py ошибка в коде
- Python discord.py + mcstatus
- Как сделать анти спам функцию в discord.py
- Ошибка в коде python discord.py
- Подскажите код на python discord.py что бы бот дискорд транслировал видео из сыллки Ютуб и передавал в голосовой канал
- Как переписать бота с py на js?
- Почему оно не видит файлы .py?
- Как сделать логи в Боте, и чтобы они отправлялись в определённый канал? Discord Bot
- Напишите код на Python для Discord.
- Питон сложный математический язык или очень удобный? ... хотя у меня есть блокнот .py стоит изучить язык?