Команды для бота дискорд js

Мне нужен код команды clear для discord бота на JavaScript. Помогите пожалуйста, спасибо!

Ответы (3 шт):

channel.bulkDelete( количество ) Всё подробно об этом в официальной документации discord.js https://discord.js.org/

Вы можете сделать это следующим образом

const Discord = require(‘discord.js’); const client = new Discord.Client(); const prefix = ‘?’; client.on(‘message’, (message) => < /* Проверяем что сообщение начинается с префикса */ if (!message.content.startsWith(prefix)) return; /* Разделяем сообщение на массив из аргументов обрезая на длину префикса */ let args = message.content.substring(prefix.length).split(‘ ‘); /* Получаем комманду, первый элемент массива */ let command = args.shift(); if (command === ‘clear’) < if (!message.member.hasPermission(‘MANAGE_MESSAGES’)) return message.reply(‘Для использования данной команды тебе необходимы права для удаления сообщения’); /* Получаем кол-во сообщений к удалению, проверяем, что колд-во указанно корректно, если нет задаем кол-во равным 100 */ let count = Number.parseInt(args[0]); if (!count || count >100 || count < message.channel.send(`Успешно удалено $сообщений`); >) .catch((err) => < message.channel.send(‘Ошибка удаления сообщений’); >); > >);

для боты если команды держишь в отдельных файлах а не в теле бота.

Discord BOT за 2 минуты! (Discord js V14) #0


const Discord = require(‘discord.js’); module.exports.run = async (bot, message, args) => < if (!message.member.hasPermission(‘BAN_MEMBERS’)) return message.reply(‘No.’); if (!args[0]) return message.channel.send(‘no’); message.channel.bulkDelete(args[0]).then(() => < message.channel.send(`Deleted: $messages.`) .then((msg) => msg.delete(< timeout : 5000 >));; >); >; module.exports.help = < name: ‘clear’, >;

Источник: husl.ru

[Node.JS] [Discord] Оригинальная страница помощи в боте

Как вы знаете, в дискорде ботам доступна отправка «встроенных» сообщений, которые в документации зовутся embed’ами. Также, боты могут ставить собственные реакции к сообщению, потом обрабатывать их. И вот, мне пришли идея сделать перелистывающееся меню помощи в боте.

Итак, для начала нам требуется отрисовать различные элементы нашего будущего «интерфейса». Я брал иконки с

Пожалуйста, авторизуйтесь для просмотра ссылки.

и накладывал нужный стиль в фотошопе.

Теперь, нам необходимо создать сервер в дискорде, на который мы загрузим наши иконки как эмодзи.

Спойлер: Как загрузить эмодзи?
Шаг 1. Открываем настройки сервера

Шаг 2. Открываем раздел «Эмодзи»

КАК СОЗДАТЬ DISCORD БОТА НА JAVASCRIPT | ЗАПУСК, СОЗДАНИЕ КОМАНД

Еще по теме:  Как удалить способы оплаты в дискорд

Шаг 3. Нажимаем кнопку «Загрузить эмодзи»

Шаг 4 . Даём эмодзи название, которое нам будет удобно использовать в коде.

Теперь переходим к коду. Вам необходимо иметь
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
кода
Создаём папку, нажимаем ПКМ внутри неё, далее «Открыть с помощью Code»
Спойлер: SS

Далее, в окне программы открываем консоль (я это делаю сочетанием Ctrl + Shift + ~ (ё) ).
Теперь нам нужно установить все необходимые зависимости (в нашем случае, нам нужен только

Пожалуйста, авторизуйтесь для просмотра ссылки.

), для этого мы пишем в консоль npm i discord.js .
Дождавшись окончания загрузки, создаём новый файл и называем его index.js .

Спойлер: SS

Открываем файл и пишем в него
Пожалуйста, авторизуйтесь для просмотра ссылки.
Спойлер: Показать код
JavaScript:

