如何通过标记向多个用户发送消息。
@bot.command(pass_context=True)
async def ping(ctx, member: discord.Member):
await bot.send_message(member, "Pong...".format(ctx.message))
所以上面的代码在标记单个用户时可以完美运行,?ping @user1
但是当我们标记多个用户时如何使其工作?ping @user1 @user2
。
那么是否可以在频道中而不是在脚本中提供自定义消息。例如:当我们输入?ping @user1 @user2
bot 应该要求发送一条消息时,当我们添加一条消息时,它会将消息转发给标记的用户。
我们可以采用与在任何其他 Python 函数中相同的方式将可变数量的参数传递给命令。如果我们将消息放在首位,并要求将其用引号括起来,那么我们可以在一个命令中完成所有这些操作。
@bot.command(pass_context=True)
async def ping(ctx, message, *members: discord.Member):
for member in members:
await bot.send_message(member, message)
用法:
!ping "This is a message" @Demotry @PatrickHaugh
编辑:
如果您想避免强迫用户将其封装message
在引号中,您可以使用Clint.wait_for_message
@bot.command(pass_context=True)
async def ping(ctx, *members: discord.Member):
await bot.say("What message would you like to send?")
message = await bot.wait_for_message(channel=ctx.message.channel, author=ctx.message.author)
for member in members:
await bot.send_message(member, message.content)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句