80 lines
2.1 KiB
TypeScript
80 lines
2.1 KiB
TypeScript
import { ActivityType, PresenceUpdateStatus, Events } from "discord.js";
|
||
import { prisma } from "../../lib/prisma.ts";
|
||
|
||
export default {
|
||
name: Events.ClientReady,
|
||
once: true,
|
||
async execute(client) {
|
||
try {
|
||
const botData: Bot = await prisma.bot.findUnique({
|
||
where: {
|
||
id: 1,
|
||
},
|
||
});
|
||
const newStatus: string = botData.status;
|
||
const tmpType: string = botData.type;
|
||
let newType: ActivityType;
|
||
switch (tmpType) {
|
||
case "play":
|
||
newType = ActivityType.Playing;
|
||
break;
|
||
case "listen":
|
||
newType = ActivityType.Listening;
|
||
break;
|
||
case "watch":
|
||
newType = ActivityType.Watching;
|
||
break;
|
||
case "stream":
|
||
newType = ActivityType.Streaming;
|
||
break;
|
||
case "comptet":
|
||
newType = ActivityType.Competing;
|
||
break;
|
||
}
|
||
const tmpPresence: string = botData.presence;
|
||
let newPresence: PresenceUpdateStatus;
|
||
switch (tmpPresence) {
|
||
case "online":
|
||
newPresence = PresenceUpdateStatus.Online;
|
||
break;
|
||
case "idle":
|
||
newPresence = PresenceUpdateStatus.Idle;
|
||
break;
|
||
case "dnd":
|
||
newPresence = PresenceUpdateStatus.DoNotDisturb;
|
||
break;
|
||
case "invisible":
|
||
newPresence = PresenceUpdateStatus.Invisible;
|
||
break;
|
||
}
|
||
if (botData.type === "steam") {
|
||
client.user.setPresence({
|
||
status: newPresence,
|
||
activities: [
|
||
{
|
||
name: newStatus,
|
||
type: newType,
|
||
url: "https://twich.tv/EniumRaphael",
|
||
},
|
||
],
|
||
});
|
||
} else {
|
||
client.user.setPresence({
|
||
status: newPresence,
|
||
activities: [
|
||
{
|
||
name: newStatus,
|
||
type: newType,
|
||
},
|
||
],
|
||
});
|
||
}
|
||
} catch (err) {
|
||
console.error(
|
||
`\t⚠️ | Cannot get the database connection!\n\t\t(${err}).`,
|
||
);
|
||
return;
|
||
}
|
||
console.log(`✅ | ${client.user.username} is now running under TTS bot`);
|
||
},
|
||
};
|