Я написал следующий код для бота Discord, используя discord.js. Цель кода, который я пытаюсь написать, состоит в том, чтобы бот отвечал списком имен пользователей, чьи идентификаторы указаны в другом файле .json. Это то, что я написал.
if(command === "privlist")
{
var msg = ""
msg += "[Privileged Users]\n"
// iterate through the array of id's
config.privileged.forEach(function(item, index) {
msg += index + ": ";
// fetch the user associated with the id in the array
client.fetchUser(item).then(User => {
// add the name of the user into the string to be outputted
msg += User.username + "#" + User.discriminator;
});
// include the user id as well
msg += " <" + item + ">\n";
});
// send the message
message.channel.send(msg);
}
Ожидаемый ответ от бота должен быть примерно таким.
[Privileged Users]
0: Merlin#8474 <172734241136836608>
1: Spring Voltage#2118 <255109013383938048>
2: masterhunter56#2561 <243167201471889409>
3: brett#4582 <123957558133129217>
Но вместо этого это то, что я получаю.
[Privileged Users]
0: <172734241136836608>
1: <255109013383938048>
2: <243167201471889409>
3: <123957558133129217>
Я попытался добавить console.log(User.username)
после строки msg += User.username + "#" + User.discriminator;
, и это заставляет имена правильно отображаться в консоли.
Я могу даже сделать message.channel.send(User.username)
после msg += User.username + "#" + User.discriminator;
, и это будет отправлять каждое из имен как его собственное сообщение.
Я просто не могу связать это User.username + "#" + User.discriminator
со строкой msg
.