Так как не нашел на данном форуме маунал/урок/пример кода(на JS), с помощью которого можно было бы интегрировать бота Discord, напишу мануал.
Перед началом работы, нужно создать самого "бота":
1. Переходим на Discord Developers App, авторизируемся.
2. Создание бота
Для создания приложения - нажимаем на "New Application"
Вводим название, выбираем команду разработки если таковая у вас имеется.
После создания, в левом меню выбираем Bot
Создаем бота нажатием на add bot
После создания, копируем токен бота
Приглашаем бота
3. Открываем среду разработки(WebStorm || Visual Code и т.п).
4. Через среду разработки открываем папку server-files в директории RAGEMP
5. В терминале, либо в cmd, загружаем автокомплит rage mp в папку с сервером, любая ссылка(взято с wiki.rage.mp)
Не забываем сначала инициализировать проект с помощью npm init -y
8. В папке packages так же для удобства создадим папку discord, а в ней еще один index.js
9.В index, созданный на 7 шаге, вписываем
Вывод сообщения из игры в дискорд
Вывод сообщения из дискорд в игру
11. Проверяем
Пишем сообщение в дискорде - получаем сообщение в чате
Пишем в игре команду - получаем сообщение в дискорде
Надеюсь расписал все понятно! Удачного кодинга. Жду комментарии с критикой.
Перед началом работы, нужно создать самого "бота":
1. Переходим на Discord Developers App, авторизируемся.
2. Создание бота
Для создания приложения - нажимаем на "New Application"
Вводим название, выбираем команду разработки если таковая у вас имеется.
После создания, в левом меню выбираем Bot
Создаем бота нажатием на add bot
После создания, копируем токен бота
Приглашаем бота
3. Открываем среду разработки(WebStorm || Visual Code и т.п).
4. Через среду разработки открываем папку server-files в директории RAGEMP
5. В терминале, либо в cmd, загружаем автокомплит rage mp в папку с сервером, любая ссылка(взято с wiki.rage.mp)
Не забываем сначала инициализировать проект с помощью npm init -y
6. Дополнительно загружаем discord.js:Install the following Node.js packages with NPM:
- npm install --save-dev github:CocaColaBear/types-ragemp-s#master or npm install --save-dev https://github.com/CocaColaBear/types-ragemp-s/tarball/master
- npm install --save-dev github:CocaColaBear/types-ragemp-c#master or npm install --save-dev https://github.com/CocaColaBear/types-ragemp-c/tarball/master
7. После успешной установки компонентов, переходим в папку packages и создаем там файл index.jsnpm install discord.js
8. В папке packages так же для удобства создадим папку discord, а в ней еще один index.js
9.В index, созданный на 7 шаге, вписываем
10. В Index.js, созданном на 8 шаге, вписываем следующееrequire('./discord/index')
JavaScript:
const Discord = require('discord.js')
const client = new Discord.Client()
const webHook = new Discord.WebhookClient('id', 'token') // Не нужно, если вы хотите выводить просто сообщение от бота
// Задаем webhook и присваиваем id и токен созданного вебхука: https://discord.com/api/webhooks/id/token
client.on('ready', () => { // Событие при запуске бота
console.log('Дискорд бот запущен') // В моем случае - выведется в консоль данная строка
})
JavaScript:
mp.events.addCommand('a', (player, fullText) => { // Создаем команду /a, которая принимает в себя обязательно player и полный текст сообщения.
if(!fullText) return player.notify('~r~Для отправки сообщения, введите текст!') // Проверка, имеется ли текст после ввода команды
// client.channels.cache.get('843538101938290728').send(fullText) - Используем для того что бы отправить просто текст в чат discord
webHook.send('rudepohui', { // Задействуем вебхук и отправляем сообщение
username: player.name, // Имя вебхука, в моем случае - никнейм игрока
avatarURL: `https://a.rsg.sc/n/${player.socialClub}`, // Картинка вебхука, в моем случае, аватарка игрока в SoicalClub
content: fullText // Собственно сам текст, который выведется
})
})
JavaScript:
client.on('message', (message) => { // Событие, когда кто то отправляет в канал дискорд сообщение
if(message.author.bot) return // Проверяем, является ли автор сообщения ботом
if(message.channel.id != '843538101938290728') return // Проверяем, находится ли сообщение в нужном нам канале
mp.players.forEach((player) => { // Отправляем игроку в чат сообщение, с любым условием, например if(player.adminLevel >= 1).
player.outputChatBox(`${message.author.username}: ${message.content}`); // Сам вывод сообщения, в моем случае без условия
})
})
client.login('token') // Токен бота, который мы скопировали
Пишем сообщение в дискорде - получаем сообщение в чате
Пишем в игре команду - получаем сообщение в дискорде
Надеюсь расписал все понятно! Удачного кодинга. Жду комментарии с критикой.