#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
В основном, как сказано в названии. Мне интересно, есть ли способ удалить все каналы, которые содержат определенную строку для их имени
Например, 18876557 -старый
По команде удалите все каналы, имена которых содержат строку -old .
Комментарии:
1. Пройдитесь по каналам и проверьте их названия, я напишу вам ответ.
Ответ №1:
Вы можете использовать Array.prototype.forEach()
и Channel.delete()
// iterate a function through all channels in the guild
guild.channels.cache.forEach((channel) => {
if (guild.name.includes('-old')) // if the string '-old' is found within the channel name
channel.delete() // delete the channel
.then(() => console.log(`Deleted ${channel.name}`))
.catch((e) => console.log(`Could not delete ${channel.name} because of ${e}`)) // handle any errors
});
Комментарии:
1. Ошибка ссылки: Discord не определен, у меня есть «const guild = новый Discord. Guild();»
2.
guild
это должна быть та гильдия, в которой вы хотите это сделать. Вы не можете создать новую гильдию. Если это есть в команде, вы могли бы использоватьmessage.guild
. В противном случае:client.guilds.cache.get('Guild ID')
.
Ответ №2:
Это довольно просто, вам просто нужно пройтись по каналам гильдии:
for (let channel of guild.channels.cache) {
if (channel.name.includes("-old")) channel.delete();
}