38 lines
1.1 KiB
TypeScript
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'); |