Отправить личное сообщение списку людей

#javascript #node.js #discord #discord.js

#javascript #node.js #Discord #discord.js

Вопрос:

Мой бот собирается отправить личное сообщение списку людей, которые приняты. Я хочу ввести команду, которая отправит сообщение всем в .json файле. Я пробовал с циклом, но не могу заставить его работать.

Я думаю, что это файл json:

 {
    "1": "Name#0001",
    "2": "Guy#0001",
    "3": "Person#0001"
}
  

Это мой index.js или main.js:

 var ytLinks = JSON.parse(fs.readFileSync('./ytvids.json', 'utf8'));

if (args[1] === 'send') {
  const userValues = Object.values(acceptedUsers);
  var userList = '';
  var i;
  for (i = 0; i < userValues.length; i  ) {
    userList  = userValues[i];
  }
}
  

Ответ №1:

something.json:

 {
    "1": "Name#0001",
    "2": "Guy#0001",
    "3": "Person#0001"
}
  

index.js:

 const obj = require('./something.json') // require object from file

// execute function on each entry (user tag)
Object.values(obj).forEach((tag) => {

    // find each user via tag and send DM 
    client.users.cache.find(user => user.tag === tag).send('This is a DM') 
});
  


Будьте осторожны, слишком большой массовый DMing может привести к проблемам с Условиями предоставления услуг Discord

Комментарии:

1. С точки зрения производительности Array.forEach работает значительно медленнее, чем for…of и Array.map, поэтому вам, вероятно, следует переключить его на цикл for …of.

2. Поправьте меня, если я ошибаюсь, но Array#forEach() определенно не медленнее, чем Array#map()

3. Кроме того, хотя for...of считается более быстрым, это имеет значение только при переборе более миллионов элементов. В противном случае это не имеет значения.