Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите мне решить вопрос с кодом

Faradeyiskra Iskra Ученик (198), на голосовании 1 год назад
Я написал код для дискорд бота на javascript чтобы он проверял статус сервера по игре scp secret laboratory и отправлял сообщение в канал
1 их этих:
Сервер запущен
Сервер остановлен
Я не могу проверить статус вашего сервера
И у меня все время выходит третие сообщение помогите пожалуйста как мне эту ошибку решить
Хочу поставить на хост repl.it
Ошибок в консоли нету
Вот сам код:

Код на JavaScript для отправки уведомлений о запуске и остановке сервера SCP Secret Laboratory через Discord бота:

```javascript
const Discord = require("discord.js");
const axios = require("axios");

const client = new Discord.Client();
const ip = "IP_СЕРВЕРА";
const port = "ПОРТ_СЕРВЕРА";
const channelId = "ID_КАНАЛА_ДИСКОРД";

client.once("ready", () => {
console.log("Бот запущен!");
const channel = client.channels.cache.get(channelId);
if (channel) {
channel.send("Я бот Lima Games");
} else {
console.log("Не удалось найти канал для отправки сообщения.");
}

setInterval(checkServerStatus, 5000);
});

async function checkServerStatus() {
try {
const response = await axios.get(`https://api.battlemetrics.com/servers?filter[game]=scpsecretlaboratory&filter[gamePort]=${port}&filter[search]=${ip}`);
const server = response.data.data[0];

if (server && server.attributes.status === "running") {
console.log("Сервер включен.");
// Отправить уведомление о запуске сервера
const channel = client.channels.cache.get(channelId);
if (channel) {
channel.send("Сервер SCP Secret Laboratory был запущен.");
} else {
console.log("Не удалось найти канал для отправки сообщения.");
}
} else {
console.log("Сервер выключен.");
// Отправить уведомление об остановке сервера
const channel = client.channels.cache.get(channelId);
if (channel) {
channel.send("Сервер SCP Secret Laboratory был остановлен.");
} else {
console.log("Не удалось найти канал для отправки сообщения.");
}
}
} catch (error) {
console.log("Не удалось проверить статус сервера.");
const channel = client.channels.cache.get(channelId);
if (channel) {
channel.send("Я не смог проверить статус вашего сервера.");
} else {
console.log("Не удалось найти канал для отправки сообщения.");
}
}
}

client.login("ТОКЕН_БОТА");
```

Для работы этого кода вам понадобятся следующие пакеты и зависимости:

1. `discord.js` - для работы с Discord API. Установите, выполнив команду `npm install discord.js`.

2. `axios` - для выполнения HTTP-запросов к API Battlemetrics. Установите, выполнив команду `npm install axios`.

Обратите внимание, что вы должны заменить значения переменных `IP_СЕРВЕРА`, `ПОРТ_СЕРВЕРА`, `ID_КАНАЛА_ДИСКОРД` и `ТОКЕН_БОТА` на свои реальные значения.

Код будет проверять статус сервера каждые 5 секунд. Если бот не сможет проверить статус сервера, он отправит сообщение "Я не смог проверить статус вашего сервера" в указанный канал Discord.
Голосование за лучший ответ
Pandacrash Мудрец (13362) 1 год назад
Я написал код для дискорд бота на javascript
Тимур Овчаренко Ученик (164) 1 год назад
Нужен pyton
Тимур ОвчаренкоУченик (164) 1 год назад
если нужен код то держите:
import discord
import asyncio
import requests

client = discord.Client()
ip = "IP_СЕРВЕРА"
port = "ПОРТ_СЕРВЕРА"
channelId = "ID_КАНАЛА_ДИСКОРД"

@client.event
async def on_ready():
print("Бот запущен!")
channel = client.get_channel(int(channelId))
if channel:
await channel.send("Я бот Lima Games")
else:
print("Не удалось найти канал для отправки сообщения.")

while True:
await checkServerStatus()
await asyncio.sleep(5)
Тимур ОвчаренкоУченик (164) 1 год назад
async def checkServerStatus():

try:

response = await requests.get(f"https://api.battlemetrics.com/servers?filter[game]=scpsecretlaboratory&filter[gamePort]={port}&filter[search]={ip}")

server = response.json()["data"][0]



if server and server["attributes"]["status"] == "running":

print("Сервер включен.")

# Отправить уведомление о запуске сервера

channel = client.get_channel(int(channelId))

if channel:

await channel.send("Сервер SCP Secret Laboratory был запущен.")

else:

print("Не удалось найти канал для отправки сообщения.")

else:

print("Сервер выключен.")
Тимур ОвчаренкоУченик (164) 1 год назад
# Отправить уведомление об остановке сервера



channel = client.get_channel(int(channelId))



if channel:



await channel.send("Сервер SCP Secret Laboratory был остановлен.")



else:



print("Не удалось найти канал для отправки сообщения.")



except Exception as e:



print("Не удалось проверить статус сервера.")



channel = client.get_channel(int(channelId))



if channel:



await channel.send("Я не смог проверить статус вашего сервера.")



else:



print("Не удалось найти канал для отправки сообщения.")







client.run("ТОКЕН_БОТА")
Похожие вопросы