В этом руководстве создаётся бот с одной слэш-командой, /ping. Сначала вам нужны приложение Discord и токен бота: Как создать Discord-бота и получить его токен.
Файлы
Создайте эти файлы на своём компьютере.
package.json
{
"name": "my-bot",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"discord.js": "^14.16.0"
}
}
index.js
const { Client, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');
const token = process.env.DISCORD_TOKEN;
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
const commands = [new SlashCommandBuilder().setName('ping').setDescription('Replies with pong')];
client.once('ready', async () => {
const rest = new REST({ version: '10' }).setToken(token);
await rest.put(Routes.applicationCommands(client.user.id), { body: commands.map(c => c.toJSON()) });
console.log(`Logged in as ${client.user.tag}`);
});
client.on('interactionCreate', async (interaction) => {
if (!interaction.isChatInputCommand()) return;
if (interaction.commandName === 'ping') await interaction.reply('pong');
});
client.login(token);
Боту нужен только интент Guilds, поэтому включать привилегированные интенты не нужно.
Запустите бота на PlayNHost
- Откройте сервер бота в панели. Новый сервер для бота стартует как Node.js Bot.
- В Files загрузите
index.jsиpackage.json. Не загружайтеnode_modules: сервер установит пакеты сам. - В Настройки, Настройки игры проверьте, что в поле Основной файл указан
index.js, и вставьте токен в Токен Discord-бота. - Откройте Console и запустите сервер. При первом запуске устанавливается discord.js, поэтому он длится чуть дольше. Когда вы увидите
Logged in as ..., бот онлайн. - В Discord введите
/ping. Если команда не появляется, см. Discord-бот онлайн, но не отвечает.
Следующие шаги
- Храните секреты в поле панели, а не в файле: Как защитить токен вашего Discord-бота.
- Сохраняйте данные в базе данных: Как использовать базу данных с Discord-ботом.
- Развёртывайте из GitHub и обновляйте при каждом перезапуске: Как развернуть и обновлять Discord-бота из GitHub.





