discord.py公会加入dmall
discord.py guild join dmall
我正在制作一个机器人,在收到邀请时锁定所有频道(锁定机器人)
但我需要它来 DM 服务器中的所有用户这是我的代码:
@bot.event
async def on_guild_join(ctx, mem):
for mem in ctx.guild.members:
try:
await mem.send("Hello")
except:
print('User dm closed')
但我没有得到任何输出,也没有 DM?
它不起作用,因为 on_guild_join 没有成员或 ctx 参数。
on_guild_join 有参数 guild,见 discord.on_guild_join
Guild 有列表对象成员,请参阅 Guild.members
您的代码可能如下所示。
@bot.event
async def on_guild_join(guild):
members = guild.members
for member in members:
try:
await member.send("Hello")
except:
print('User dm closed')
正如 Kai 在下面所说的那样,这就是实现它的方法。然而,由于 discord 的速率限制(即你可以多快地做事,比如发送消息),我建议添加一个冷却时间。您需要 import asyncio
才能正常工作。考虑到 except 只打印并且不与 discord 交互 api,你应该只在发送消息后睡觉。
@bot.event
async def on_guild_join(guild):
members = guild.members
for member in members:
try:
await member.send("Hello")
await asyncio.sleep(1)
except:
print('User dm closed')
我正在制作一个机器人,在收到邀请时锁定所有频道(锁定机器人)
但我需要它来 DM 服务器中的所有用户这是我的代码:
@bot.event
async def on_guild_join(ctx, mem):
for mem in ctx.guild.members:
try:
await mem.send("Hello")
except:
print('User dm closed')
但我没有得到任何输出,也没有 DM?
它不起作用,因为 on_guild_join 没有成员或 ctx 参数。 on_guild_join 有参数 guild,见 discord.on_guild_join Guild 有列表对象成员,请参阅 Guild.members 您的代码可能如下所示。
@bot.event
async def on_guild_join(guild):
members = guild.members
for member in members:
try:
await member.send("Hello")
except:
print('User dm closed')
正如 Kai 在下面所说的那样,这就是实现它的方法。然而,由于 discord 的速率限制(即你可以多快地做事,比如发送消息),我建议添加一个冷却时间。您需要 import asyncio
才能正常工作。考虑到 except 只打印并且不与 discord 交互 api,你应该只在发送消息后睡觉。
@bot.event
async def on_guild_join(guild):
members = guild.members
for member in members:
try:
await member.send("Hello")
await asyncio.sleep(1)
except:
print('User dm closed')