(Discord.js ) Удалять каналы с указанным текстом в названии канала

#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();
}