Stack Overflow на русском Asked by Fellout on October 15, 2020
const {MessageEmbed} = require('discord.js');
module.exports = {
name: 'clear',
aliases: ['cls'],
category: 'moderation',
description: 'Clear chat command.',
run: async (bot, message, args) => {
message.react("?");
if (message.deletable) {
message.delete();
}
if (!message.channel.permissionsFor(message.member).has(["MANAGE_MESSAGES"])) {
return message.reply("you do not have permission to manage messages!nName permission: MANAGE_MESSAGES!");
}
if (isNaN(args[0]) || parseInt(args[0]) <= 0) {
return message.reply("is it on your number? At least enter the number 1.");
}
if (!message.channel.permissionsFor(message.guild.me).has(["MANAGE_MESSAGES"])) {
return message.reply("I do not have permission to manage messages!nName permission: MANAGE_MESSAGES!");
}
let delmsg;
if (parseInt(args[0]) > 100) {
delmsg = 100;
} else {
delmsg = parseInt(args[0]);
}
message.channel.bulkDelete(delmsg, true)
.then(deleted => message.channel.send(`${deleted.size} message('s) deleted successfully!`))
.then(message => message.delete({timeout: 5000}))
.catch(err => console.log(`${err}`));
}
}
Вот код команды. Всё рабочее. Меня интересует другое. Количество удаляемых сообщений. Можете подсказать как увеличить количество удаляемых сообщений, обойти ограничение? Я начинающий программист, буду не против если расскажете как и расскажете подробней что к чему. Ещё буду не против если скажете как поместить сообщение 15 (пример) сообщений успешно удалено
поместить в embed
, я пробовал, но что-то шло не так.
Именно увеличить кол-во удаляемых сообщений можно сделав такой цикл:
let clearFunction = async (count) => {
return new Promise(async (res, rej) => {
await message.channel.bulkDelete(count, true).catch((e) => {return rej(e)});
return res(count);
})
}
let clearCall = async (est) => {
if (est <= 0) return message.channel.send(`${args[0]} message('s) deleted successfully!`);
let deleted = await clearFunction(est < 100 ? est : 100);
return clearCall(est - deleted);
}
return await clearCall(parseInt(args[0]));
Также, необходимо добавить завершение цикла, когда кол-во указанных для удаления сообщений превышает разрешенные в канале, но главное - я ответил на сам вопрос, ведь так?
Answered by wilddip on October 15, 2020
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP