Я пытаюсь перебрать enmap
для своего бота discord.js, мне удалось установить и получить значения из одной записи, но я пытаюсь настроить команду, которая добавляет людей в рассылкукак DM о незначительных серьезных обновлениях.
if (args[0] === 'minor') {
if (devlog.updates === 'minor') return message.channel.send('You are already recieving minor updates.').then(m => m.delete(5000))
await client.devlog.set(userID, "yes", 'subscribed');
await client.devlog.set(userID, "minor", 'updates');
return message.channel.send('You will now recieve minor and major updates.').then(m => m.delete(5000))
}
if (args[0] === 'major') {
if (devlog.updates === 'major') return message.channel.send('You are already recieving major updates.').then(m => m.delete(5000))
await client.devlog.set(userID, "yes", 'subscribed');
await client.devlog.set(userID, "major", 'updates');
return message.channel.send('You will now recieve only major updates.').then(m => m.delete(5000))
}
if (!args[0]) {
if (devlog.subscribed === 'yes') {
await client.devlog.set(userID, "no", 'subscribed');
await client.devlog.set(userID, "none", 'updates');
return message.channel.send('You will stop recieving updates about RoboTurtle all together').then(m => m.delete(5000))
}
if (devlog.subscribed === 'no') {
return message.channel.send(`Please choose wether you\'d like to recieve minor or major updates! (minor has both) **devlog minor/major**`).then(m => m.delete(10000))
}
}
Это вроде работает, но оно не будет вызывать сообщение, если они уже подписаны на тот же тип обновления, и если они просто !devlog
, это должнолибо установите их так, чтобы они не получали обновления, если они уже есть, либо скажите им, чтобы они выбирали между двумя, если они не были, однако он просто отправляет последнее сообщение в любом случае.
Я попытался настроить enmap
итерация для DMing всех подписанных людей с функцией for...of
, основанной на .map
связанных документах (так как они должны быть просто "более изящными" картами), но безрезультатно, так как они на самом деле не показывают сценарии использования в стиле диссонанса.
if (args[0] === 'minor') {
for (let entry of client.devlog) {
if (entry.updates === 'minor') {
let user = client.users.get(entry)
user.send(`**[Minor Update]\n${args.slice(1)}`)
}
}
}
if (args[0] === 'major') {
for (let entry of client.devlog) {
if (entry.subscribed === 'yes') {
let user = client.users.get(entry)
user.send(`**[Major Update!]\n${args.slice(1)}`)
}
}
}
На случай, если кто-нибудь захочет взглянуть на полный код, чтобы получить лучшее представление о том, что я пытаюсь сделать здесь, вы идете: https://pastebin.com/bCML6EQ5