#javascript #discord #discord.js
Вопрос:
если у вставки есть одно из имен ListClaims в .setAuthor, она реагирует на смайлик, это то, что я хочу, чтобы она делала, но она перестает работать, если я помещаю более 1 имени в ListClaims, попробуйте использовать txt, но это не работает.
var ListClaims = ["rick sanchez","alex","juan"];
if(message.embeds.length >= 0)
// Check if the Message has embed or not
{
let embed = message.embeds
// console.log(embed) just a console.log
for(let i = 0; i < embed.length; i )
{
if(embed[i].author.name === null) return;
// check each embed if it has setAuthor or not, if it doesnt then do nothing
{
if(embed[i].author.name.toLowerCase().includes(ListClaims))
// check each embed if it includes word
{
message.react('🎉')
}
}
}
}
Ответ №1:
Вы вызываете includes()
строку ( author.name
) с аргументом массива. Вы хотите, чтобы все было наоборот. Так что вместо:
if (embed[i].author.name.toLowerCase().includes(ListClaims))
Попробуйте использовать:
if (ListClaims.includes(embed[i].author.name.toLowerCase()))
Ответ №2:
на функцию js includes можно ссылаться здесь
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
ниже приведен пример
const array1 = [1, 2, 3];
document.write("Is array1 contain 2 : ");
document.write(array1.includes(2));
document.write("<br>");
document.write("Is array1 contain 4 : ");
document.write(array1.includes(4));
Комментарии:
1. Вопрос был задан для node.js код, а не в стандартном html-коде js!
2. приведенная выше документация JS является общей для Javascript, html предназначен только для примера, братан. @Jeffplays2005
3. Оооо, я понимаю, моя плохая
Ответ №3:
.includes-это метод массива, но вы использовали его как строковый метод.
Ниже я исправил это, а также очистил ваш код. Новый код находится в функции MessageHandler.
const listClaims = ["rick sanchez", "alex", "juan"];
// dummy message object
const msg = {
embeds: [
{name: "alex"},
{name: null},
{name: "juan"},
],
react: (str) => console.log(str),
}
function handleMessage(msg){
if (!msg.embeds.length) return;
msg.embeds.forEach(embed => {
if (listClaims.includes(embed.name)) msg.react('🎉');
})
}
handleMessage(msg)