Гайд Как сделать Discord Бота на Javascript | Урок 2

Статус
В этой теме нельзя размещать новые ответы.
  • 258
  • 140
Сегодня я обещал поключить бота к гитхабу и сделать нашу первую команду.
Ну я собственно пока хуй знает как вам объяснить подключение к гитхабу, поэтому
Давай-те же начнём с команды
Первая часть

И так, поскольку в дискорде нету функции для команды как например в телеграме есть bot.command()
мы будем использовать создание сообщений

Идём в наш index.js и создаём стрелочную функцию для проверки создания сообщения

index.js:
client.on('messageCreate', message => {
    if (!message.content.startsWith(PREFIX) || message.author.bot) return;
    // Если сообщение не начинается с префикс или автор сообщения - бот, тогда мы ничего не делаем
    const args = message.content.slice(PREFIX.length).trim().split(/ +/);
    // Аргументы. Здесь мы слайсим сообщение включая саму команду. В итоге у нас получается массив с аргументами
    const command = args.shift().toLowerCase();
    // Сама команда с помощью которой мы будем запускать функцию
})

Дальше делаем саму команду, как и везде она будет ping

index.js:
if(command == "ping") {
    message.channel.send("Pong!")
}

1655113621826.png


Вуаля!

Возвращаемся в самое начало файла, где мы импортируем discord.js и добавляем MessageEmbed
index.js:
const { Client, Intents, Collection, MessageEmbed } = require('discord.js');

После чего пишем саму нашу команду

index.js:
if(command == "embed") {
    const embed = new MessageEmbed()
    .setTitle("Это титульник")
    .setDescription("А это описание")

    message.channel.send({content: "Это текст сообщения", embeds: [embed]})
}

1655114519005.png

Полный список конструкци у эмбеда можете глянуть здесь

После всех наших махинаций, файл index.js выглядит вот так
index.js:
const { Client, Intents, Collection, MessageEmbed } = require('discord.js');
const { TOKEN, PREFIX } = require("./data.json")
const client = new Client({intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MEMBERS,
    Intents.FLAGS.GUILD_MESSAGES,
    Intents.FLAGS.GUILD_PRESENCES
]});

client.on('ready', () => {
    console.log("Bot is ready!");
});

client.on('messageCreate', message => {
    if (!message.content.startsWith(PREFIX) || message.author.bot) return;
    const args = message.content.slice(PREFIX.length).trim().split(/ +/);
    const command = args.shift().toLowerCase();

    if(command == "ping") {
        message.channel.send("Pong!")
    }

    if(command == "embed") {
        const embed = new MessageEmbed()
            .setTitle("Это титульник")
            .setDescription("А это описание")

        message.channel.send({content: "Это текст сообщения", embeds: [embed]})
    }
})

client.login(TOKEN);

Всем спасибо на этом и всем пока
В следующем урок я объясню как сделать command handler и наверное гитхаб
 
Последнее редактирование:
  • Мне нравится
Реакции: LauX
  • 567
  • 98
скажи плиз расписание уроков и по каким дням учиться будем, мечтал себе бота забабахать
 
  • LauX
  • Заблокирован
  • 676
  • 12
  • 233
Контакты для связи отсутствуют.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • LauX
  • Заблокирован
  • 676
  • 12
  • 233
Контакты для связи отсутствуют.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Туториал годный, ты большой молодец. Продолжай в том же духе. Хотелось бы видеть более развёрнутые темы
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу