Гайд Получение информации о игровом сервере в дискорд

Начинающий
Статус
Оффлайн
Регистрация
18 Июн 2020
Сообщения
15
Реакции[?]
1
Поинты[?]
0
Привет, перейдем сразу к делу.

Суть бота:
Вывод информации о сервере начиная от названия заканчивая списком игроков.

Что нам потребуется?
- NodeJS
- Пару модулей
- Бот Дискорд

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

- Авторизовываемся под своим аккаунтом и создаем бота.
- В категории BOT нам потрубется TOKEN, но это позже.
- Чтобы добавить бота на свой сервер, нужно зайти в категорию OAuth2 затем в URL Generator, и выбрать Bot, а затем Administrator, и ниже будет ссылка.
Для себя в любом удобно месте создавай папку, открывай по этому пути CMD, и пиши в нее следующие команды по очереди.
npm install discord.js
npm install gamedig
npm init
Когда напишешь npm init жми просто Enter везде.
Создаем файл index.js и в него вставляем следующий код
code:
const gamedig = require("gamedig") // Подключаем модуль gamedig
const { Client, GatewayIntentBits, SlashCommandBuilder, EmbedBuilder } = require("discord.js") // Подключаем модуль Discord.JS, а с ним некоторый хлам
const client = new Client({ // Создаем новый экземпляр для взаимодействия с DISCORD API
    intents: [ // Определяем набор намерений
        GatewayIntentBits.Guilds, // Получаем информацию о серверах
        GatewayIntentBits.GuildMessages, // Получаем текстовые сообщения в чатах
    ]
})

const server = new SlashCommandBuilder() // Создаем слэш-команду
    .setName("server") // Задаем название команде
    .setDescription("test") // Задаем описание команде


client.on("ready", () => { // Когда подключились к Discord
    console.log(`Success loaded - ${client.user.tag}`) // В консоль выводим сообщение с названием вашего бота

    client.application.commands.create(server.toJSON()) // Отправляет запрос на создание команды в DISCORD API
})



client.on('interactionCreate', async interaction => {
    if (!interaction.isCommand()) return // Проверяем является ли взаимодействие командой в контекте интерфейса ботa

    if(interaction.commandName == "server") // Если введеная команда равна значению в кавычках, будет ответ
    {
        gamedig.query({ // Выполняем запрос и получаем данные о сервере
            type: "rust", // Вводим тип игры
            host: "small.rustoria.uk", // Вводим IP сервера
        }).then ( async (state) => { // Вызывается после успешного запроса
            console.log(state) // Выведет в консоль все данные о сервере
            const embed = new EmbedBuilder() // Создаем Embed
                .setTitle("Сервер") // Задаем заголок Embed'у
                .setColor("Aqua") // Задаем цвет Embed'у
                .setDescription(`Name: ${state.name}\nPlayers - ${state.raw.numplayers}/${state.maxplayers}`) // Задаем цвет Embed'у
            await interaction.reply({embeds: [embed]}) // При успешном запросе бот ответит на ваше сообщение
        }).catch((error) => { // Вызывается если запрос не удался
            console.error(error) // Выведет ошибку в консоль
            console.log("Server offline") // Выведет в консоль текст
        })
    }
})
client.login("токен бота с сайта") // Тут токен бота
- В 29 строке пишешь игру которая тебе нужна -
Пожалуйста, авторизуйтесь для просмотра ссылки.

- В 30 строке пишем IP сервера который вам нужен.
- В 44 строке пишем токен бота который получаем на сайте дискорд(он выше)

Чтобы запустить всю эту кашку в консоле пиши следующую команду - node index.js

Если все правильно сделано и в консоли не вывело ошибок,
на вашем сервере пишете команду /server и получите маленькую информацию о сервере.
Для лучше понимания модуля, советую ознакомиться с Гитхабом модуля -
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Сверху Снизу