Javascript 如何让一个机器人知道如何删除它制作的网络钩子,并通过频道提及

Javascript 如何让一个机器人知道如何删除它制作的网络钩子,并通过频道提及,javascript,discord.js,commando,Javascript,Discord.js,Commando,嗨,我想制作一个Discord.JS-Commando命令,如果你选择一个频道,机器人会删除它在那里拥有的一个webhook,如果它的名字是Marker,如果它检测到那里没有它拥有的webhook,它只会返回消息.channel.send(“嘿!我在这个频道里没有webhook!”) bot删除了一个webhook,即使它没有成功,而且它不在我提到的频道中。我该如何解决这个问题 在谷歌上搜索,什么都没有。 除了discord.js文档之外,没有任何关于删除webhook的内容 const hoo

嗨,我想制作一个Discord.JS-Commando命令,如果你选择一个频道,机器人会删除它在那里拥有的一个webhook,如果它的名字是
Marker
,如果它检测到那里没有它拥有的webhook,它只会
返回消息.channel.send(“嘿!我在这个频道里没有webhook!”)

bot删除了一个webhook,即使它没有成功,而且它不在我提到的频道中。我该如何解决这个问题

在谷歌上搜索,什么都没有。 除了discord.js文档之外,没有任何关于删除webhook的内容

const hooks1 = await message.guild.fetchWebhooks();
await hooks1.forEach(async webhook => {
    if (!watchChannel.id == webhook.channelID) return
    if (!webhook.owner.id == `595840576386236437`) return
    if (!webhook.name == `Marker`) return message.channel.send(`**${message.author.username}**, Nothing was found. You or someone else may have renamed the webhook. Please delete the webhook manually. Sorry for the inconvenience`);
    else
message.channel.send(`Deleted successfully.`).then(msg => {message.delete(4000)}).catch(error => console.log(error))
webhook.delete(`Requested per ${message.author.username}#${message.author.discriminator}`);
});

我希望bot知道如何删除它在提到的频道中制作的webhook,但是bot不知道删除什么webhook。

你看过discord.js文档了吗?它提供了您需要知道的一切,比如对象、类、对象和类的方法/属性等等。无论如何,我认为问题在于,当您尝试删除webhook时,您使用的是
webhook.delete
,但是当您使用
delete
而不使用括号时,意味着您试图访问属性
delete
,而不是方法。正确的方法是调用
webhook.delete()
因为它从
Webhook
类调用
delete()
方法

就在文档上:

Webhook类:


删除方法:

您看过discord.js文档了吗?它提供了您需要知道的一切,比如对象、类、对象和类的方法/属性等等。无论如何,我认为问题在于,当您尝试删除webhook时,您使用的是
webhook.delete
,但是当您使用
delete
而不使用括号时,意味着您试图访问属性
delete
,而不是方法。正确的方法是调用
webhook.delete()
因为它从
Webhook
类调用
delete()
方法

就在文档上:

Webhook类:

删除方法:

if(!watchChannel.id==webhook.channelID)返回
如果(!webhook.owner.id=`595840576386236437`)返回
如果(!webhook.name=`Marker`)返回
这些线路都没有按照您的预期工作

const id='189855563893571595';
log(id==“189855563893571595”);
console.log(id!=“1234”);//id不等于“1234”:true
console.log(!id==“1234”);//false等于“1234”:false
if(!watchChannel.id==webhook.channelID)返回
如果(!webhook.owner.id=`595840576386236437`)返回
如果(!webhook.name=`Marker`)返回
这些线路都没有按照您的预期工作

const id='189855563893571595';
log(id==“189855563893571595”);
console.log(id!=“1234”);//id不等于“1234”:true

console.log(!id==“1234”);//false等于“1234”:false
首先,有一点建议:使用
==
而不是
==
(如果
,您可以看到差异并为
添加括号。如果
,则有一行
不需要它们,但是如果需要编辑代码,它更容易阅读,效果更好(例如,您想添加一个
控制台.log
?如果这样放置,第二条语句将不在If中。您必须添加括号,但您可能会忘记,从而导致错误的调试或代码行为)是否有错误?是否确定webhook存在?是否确定所有者是正确的id?是否尝试记录
webhook
?1.不一致错误:TypeError:无法读取未定义的属性“id”,2.是,它名为“Marker”由595840576386236437所有。3.我确保机器人的ID和owner.ID匹配。4.还没有。不管怎样,我得到的答案只是将其命名为
webhook.delete()
,现在的问题是,即使我成功了,它也会删除它看到的所有webhook。首先,一点建议:使用
===
而不是
=
(您可以看到差异并为
if
添加括号。是的,如果
if
有一行不需要它们,但是如果您需要编辑代码,它更容易阅读,效果更好。)(例如,您想添加一个
控制台.log
?如果这样放置,第二条语句将不在If中。您必须添加括号,但您可能会忘记,从而导致错误的调试或代码行为)是否有错误?是否确定webhook存在?是否确定所有者是正确的id?是否尝试记录
webhook
?1.不一致错误:TypeError:无法读取未定义的属性“id”,2.是,它名为“Marker”由595840576386236437所有。3.我确保bot的ID和owner.ID匹配。4.还没有。不管怎样,我得到的答案只是将其命名为
webhook.delete()
,而现在的问题是,即使我成功了,它也会删除它看到的所有webhook。