discord.js заставить бота удалить заданное количество сообщений

#discord.js

#discord.js

Вопрос:

Я начал создавать бота discord и хотел, чтобы он начал модерировать мой сервер. моей первой командой, которую я попробовал, было «массовое удаление» или «очистка», которая удаляет количество сообщений, которые отправляет пользователь. Но я довольно новичок в Java и discord.js так что я понятия не имею, с чего начать.

         // code here to check if an mod or above
        // code to delete a number of message a user gave
   }```
 

Ответ №1:

Для проверки разрешений вы можете просто проверить роли автора сообщения с помощью:

 if (!message.member.roles.cache.has(moderator role object)) return;
 

В целом, вам следует обратить внимание на bulkDelete() функцию, которую можно найти здесь.

Хотя, поскольку вы на самом деле еще не знаете, как на самом деле разрабатывать ботов из того, что вы говорите, я не буду рассказывать вам ответ на вашу проблему прямо. Я бы настоятельно рекомендовал изучить некоторые основы JavaScript (также, имейте в виду Java != JavaScript), а также Discord.js основы перед тем, как перейти прямо к тому, что вы хотите создать.

Я бы настоятельно рекомендовал Worn offkeys на YouTube, они фантастические.

Ответ №2:

Сначала проверьте разрешение пользователя, используя

 if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("You have no permission to access this command")
 

проверьте разрешение бота с помощью

 if (!message.guild.me.permissions.has("MANAGE_MESSAGES")) return message.channel.send("This bot have no permission to delete msg!")
 

возвращает сообщение, если пользователь не упомянул сообщение выбора

 if (!args[0]) return message.channel.send("no messages have been selected")
 

затем, как сказал Bqre, используя bulkdelete()

  try {
            await message.channel.bulkDelete(args[0])
        } catch (e) {
            console.log(e); //err
        }
 

надеюсь, вы найдете это полезным!