Может ли бот Disсord давать команды другому боту Discord?
Оформляя сервер Disсord, я столкнулась с проблемой, которую не могу решить. Бот1 отправляет сообщение с командой другому боту2, но другой бот на это не реагирует. Когда я отправляю эту же команду сама, то бот2 прекрасно выполняет команду. У меня вопрос, можно ли заставить взаимодействовать ботов друг с другом?
Александр, Я считаю что моя проблема чем-то схожая с этой.
Я хочу сделать чтобы мой бот смог изменить количество виртуальных денег определённого участника (а точнее чтобы мой бот как бы "передал" комманду чтобы другой бот, а именно UnbelievaBoat начислил виртуальные деньги на счёт другого участника)
P.S.
Я хочу сделать именно так, потому-что мне лень создавать целую экономику на моём боте, это немного сложнова-то как для меня. Также я понимаю что мои запросы звучат мягко говоря очень странно, но я надеюсь что я изложил свою проблему и вы поможете мне её решить может быть даже и другим способом
Connor_RK800, ответ будет аналогичный - у вас не получится это сделать.
UnbelievaBoat использует слэш-команды, использовать которые может только пользователь.
Connor_RK800, если ещё актуальна эта тема - оказалось, что у UnbelievaBoat есть API, делая запросы к которому можно получить/изменить различные данные (включая баланс пользователей).
как его использовать:
1. перейдите на сайт unbelievaboat.com
2. войдите в свой профиль с помощью Discord-аккаунта
3. перейдите на страницу unbelievaboat.com/applications/
4. в разделе "My applications" нажмите на "New application", введите Client ID вашего бота и нажмите "Save Changes".
5. скопируйте токен
6. перейдите по ссылке снизу (Authorization URL) и авторизируйте вашего бота на нужном сервере.
далее перейдите на сайт документации API UnbelievaBoat .
в разделе "Economy" слева, выберите нужную вам вкладку.
скопируйте код слева.
вставьте его в отдельный файл и запустите, предварительно заменив данные на свои.
API_TOKEN - скопированный ранее токен
guildID - ID сервера
userID - ID пользователя, данные которого хотите обновить/получить
Александр, Спасибо большое, но Как можно сделать что-то подобное на BDScript? Просто на сайте документации про это не написано, а я собирюсь сделать бота именно на BDScript, потому-что лично мне там легче.
существует множество типов HTTP-запросов для разных случаев, но для работы с UnbelievaBoat API вам понадобится всего 3 из них: GET, PUT и PATCH.
в качестве примера я покажу, как увеличить баланс определенного пользователя.
для этого нужно сделать PATCH-запрос, он так и отмечен на сайте документации.
выбираем соответствующую типу запроса функцию на сайте документации BDScript, в разделе "HTTP Requests" (в конкретном случае это $httpPatch[url;(optional) request's body])
добавляем в [] нужные данные для запроса.
url - это ссылка к UnbelievaBoat API, к которому собираемся сделать запрос.
чтобы получить её, на сайте документации перейдите в раздел "PATCH User Balance", укажите в подразделах "Path Params" , "Body Params" и "Authentication" нужные вам данные (в последнем нужно указать API токен) и в окне с кодом, в правом верхнем углу нажмите на стрелку и выберите "fetch".
после чего скопируйте ссылку внутри fetch() без кавычек.
request's body - это тело запроса, в котором указываются основные данные, которые пойдут к API вместе с ним.
чтобы его получить, нужно скопировать значение ключа body в объекте options, без JSON.stringify().
т.е, если вы допустим хотите увеличить баланс пользователя на 500 единиц, значение ключа body будет JSON.stringify({cash: 500}), без JSON.stringify() это {cash: 500}.
далее, нужно это значение перевести в формат JSON - это можно сделать на любом сайте, допустим, на этом (только укажите внизу, в "Converter Options", "JSON indent spacing" 0).
указываем HTTP-заголовок с помощью функции $httpAddHeader[header name;header value]: $httpAddHeader[Authorization;ваш API_token].
итоговый код:
$httpAddHeader[Authorization;ваш API_token]
$httpPatch[ссылка к UnbelievaBoat API;тело запроса]