Javascript 如何让一个机器人知道如何删除它制作的网络钩子,并通过频道提及
嗨,我想制作一个Discord.JS-Commando命令,如果你选择一个频道,机器人会删除它在那里拥有的一个webhook,如果它的名字是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
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。