Discord JS удаляет webhook на каналах

#javascript #discord.js

#javascript #discord.js

Вопрос:

я немного разбираюсь в java script и discord.js и у меня небольшая проблема

Я делаю забавную команду, если я упоминаю кого-то и сообщение, это создать webhook с его именем пользователя аватар и отправить сообщение, которое я хочу

Код работает, но после создания 10 webhooks я не могу продолжать использовать команды, возможно ли удалить webhook после его использования или просто удалить все webhook на канале?

Я использую node, и у меня есть install hookcord для отправки сообщения с помощью webhooks

мой код:

   if (message.content.startsWith(prefix   "say")) //say something like if it's a member    
            {    
              message.delete()   
              args[0] = message.mentions.members.first()  
              var usermentions = args[0]    
              let msg = args[1];
              message.channel.createWebhook(usermentions.displayName, usermentions.user.displayAvatarURL).then(wb =>            
              {       
                var hookcord = require('hookcord');
                var Hook = new hookcord.Hook()
                  .setLink(`https://discordapp.com/api/webhooks/${wb.id}/${wb.token}`)
                  .setPayload({
                    'title': usermentions.displayName,
                    'avatar': usermentions.user.displayAvatarURL,
                    'content': msg
                  })
                  .fire()
                  .then(function(response) {})
                  .catch(function(e) {})
              })
            }
  

Заранее спасибо за потраченное время и вашу помощь!

Ответ №1:

Да, вы можете использовать channel.fetchWebhooks() , а затем использовать цикл forEach для удаления их всех:

 if(message.content === 'delete-webbooks'){
   message.channel.fetchWebhooks().then((webhooks) => {
       webhooks.forEach((wh) => wh.delete());
   });
}
  

Вы также можете заменить:

 .then(function(response) {})
  

Автор::

 .then(function(response) {
    wb.delete();
}) 
  

Я думаю, что это лучшее решение.

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

1. Спасибо вам, это работает!! но у меня снова возникает один вопрос, когда я создаю свой код типа: /say @user Привет, я бот, отображается только сообщение Привет, а не я бот, вы знаете, почему?

2. Заменить let msg = args[1]; на let msg = args.slice(1).join(" ");