Гайд Discord активность бота

siwage

Активный
Автор темы
188
65
Привет, сегодня покажу как сделать вот такую активность бота(пишется онлайн сервера)
1683570351582.png

Зачем оно надо? Я не знаю, хай лежит на черный день.


Чтобы установить Node.js, тебе нужно перейти на сайт > Node.js и скачать "Текущую(Current)"
Думаю не заблудишься в установщике его.
- Переходим на сайт > Discord Developer Portal и логинимся под своим аккаунтом дискорд.
- Переходим во вкладку > Applications
- Во вкладке Applications жмем кнопку > New Application
- Пишем название своему спиногрызу
- Когда создали бота, переходим во вкладку - Bot
- Во вкладке Bot жмем кнопку - Reset Token и копируем его до перед последнего этапа.
- Создаем папку в удобном тебе месте, с удобным тебе именем
- В этой папке открывай CMD, если не знаешь как, жми вот эту на это поле в проводнике и пиши туда cmd
1683570818392.png

- В консоль пиши, такие команды

code:
npm install discord.js
npm install samp-query
npm init
Когда написал npm init, просто жми enter особо роли не сыграет
Теперь создавай файл index.js и открывай его любым тебе редактором
code:
const { Client, GatewayIntentBits, ActivityType } = require ('discord.js') // Подключаем библиотеку Discord JS
const query = require("samp-query"); // Подключаем библиотеку samp-query
const client = new Client({ intents: [GatewayIntentBits.Guilds]}) // Какие-то события, английские буквы какие-то, оно тебе не надо пока-что

const options = { // Список с IP'ом сервера и его портом.
    host: "185.169.134.172",
    port: 7777
}

// Создаем фукнцию переменную setServerPresence, в которой получаем информацию о сервере и устанавливаем активность.
const setServerPresence = () => query({host: options.host, port: options.port}, (err, response) =>
{
    if (err) return console.error(err) // Если будет ошибка выведет ее в консоль
    client.user.setPresence({ // Устанавливаем присутствие
        activities: [{ name: `${response.online}/${response.maxplayers}`, type: ActivityType.Playing}], // Тут уже пишем что будет отображатся
        // Playing можно поменять на >  Listening, Playing, Streaming, Watching

        // Это статус пользователя в данный момент "Не беспокоить", можешь поменять на другие.
        status: 'dnd',
        // online - в сети(зеленый будет)
        // idle - афк(желтый будет)
        // offline - не в сети(серый будет)
        // dnd - не беспокоить(красненький)
    });
})

client.on('ready', () => { // Тут функция когда бот готов
    console.log(`Успешно загружен ${client.user.tag}`) // Выведет сообщение в консоль, в моем случаи "Успешно загружен Kingman#6203"

    setServerPresence() // Вызываем функцию
    setInterval(setServerPresence, 5000) // Вызываем функцию setServerPresence каждые 5 секунд.
});
client.login("тут токен бота который копировал") // Здесь фигачишь токен бота
Если ты консоль не закрывал, пиши такую команду
command:
node index.js
Если у тебя название файла не index.js, пиши название файла которое у тебя.




 

riverya4life

Известный
393
170
Немного не понятно, setInterval это кд обновления активности бота? Если да, то бот будет падать из-за нагрузки на API (я оптимально ставлю 10-15 минут на обновление)
 

siwage

Активный
Автор темы
188
65
Немного не понятно, setInterval это кд обновления активности бота? Если да, то бот будет падать из-за нагрузки на API (я оптимально ставлю 10-15 минут на обновление)
setInterval позволяет вызывать функцию регулярно, повторяя вызов через определённый интервал времени
 

Richard_Danly

Известный
468
202
А как сделать чтобы бот был вечно в сети(Даже если я выключил пк)