如何获取用户消息的频道ID?
How to get a Channel ID of a user message?
我正在编写一个 Discord Bot,我想知道如何从任何用户的消息中获取频道 ID。
其实我想做一个文本机器命令。当用户挂机或离线时,它会向用户留言。当他们回来并在服务器的任何频道中发送消息时,机器人会立即将消息发送到同一频道。
@client.command()
async def txt(ctx, receiver: discord.Member, *, message):
await ctx.message.delete()
def check(message: discord.Message):
return message.author == receiver
newembed = discord.Embed (title='On-Message Scheduled', description=f'Message will be delivered to the receiver as soon as he messages. \n Message: `{message}` \n to **{receiver}**')
channel = await ctx.message.author.create_dm()
x = await channel.send(embed=newembed)
msg = await client.wait_for('message', check = check)
await ctx.send(f'TEXT MACHINE \n **{ctx.message.author}:** `{message}`\n for {receiver.mention}')
await x.add_reaction('✅')
这在一定程度上确实有效。但问题是,如果我这样做,让我们说通道 1 上的 >txt @User#1234 this is a message
命令,以及通道 2 上的用户消息,机器人将消息发送到通道 1,但我希望机器人将消息发送到通道用户留言。
不胜感激,谢谢。
很简单,就是不使用ctx.send,而是使用msg.channel.send。所以从末尾开始的第二行将如下所示:
await msg.channel.send(f'TEXT MACHINE \n **{ctx.message.author}:** `{message}`\n for {receiver.mention}')
我正在编写一个 Discord Bot,我想知道如何从任何用户的消息中获取频道 ID。
其实我想做一个文本机器命令。当用户挂机或离线时,它会向用户留言。当他们回来并在服务器的任何频道中发送消息时,机器人会立即将消息发送到同一频道。
@client.command()
async def txt(ctx, receiver: discord.Member, *, message):
await ctx.message.delete()
def check(message: discord.Message):
return message.author == receiver
newembed = discord.Embed (title='On-Message Scheduled', description=f'Message will be delivered to the receiver as soon as he messages. \n Message: `{message}` \n to **{receiver}**')
channel = await ctx.message.author.create_dm()
x = await channel.send(embed=newembed)
msg = await client.wait_for('message', check = check)
await ctx.send(f'TEXT MACHINE \n **{ctx.message.author}:** `{message}`\n for {receiver.mention}')
await x.add_reaction('✅')
这在一定程度上确实有效。但问题是,如果我这样做,让我们说通道 1 上的 >txt @User#1234 this is a message
命令,以及通道 2 上的用户消息,机器人将消息发送到通道 1,但我希望机器人将消息发送到通道用户留言。
不胜感激,谢谢。
很简单,就是不使用ctx.send,而是使用msg.channel.send。所以从末尾开始的第二行将如下所示:
await msg.channel.send(f'TEXT MACHINE \n **{ctx.message.author}:** `{message}`\n for {receiver.mention}')