본문 바로가기
파이썬

파이썬 discord.py가 자동으로 결과를 직접 메시지로 전송

by º기록 2020. 9. 14.
반응형

이 스크립트가 특정 사용자의 쪽지에 결과 (승리 또는 패배)를 보내는 방법을 알고 싶습니다. 여기에 대한 간단한 예가 있습니다.

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

 

해결 방법

 

비공개 메시지 ( 다이렉트 메시지 )를 보내려면 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는 prefix + dm 을 쓸 때 rand_num win_num 을 확인한 다음 결과를 사용자.

 

참조 페이지 https://stackoverflow.com/questions/63756708

 

 

반응형

댓글