const Discord = require(‘discord.js’); // Подключаем зависимость «discord.js» const bot = new Discord.Client() // Создаём нового клиента (бота) /////////////НАСТРОЙКИ//БОТА///////////// const token = «123456» // Токен бота из https://discordapp.com/developers/applications/ const prefix = «/»; // Префикс перед сообщением const guildmode = false; // Режим работы только на серверах (может удалять сообщения и т.д.) const emoji_guild = «599247397494849536»; // ID сервера, откуда бот берёт эмодзи /////////////НАСТРОЙКИ//БОТА///////////// var emojis = <>; bot.on(«ready», async () => < console.log(«Hello from wilddip (каво?)! Logged in as » + bot.user.tag); // Не смущаейтесь, что на пиндосском, это мой код 😀 // Get this guild by ID let guild = bot.guilds.get(emoji_guild); // Writing all emojis guild.emojis.forEach(emoji =>< emojis[emoji.name] = emoji; >); >) bot.on(«message», async msg => < if (msg.author.bot || msg.author.id == bot.user.id) return; if (guildmode !msg.guild) return; if (!msg.content.startsWith(prefix)) return; let args = msg.content .slice(prefix.length) .trim() .split(/ +/g); let command = args.shift().toLowerCase(); if (command === «help») < // А это и не должно работать . // function get(uid) < // let u = bot.users.get(uid); // if (!u) u = «»; // return u; // > let data = require(«./help.json»); // Подключение файла с помощью let pages = data.pages; function getPage(number) < let page = pages[number]; let cmd = []; cmd.push(«**» + page[0] + «**:»); page.slice(1, page.length).forEach(el => < let i = pages.indexOf(page) === pages.length — 1; // Лучше не трогайте всё что ниже. Код писал относительно давно, сам уже не помню что да как, ъуъ с@%а 😛 if (i) < let n = el[0], m = el[1], t = el[2]; cmd.push( «**» + n + «**: » + m + «[TG](https://tele.click/» + t + «)» ); >else < let n = el[0], d = el[1], s = el[2], r = []; r.push(«`» + prefix + n + «` «); if (s) r.push(«`» + s + «` «); r.push(«- » + d); cmd.push(r.join(» «)); >>); cmd.push(«n»); if (pages[number — 1]) cmd.push(«`>`»); return cmd.join(«n»); > let page = 1; let embed = new Discord.RichEmbed() .setColor(msg.member ? msg.member.displayHexColor : ‘#111111’) .setDescription(getPage(page — 1)) .setFooter(`$ / $`, emojis.paper_stack.url) .setTimestamp(); msg.channel.send(embed).then(async helpMsg => < let time = 120; let backFilter = (reaction, user) =>reaction.emoji === emojis.arrow_back user.id === msg.author.id; let refreshFilter = (reaction, user) => reaction.emoji === emojis.refresh user.id === msg.author.id; let nextFilter = (reaction, user) => reaction.emoji === emojis.arrow_next user.id === msg.author.id; let closeFilter = (reaction, user) => reaction.emoji === emojis.close user.id === msg.author.id; let back = helpMsg.createReactionCollector(backFilter, < time: time * 1000 >); let refresh = helpMsg.createReactionCollector(refreshFilter, < time: time * 1000 >); let next = helpMsg.createReactionCollector(nextFilter, < time: time * 1000 >); let close = helpMsg.createReactionCollector(closeFilter, < time: time * 1000 >); let timeout = setTimeout(() => < msg.delete().catch(); embed.setFooter(`Время вышло!`, emojis.close.url); helpMsg.edit(embed); return helpMsg.clearReactions().catch(); >, time * 1000); back.on(«collect», r => < r.remove(msg.author.id).catch(err => < if (err) < if (guildmode) < embed .setDescription(getPage(page — 1)) .setFooter(`Невозможно удалить реакцию. `); clearTimeout(timeout); return helpMsg.edit(embed); >else return; > >); if (page === 1) return; page—; embed .setDescription(getPage(page — 1)) .setFooter(`$ / $`, emojis.paper_stack.url); helpMsg.edit(embed); >); refresh.on(«collect», r => < r.remove(msg.author.id).catch(err => < if (err) < if (guildmode) < embed .setDescription(getPage(page — 1)) .setFooter(`Невозможно удалить реакцию. `); clearTimeout(timeout); return helpMsg.edit(embed); >else return; > >); page = 1; embed .setDescription(getPage(page — 1)) .setFooter(`$ / $`, emojis.paper_stack.url); helpMsg.edit(embed); >); next.on(«collect», r => < r.remove(msg.author.id).catch(err => < if (err) < if (guildmode) < embed .setDescription(getPage(page — 1)) .setFooter(`Невозможно удалить реакцию. `); clearTimeout(timeout); return helpMsg.edit(embed); >else return; > >); if (page === pages.length) return; page++; embed .setDescription(getPage(page — 1)) .setFooter(`$ / $`, emojis.paper_stack.url); helpMsg.edit(embed); >); close.on(«collect», r => < if (guildmode) msg.delete().catch(); helpMsg.delete().catch(); return clearTimeout(timeout); >); await helpMsg.react(emojis.arrow_back); await helpMsg.react(emojis.refresh); await helpMsg.react(emojis.arrow_next); await helpMsg.react(emojis.close); >); > >) // Лучше это не трогать, это обработчик событий, чтобы бот видел реакции на сообщения, которые были отправлены до его запуска. bot.on(«raw», packet => < if (![«MESSAGE_REACTION_ADD», «MESSAGE_REACTION_REMOVE»].includes(packet.t)) return; const channel = bot.channels.get(packet.d.channel_id); if (channel.messages.has(packet.d.message_id)) return; channel.fetchMessage(packet.d.message_id).then(message =>< const emoji = packet.d.emoji.id ? `$:$` : packet.d.emoji.name; const reaction = message.reactions.get(emoji); if (reaction) reaction.users.set(packet.d.user_id, bot.users.get(packet.d.user_id)); if (packet.t === «MESSAGE_REACTION_ADD») < bot.emit(«messageReactionAdd», reaction, bot.users.get(packet.d.user_id)); >if (packet.t === «MESSAGE_REACTION_REMOVE») < bot.emit( «messageReactionRemove», reaction, bot.users.get(packet.d.user_id) ); >>); >); bot.login(token); // Want a bot? Write me > https://tele.click/wilddip [redirect, have no fear]

