javascript - discord.js v12 检查用户是否开始流式传输
问题描述
这按预期工作,直到它崩溃。每次用户开始流式传输时,它都会发布他们的流式链接。问题是,在 5 分钟后,机器人崩溃了,我得到了下面的错误。
let oldStreamingStatus = oldMember.activities.find(activity => activity.type === 'STREAMING') ? true : false;
^
TypeError: Cannot read property 'activities' of undefined
我的代码如下。
client.on('presenceUpdate', (oldMember, newMember) => {
let oldStreamingStatus = oldMember.activities.find(activity => activity.type === 'STREAMING') ? true : false;
let newStreamingStatus = newMember.activities.find(activity => activity.type === 'STREAMING') ? true : false;
if (oldStreamingStatus == newStreamingStatus) {
return;
}
if (newStreamingStatus) {
if (newMember.member.roles.cache.some(r => ["Raider","Trial"].includes(r.name))) {
const activity = newMember.activities.find(activity => activity.type === 'STREAMING')
// console.log(newMember.activities)
client.channels.cache.get("731911793257087006").send(`Hey! ${activity.url} is streaming!`);
return;
} else
return;
}});
我在下面尝试了这段代码。但是,如果有人改变了他们的活动,或者他们目前正在流媒体,然后开始收听 Spotify,它会发布另一条消息。
client.on("presenceUpdate", (oldPresence, newPresence) => {
if (!newPresence.activities) return false;
newPresence.activities.forEach(activity => {
if (activity.type == "STREAMING") {
console.log(`${newPresence.user.tag} is streaming at ${activity.url}.`);
};
});
});
似乎我需要 10 声望才能以正确的方式发布图片。我为此道歉。
解决方案
推荐阅读
- python - 如何将 HTML 表单中的变量连接到设置电阻值的参数?
- google-chrome - css/js 的 Chrome 客户端证书失败
- reactjs - 更新 React Hookstate 中的数组元素
- wordpress - 我的网站图标显示在我的浏览器中,但不在谷歌上
- lua - 在nui回调menu_submit期间出错:citizen:/scripting/lua/scheduler.lua:378:
- flutter - 使用 Bloc 处理具有多个身份验证状态的导航路由的最佳方法是什么?
- php - 如何使用苹果验证 ID 令牌签名作为谷歌 oauth2 的替代品
- reactjs - 使用 Context API + UseReducer 同步状态更新
- javascript - react redux 中的传播状态
- sql - 'Unpivoting' 一个 SQL 表