我希望我的不和谐机器人在加入新服务器时发送一条特定的消息,例如:“你好”。机器人应该搜索要写入的顶部通道,然后在那里发送消息。我看到了这个,但这对我没有帮助
async def on_guild_join(guild): general = find(lambda x: x.name == 'general', guild.text_channels) if general and general.permissions_for(guild.me).send_messages: await general.send('Hello {}!'.format(guild.name))```
您使用的代码实际上非常有用,因为它包含了您需要的所有构建块:
guild.text_channels[0]
async def on_guild_join(guild):
general = guild.text_channels[0]
if general and general.permissions_for(guild.me).send_messages:
await general.send('Hello {}!'.format(guild.name))
else:
# raise an error
现在您可能遇到的一个问题是,如果顶部频道类似于公告频道,您可能没有在其中发送消息的权限。因此,从逻辑上讲,您希望尝试下一个通道,如果这不起作用,请尝试下一个通道。您可以在正常的for循环中执行此操作:
async def on_guild_join(guild):
for general in guild.text_channels:
if general and general.permissions_for(guild.me).send_messages:
await general.send('Hello {}!'.format(guild.name))
return
print('I could not send a message in any channel!')
所以实际上,你说的这段“没用”的代码实际上是做你想做的事情的关键。下次请简明扼要地说它有什么没有用,而不是仅仅说“这整件事没有用,因为它没有做我想要的事情”。
每次机器人被邀请到服务器时,我都想发送一条消息。然后它应该写这样的话:“你好,这是我的不和机器人” 到目前为止,我有这个代码,它不会产生错误,但也不会发送消息。
我目前正在制作一个discord bot,并希望在服务器加入时在服务器的通道中发送一条消息,这是我到目前为止的代码。 当我运行这段代码时,什么都不会发生。我没有得到任何ERORR或输出。 如果有人能帮忙,那就太棒了。谢谢
我试图制作一个不和谐机器人,当被召唤时,它将加入作者所在的语音频道。 这是我所拥有的: 当我加入语音频道并键入命令时,我收到以下错误:
所以基本上,我想要的是每当我的机器人加入任何公会时,它应该向我服务器中的一个特定频道发送一条消息,声明它被邀请到一个服务器,并带有它的名字,如果可能的话,还有该服务器的邀请链接。我尝试了一些东西,但从来没有真正奏效。 它不起作用,并抛出以下错误: 我真的不知道如何让机器人发送带有公会名称的公会邀请链接。
我试图让我的自我机器人加入服务器。我知道self-bots反对discordtos,但我想学习一些新的东西。 这是我尝试过的命令: 错误:
我正在尝试让我的discord机器人连接到一个语音频道,目前如下所示: 基本上,当他们发送消息时,我希望它加入消息作者的语音频道“-skip”,然后我的机器人加入,在聊天中说-p scotland forever,然后离开。我收到一条错误消息,说“频道”未定义或“连接”未定义,我尝试了几种不同的方法,我想我只是没有导入插件或其他东西,这可能是我的问题,但我知道应该使用什么插件。任何帮助都将不胜感激