• Как сделать слеш команду в Discord.js боте?

    Surviavlist
    @Surviavlist
    Разработчик-любитель на Node.js
    Чтобы добавить слэш команду тебе нужно её создать и зарегистрировать
    Ответ написан
    Комментировать
  • Как исправить ошибку бота для дискорда?

    Surviavlist
    @Surviavlist
    Разработчик-любитель на Node.js
    Вставь в начале скрипта:
    const { Client } = require("discord.js")
    Ответ написан
    Комментировать
  • Как мне выдать роль по кнопке?

    Surviavlist
    @Surviavlist
    Разработчик-любитель на Node.js
    Ты можешь банально создать коллектор для ожидания нажатия кнопки:

    const { ComponentType } = require('discord.js') // Добавь в начало скрипта
    
    // Фильтр проверяет, нажал ли кнопку человек, вызвавший команду, где <i>i</i> — каждое нажатие
    const filter = i => {
    	i.deferUpdate();
    	return i === message.author.id && i.
    }
    
    //  replyMessage — сообщение, отправленное ботом
    let interaction = replyMessage.awaitMessageComponent({ filter: collectorFilter, componentType: ComponentType.Button, time: 60000 }) // time — время, которое коллектор будет ждать сообщение. Бот подождёт не более 60 секунд
    
    // Делай с interaction далее то, что потребуется. Проверь, какую кнопку нажал пользователь через customId и отвечай на взаимодействие


    Пример взят с discordjs.guide
    Ответ написан
    Комментировать
  • Как победить Cannot read properties of undefined (reading ..)?

    Surviavlist
    @Surviavlist
    Разработчик-любитель на Node.js
    Ты ничего не присвоил к своему videoPage, который передаёшь в конструктор:
    videoPageSteps = new VideoPageSteps(page, videoPage)

    Это просто пустой объект типа VideoPage. Если, конечно, я всё правильно увидел.
    Ответ написан
    Комментировать
  • Как прописать код, что бы использовался рандомный блок?

    Surviavlist
    @Surviavlist
    Разработчик-любитель на Node.js
    Не совсем понятен вопрос. Если ты используешь массив, то получи его случайный объект:
    const randomIndex = Math.floor( Math.random() * 5 ) + 1 // случайное число от 0 до 5

    В данном случае умножаем Math.random() на 5, так как эта функция возвращает значение от 0 до 1, которое может равняться 0, но никогда не будет равняться 1. То есть мы получим 0, 1, 2, 3 или 4, но не целым числом, поэтому используем Math.floor(), а потом добавляем единицу, таким образом получаем 1, 2, 3, 4 или 5.

    Так же можем добавить в прототип массива новую функцию:
    Array.prototype.random = function() {
      return this[Math.floor( Math.random() * this.length ) ]
    }
    
    const random = [1, 2, 3].random() // выберет 1, 2 или 3 случайнвм образом

    Так функция вернёт из своего массива случайное число, основываясь на его длине
    Ответ написан
  • Почему не работает команда npm start?

    Surviavlist
    @Surviavlist
    Разработчик-любитель на Node.js
    Его нужно было не только скачать, но ещё и установить. Ты можешь проверить переменные среды Windows, как вариант
    Ответ написан
    Комментировать
  • Как сделать, чтобы бот отвечал эмодзи на своё сообщение?

    Surviavlist
    @Surviavlist
    Разработчик-любитель на Node.js
    Для этого тебе необходимо получить само сообщение бота, например, при его отправке.

    client.on('messageCreate', async (message) => {
        const botMessage = await message.reply("Я бот") // Получение сообщения бота
        await botMessage.react('') // Добавление реакции на сообщение, которое только что отправил бот
    
        // await необходим для того, чтобы подождать, когда сообщение отправится в дискорде, чтобы на него можно было поставить реакцию
    })
    Ответ написан
    Комментировать