即使没有错误,Discord Welcome Bot (Python) 也无法工作

Posted

技术标签:

【中文标题】即使没有错误,Discord Welcome Bot (Python) 也无法工作【英文标题】:Discord Welcome Bot (Python) Not Working Even Though There Is No Error 【发布时间】:2021-07-24 10:32:00 【问题描述】:

我正在尝试在 python 中创建一个不和谐的机器人,当有人加入服务器时,它会发送一条简单的欢迎消息。我查看了许多 youtube 教程并尝试了许多不同的方法来使其工作,但由于某种原因它不起作用。

代码中没有错误。我的代码中有一个 on_message(message) 函数,只是为了测试机器人,该函数运行良好。

另一方面,on_member_join 函数不起作用。我在我的不和谐开发者门户上启用了成员意图功能,并且该机器人具有管理员权限。我尝试将消息作为意图发送,但仍然无法正常工作。

编辑 1:根据 cmets,我删除了客户端的第二个定义。仍然无法让机器人显示欢迎信息。 on_message(message) 有效。

编辑 2:我解决了错误。该错误是由于我覆盖了客户的定义,也由于错字。感谢所有帮助过的人!

import discord
from discord.ext import commands

token = "I have my token here"


intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents = intents)



@client.event
async def on_ready():
    print("Bot is ready")


#respond hello to hi (for testing if the bot works)
@client.event
async def on_message(message):
    if message.content == 'hi':
        await message.channel.send('Hello')



#main function
@client.event
async def on_member_join(member):
    guild = client.get_guild(I have my server ID here)                        #server id
    channel = guild.get_channel(I have my channel ID here)                     #channel id
    await channel.send(f'Welcome to the server member.mention!  ')     #edit this line to edit message



client.run(token)

【问题讨论】:

你为什么定义client两次? 删除client的第二个definicjom,你在没有任何意图的情况下覆盖第一个 进行了编辑,但仍然无效。 在文档中说需要启用“Intents.members”,在您的代码中,第一个字母没有大写(intents.members -> Intents.members),所以可以有一个对它有影响吗? 不,@Okkonen,他将他的 discord.Intents 实例命名为小写“intents”,所以你的建议只会抛出 NameError 【参考方案1】:

member.metion 中有错字。应该是member.mention

【讨论】:

天啊,我不敢相信这实际上是问题所在。令人惊讶的是,即使有错字,代码也没有给我任何错误。你是救生员。不敢相信我花了几个小时试图找出哪里出错了。 检查答案是否已接受,以便问题结果解决 @VishnuVijay 这不是任何问题。它发生了。即使我在完全清醒的情况下花费数小时来解决问题,并在我刚醒来时解决它。

以上是关于即使没有错误,Discord Welcome Bot (Python) 也无法工作的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 错误:错误:找不到 FFmpeg/avconv!即使安装

Discord.js - .then 即使在函数中也没有定义?

获取属性错误:模块 'mod_commands' 没有属性 'ban' - 即使我添加了它

Discord.js - 公会 ID 未定义,即使有定义

如何按名称查找包含表情符号 Discord 的频道?

Discord.js票务系统错误发送未定义错误