Getting a discord bot to mention other users

后端 未结 2 1006
我寻月下人不归
我寻月下人不归 2021-01-25 07:02

I am working on a bot to do some simple commands for my discord server and I haven\'t been able to figure out how to get the bot to mention people who aren\'t the author.

<
相关标签:
2条回答
  • 2021-01-25 07:24

    The specific error you are getting is caused by not awaiting a coroutine. client.get_user_info is a coroutine and must use await.

    If you want "+prank" to work by mentioning by username, you can find a member object by using server.get_member_named.

    Example code provided below. This will check the server the command was called from for the specified username and return the member object.

    if message.content.startswith("+prank"):
        username = message.content[7:]
        member_object = message.server.get_member_named(username)
        await client.send_message(message.channel, member_object.mention + 'mention')
    
    0 讨论(0)
  • 2021-01-25 07:35

    It looks like you're trying to implement commands without actually using commands. Don't put everything in the on_message event. If you're not sure how to use the discord.ext.commands module, you can look at the documentation for the experimental rewrite branch.

    import discord
    from discord.ext.commands import Bot
    
    bot = Bot(command_prefix='+')
    
    @bot.command()
    async def prank(target: discord.Member):
        await bot.say(target.mention + ' mention')
    
    bot.run('token')
    

    You would use this command with +prank Johnny. The bot would then respond in the same channel @Johnny mention

    0 讨论(0)
提交回复
热议问题