Еще по теме:  Что делать если взломали дискорд

Далее, создаём другой файл и называем его help.json . В нём будут храниться страницы помощи.
Вставляем в него

Пожалуйста, авторизуйтесь для просмотра ссылки.
Спойлер: Показать содержимое

Теперь к пояснениям. Самая первые строки («Информативные команды» и «Авторы») — названия разделов помощи, они будут показываться при пролистывании и сверху страницы. Далее идут команды вида «Команда без префикса» — «Описание» — «Как употреблять».

. Самый последний раздел «Авторы» нельзя удалять, просто замените данные на свои («Имя» — «» — «Ник в телеге»), остальные можно дублировать до бесконечности (но до 10-12 команд на 1 раздел, если команд больше — можете бить на части, например, раздел «Информативные команды 1/2»)

. Также, на вашем сервере должны присутствовать эмодзи с названиями: arrow_back (стрелка влево), arrow_next (стрелка вправо), close (закрыть меню), refresh (перезагрузка), paper_stack (листочек бумаги). Если не хотите тратить время на создание иконок, можете написать мне в телегу (или по другим контактам), чтобы я добавил вас и вашего бота на свой сервак с эмодзи.

Источник: yougame.biz

Как мне написать обработчики событий/команд для моего бота Discord.js?

Я начал создавать бота Discord в Node.js, используя библиотеку Discord.js. Однако весь код содержится в одном индексном файле.

Как организовать команды и события в отдельные файлы и запускать их по мере необходимости?

11.06.2019 19:00

Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний.

Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не.

Проще говоря, компонент — это фабрика для создания элементов.

Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также.

Рейтинг
( Пока оценок нет )
Загрузка ...