es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo hago que mi Bot de Discord envíe un mensaje privado a otro usuario utilizando su ID de usuario? Intenté lo siguiente pero no funcionó.

import discord
import os
import pytz
import datetime
import asyncio

class MyClient(discord.Client):

async def on_ready(self):
    print('¡Conectado como {0}!'.format(self.user))

async def dm(self, message):
    print('Mensaje de {0.author}: {0.content}'.format(message))
    if message.author.bot:
        return
    user = await self.get_user(UserID)
    await self.send(user, 'Hola')

client = MyClient()
client.run(‘BOTID’)

Corrí mi bot usando esto y cuando lo probé enviándole un mensaje al bot, no respondió. ¿El usuario al que estoy enviando debe estar en el mismo servidor? ¿Puedo enviarlo a un usuario que no está en el mismo servidor?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basándose en el código proporcionado, parece que la función async def dm(ctx): no está siendo llamada cuando se recibe un mensaje. No está claro de dónde proviene el objeto message en la línea print('Mensaje de {0.autor}: {0.contenido}'.format(message)). También no está claro dónde se define la variable UserID ni qué valor contiene.

    Para responder a la pregunta, siempre que tengas el ID del usuario, puedes enviarle un mensaje directo aunque no estén en el mismo servidor que el bot. Sin embargo, debes asegurarte de que el bot tenga los permisos necesarios para enviar mensajes directos a los usuarios. Además, el código necesita ser modificado para manejar correctamente los mensajes entrantes y llamar a la función dm().

Comments are closed.