Besoin d'aide pour un bot discord codé en Python
deristix Messages postés 64 Statut Membre -
Bonjour,
Je cherche a codé un bot Python qui doit surveiller un channel spécifique. Quand un utilisateur envoie "sd", le bot doit, 1 minutes après, le ping. Il doit faire ça pour tout les utilisateurs évidemment, et ne doit pas reset le timeur si "sd" est réécrit avant 1 minutes.
Fin bref, tout semble pas mal dans mon code, le bot a toute les perm qu'il faut, cependant, quand je le lance, il ne trouve aucun message.content et considère tout les messages comme vide, bien qu'il les détectes.
Cependant, il détecte le contenue des messages privés..
Enfin bref, voici le code :
import discord
import asyncio
import datetime
intents = discord.Intents.default()
intents.members = True
intents.messages = True
client = discord.Client(intents=intents)
timers = {}
@client.event
async def on_ready():
print(f'Logged in as {client.user}')
@client.event
async def on_message(message):
if message.channel.type != discord.ChannelType.text:
return
print(f"Received message from {message.author}")
print(f"Message content: {message.content}")
if message.content.strip().lower() == "sd":
print(f'Detected "sd" message from {message.author} at {datetime.datetime.now()}')
now = datetime.datetime.now()
last_sd_time = timers.get(message.author.id)
if last_sd_time is not None and (now - last_sd_time).total_seconds() < 1 * 60:
print(f'Ignoring "sd" message from {message.author} as it was sent less than 1 minute ago at {last_sd_time}')
return
timers[message.author.id] = now
print(f'Starting timer for {message.author}')
await asyncio.sleep(1 * 60)
await send_ping(message)
else:
print(f"Message not matching criteria: {message.content}")
async def send_ping(message):
user = message.author
print(f'Pinging {user} at {datetime.datetime.now()}')
await message.channel.send(f"{user.mention}, tu peux drop !")
client.run('token')
Log :
Received message from Hima
Message content:
Message not matching criteria:
J'espère que quelqu'un pourra m'aider, je ne sais pas du tout quoi faire..
- Freewifi secure code
- Code ascii - Guide
- Comment se connecter a freewifi secure - Forum WiFi
- Code puk bloqué - Guide
- Se connecter à FreeWifi_secure sans carte SIM - Forum WiFi
- Freewifi secure sur pc ✓ - Forum Freebox
1 réponse
Le problème pourrait être dû à la définition des intents dans votre code. Vous avez défini les intents par défaut et activé les intents de messages et de membres. Cependant, pour accéder au contenu des messages dans un canal de texte, vous devez également activer l'intent "messages". Voici comment définir correctement les intents :
intents = discord.Intents.default() intents.members = True intents.messages = True intents.guild_messages = True client = discord.Client(intents=intents)
Essayez de faire ces modifications et vérifiez si cela résout votre problème.