>source

Discord Bot을 만들려고했지만 봇이 서버에 메시지를 보내도록하는 데 어려움을 겪었습니다. 나는 서버에서 메시지를 수신하고 터미널에 인쇄하는이 코드를 작성했습니다. 누군가가 봇이 보낸 메시지를 반복하는 방법으로 대답 할 수 있다면 좋을 것입니다.


import discord
client = discord.Client()
token = 'My token'
# bot is ready
@client.event
async def on_ready():
    try:
        
        print(client.user.name)
        print(client.user.id)
        print('Discord.py Version: {}'.format(discord.__version__))
    
    except Exception as e:
        print(e)
@client.event
async def on_message(message):
    # print message content in terminal
    print(message.content)
client.run(token)

  • 답변 # 1

    이 코드는 누군가 텍스트 채널에 '생일 축하합니다'를 보낼 때마다 메시지를 보냅니다.

    @client.event
    async def on_message(message):
        if message.author == client.user:
                return
        if message.content.lower() == "happy birthday":
                await message.channel.send("happy Birthday!")
        # print message content in terminal
        print(message.content)
    
    

    이것을 예로 사용할 수 있습니다.

  • 답변 # 2

    await message.channel.send("Bot's message")
    
    

  • 답변 # 3

    먼저 채널을 선택한 다음 메시지를 보내야합니다.

    channel = client.get_channel(channel_id)
    await channel.send('hello')
    
    

    여기에 모든 채널을 가져 오는 코드가 있습니다.

    channel_list = []
    for server in Client.servers:
        for channel in server.channels:
            if channel.type == 'Text':
                channel_list.append(channel)
    print(channel_list)
    
    

  • 이전 python - '순서없이 인수를 구문 분석 할 수 없음'인수에 대한 오류를 해결하려면 어떻게해야합니까?
  • 다음 testing - 기류 테스트와 DebugExecutor를 사용하여 기류 작업 디버깅