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')

解决方法

如果您要发送私人消息直接消息),则可以使用go get gorm.io/gorm import ( "gorm.io/gorm" "gorm.io/driver/sqlite" //or whatever driver ) ,而不能使用类似member.create_dmon_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") 时会检查prefix + dmrand_num并将结果发送给用户。