猿问

Discord.py 自动将不和谐的结果作为直接消息发送

我想知道如何让这个脚本在特定用户的直接消息上发送结果(获胜或失败),这是一个简单的示例:


    from discord.ext import commands

    import discord

    import os

    from random import *

    

    client = commands.Bot(command_prefix = '-')

    

    @client.event

    async def on_ready():

      print('Bot Is Ready')

    

    @client.command() #The command in order to execute the script first

    async def dm(ctx):

        

        rand_num = (randint(1, 3))

        win_num = 1

        

        if rand_num == win_num:

            print("number was:", rand_num)

            print("won")

            @client.event

            async def on_win():

                dmessage.send.user("You won!") #Send the won result message via direct message on discord automatically

    

        elif rand_num != win_num:

            print("number was:", rand_num)

            print("lost")

            @client.event

            async def on_lost():

                dmessage.send.user("You lost") #Send the lost result message via direct message on discord automatically

    

    client.run('TOKEN')


慕神8447489
浏览 104回答 1
1回答

红糖糍粑

如果您想发送私人消息(直接消息),您可以使用member.create_dm但不能使用类似on_win或 的东西on_lost。@client.command()async def dm(ctx):    rand_num = (randint(1, 3))    win_num = 1    pm_channel = await ctx.author.create_dm()    if win_num == rand_num:        await pm_channel.send("You won!")    else:        await pm_channel.send("You lost")所以在这段代码中,member 当member 写入时prefix + dm,它会检查rand_num然后win_num将结果发送给用户。
随时随地看视频慕课网APP

相关分类

Python
我要回答