Update index.js
This commit is contained in:
parent
b3fbe4c38e
commit
154ab7554f
22
index.js
22
index.js
@ -4,10 +4,11 @@ const randomColor = require('randomcolor');
|
||||
const config = require('./config.json');
|
||||
|
||||
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
|
||||
let lastOnlineTime = Date.now();
|
||||
let hasNotifiedOffline = false;
|
||||
|
||||
client.once('ready', async () => {
|
||||
console.log(`Logged in as ${client.user.tag}!`);
|
||||
|
||||
const channel = await client.channels.fetch(config.channelId);
|
||||
if (!channel) {
|
||||
console.error("Channel not found");
|
||||
@ -32,6 +33,9 @@ client.once('ready', async () => {
|
||||
const response = await axios.get(config.apiUrl, { timeout: 10000 });
|
||||
const { game, players, max_players, version, map, name } = response.data;
|
||||
|
||||
lastOnlineTime = Date.now();
|
||||
hasNotifiedOffline = false;
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(randomColor({ luminosity: 'bright', hue: 'rainbow' }))
|
||||
.setTitle('Server Status')
|
||||
@ -44,19 +48,27 @@ client.once('ready', async () => {
|
||||
{ name: 'Players', value: `${players}/${max_players}`, inline: true }
|
||||
)
|
||||
.setFooter({ text: `Last updated: ${new Date().toLocaleTimeString()}` });
|
||||
|
||||
await message.edit({ embeds: [embed] });
|
||||
|
||||
} catch (error) {
|
||||
console.error("Failed to fetch server data:", error);
|
||||
const timeSinceOnline = Date.now() - lastOnlineTime;
|
||||
const minutesOffline = Math.floor(timeSinceOnline / (1000 * 60));
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(randomColor({ luminosity: 'bright', hue: 'rainbow' }))
|
||||
.setColor('#FF0000')
|
||||
.setTitle('Server Status')
|
||||
.setDescription("Failed to fetch server data.")
|
||||
.setDescription(`Server is offline!\nTime since last online: ${minutesOffline} minutes`)
|
||||
.setFooter({ text: `Last updated: ${new Date().toLocaleTimeString()}` });
|
||||
|
||||
await message.edit({ embeds: [embed] });
|
||||
|
||||
if (minutesOffline >= 20 && !hasNotifiedOffline) {
|
||||
await channel.send({ content: '@here Server has been offline for 20 minutes!' });
|
||||
hasNotifiedOffline = true;
|
||||
}
|
||||
}
|
||||
}, config.updateInterval);
|
||||
});
|
||||
|
||||
client.login(config.token);
|
||||
client.login(config.token);
|
Loading…
x
Reference in New Issue
Block a user