Files
hexerade/src/events/voiceChannelJoin.ts
T
2026-08-11 11:16:21 +08:00

38 lines
1.1 KiB
TypeScript

// External Imports
import { CommandClient, Event, Member, GuildVoiceChannel } from "athena-prime";
// Internal Imports
import { Database } from "../shared/Database";
import { SetSeverity } from "../utils";
// ---------------
class VoiceChannelJoinEvent extends Event<CommandClient> {
event: string = 'voiceChannelJoin' as const;
async handle(context: CommandClient<any, any>, member: Member, channel: GuildVoiceChannel) {
const settings = await Database.GetOrCreateSettings(channel.guild.id);
if (!settings.voice_logs_channel_id) return;
await context.createMessage(settings.voice_logs_channel_id, {
embed: {
...SetSeverity('success'),
author: {
name: member.username,
icon_url: member.avatarURL
},
fields: [
{ name: 'Member', value: `${member.username} (${member.mention})`, inline: true },
{ name: 'Channel', value: `${channel.mention}`, inline: true },
{ name: 'Time', value: `<t:${new Date().toISOString()}>`, inline: true },
],
title: 'Joined Voice Channel'
}
});
}
}
export default new VoiceChannelJoinEvent('voiceChannelJoin');