uptime thing part 1

This commit is contained in:
rainydevzz 2025-03-20 13:26:24 -07:00
parent df471cfe9d
commit 6b5ec7b0e7
3 changed files with 30 additions and 0 deletions

3
env.d.ts vendored
View File

@ -7,5 +7,8 @@ module "bun" {
BAD_ROLE: string; BAD_ROLE: string;
BOT_ROLE: string; BOT_ROLE: string;
BOT_CHANNEL: string; BOT_CHANNEL: string;
OWNER: string;
SCYTHE_CHANNEL: string;
UPTIME_MESSAGE: string;
} }
} }

15
src/commands/uptime.ts Normal file
View File

@ -0,0 +1,15 @@
import type { CommandInteraction, TextChannel } from "discord.js";
import { Discord, Slash } from "discordx";
@Discord()
export class Uptime {
@Slash({name: "uptime-setup", description: "set up uptime cmd"})
async uptime(inter: CommandInteraction) {
if(inter.user.id != Bun.env.OWNER) {
await inter.reply("you cannot run this command :p");
return
}
const channel = inter.client.channels.cache.get(Bun.env.SCYTHE_CHANNEL) as TextChannel;
await channel.send(`bot is up, last ping: <t:${Date.now()}:f> | if the ping was more than 1 minute ago, cosmic needs to check the bot lol :3`)
}
}

12
src/utils/uptime-loop.ts Normal file
View File

@ -0,0 +1,12 @@
import type { Client } from "discordx";
import { sleep } from "./underage"
import type { TextChannel } from "discord.js";
export const uptimeLoop = async (client: Client) => {
while(true) {
await sleep(30 * 1000);
const channel = client.channels.cache.get(Bun.env.SCYTHE_CHANNEL) as TextChannel;
const msg = await channel.messages.fetch(Bun.env.UPTIME_MESSAGE);
await msg.edit(`bot is up, last ping: <t:${Date.now()}:f> | if the ping was more than 1 minute ago, cosmic needs to check the bot lol :3`)
}
}