我的on_member_join似乎不起作用。我希望我的机器人说出加入服务器的成员的名字,但是它无法检测到有人加入或离开了。
Stream<List<ViewModel>> matches(uid) async {
Stream<List<String>> docIds = FirebaseFirestore.instance
.collection('matches')
.where('match', arrayContains: uid)
.snapshots()
.map((event) => event.docs.map((e) => e.id).toList());
return docIds.map((e) {
e.map((e) => FirebaseFirestore.instance
.collection('matches')
.doc(e)
.collection("myCollection")
.snapshots()
.map(
(event) => event.docs.map((e) => ViewModel.fromJson(e.data())).toList(),
));
}).toList();
}
它正在终端上打印“机器人已准备就绪”,因此机器人正在工作。但是并没有检测到成员离开或加入pls帮助。
答案 0 :(得分:2)
您可能正在使用discord python 1.5.0或更高版本,这是一个常见错误,您只需要Intents。 如果出现错误,应该阅读该错误,它将把您重定向到Discord开发人员门户中的bot,在那里您可以激活特权网关意图check this out
并将其添加到您的代码中
intents = discord.Intents.default()
intents.members = True
client = commands.Bot(command_prefix='.', intents=intents)
答案 1 :(得分:-1)
我解决了此问题以将discord.py降级
也许意图选项是错误的。
我已经在使用discord api论坛意图选项,但无法正常工作
因此,如果您要on_member_join并删除事件,请在1.5.0版以下将discord.py降级
u在控制台中键入
pip install discord.py==1.4.2
然后从您的绳索中删除所有有关意图绳索并激活绳索
就是这样。