twitchClient.on('timeout', async (channel, username, user, reason, duration) => {
discordClient.on('message', async (message, messages) => {
async function deleteMessage() {
await discordClient.channels.cache.get("901568598538063932")
.messages.fetch({limit: null})
.then(message.delete(messages.first(user["display-name"]).author.name))
}
await deleteMessage()
})
async function sendMessage() {
const request = new XMLHttpRequest();
request.open("POST", "API url");
request.setRequestHeader('Content-type', 'application/json');
const users = {
username: "User Timed Out",
avatar_url: 'https://i.imgur.com/GUrbNsB.jpg',
content: `**${username} has been timed out for ${duration} seconds.**`
}
request.send(JSON.stringify(users));
}
await sendMessage()
});
我有这个代码twitch聊天同步不和谐,我想做的事件超时在twitch上我想要它删除某一名称的消息上的频道是可能的,没有ID我失去了如何做到这一点,就像我可以删除最后的消息,但不是从一个特定的用户和我只有一个webhook,所以所有用户名的id将是相同的
TypeError: Cannot read properties of undefined (reading 'first')
注意:此代码适用于Discord.js v13.3.0
如错误所述,您正在尝试访问名为messages
的未定义变量。这是因为您没有在then()
参数中定义它,您立即转到回调。
then()
是一个允许您提供参数添加的函数。您可以简单地将消息集合作为一个称为messages
的变量并将其传递给相应的回调。
// DON'T do this
messages.fetch({limit: null})
.then(message.delete(messages.first(user["display-name"]).author.name))
// DO this
messages.fetch({limit: null})
.then((messages) => message.delete(messages.first(user["display-name"]).author.name))