即使没有错误,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 即使在函数中也没有定义?