34 lines
1.4 KiB
TypeScript
Executable File
34 lines
1.4 KiB
TypeScript
Executable File
import { SlashCommandBuilder, ChatInputCommandInteraction, GuildMember } from 'discord.js'
|
|
import { getVoiceConnection, joinVoiceChannel } from '@discordjs/voice'
|
|
|
|
export default {
|
|
data: new SlashCommandBuilder()
|
|
.setName('papa')
|
|
.setDescription('Si papa m\'appelle, je le rejoins !'),
|
|
async execute(interaction: ChatInputCommandInteraction) {
|
|
if (interaction.user.id !== '223831938346123275') return interaction.reply({ content: 'T\'es pas mon père, dégage !' })
|
|
|
|
let guild = interaction.guild
|
|
if (!guild) return interaction.reply({ content: 'Je ne peux pas rejoindre ton vocal en message privé, papa !' })
|
|
|
|
let member = interaction.member as GuildMember
|
|
|
|
let botChannel = guild.members.me?.voice.channel
|
|
let papaChannel = member.voice.channel
|
|
|
|
if (!papaChannel && botChannel) {
|
|
const voiceConnection = getVoiceConnection(guild.id);
|
|
if (voiceConnection) voiceConnection.destroy()
|
|
return interaction.reply({ content: 'Je quitte le vocal, papa !' })
|
|
}
|
|
else if (papaChannel && (!botChannel || botChannel.id !== papaChannel.id)) {
|
|
joinVoiceChannel({
|
|
channelId: papaChannel.id,
|
|
guildId: papaChannel.guild.id,
|
|
adapterCreator: papaChannel.guild.voiceAdapterCreator,
|
|
})
|
|
return interaction.reply({ content: 'Je rejoins ton vocal, papa !' })
|
|
}
|
|
else return interaction.reply({ content: 'Je suis déjà dans ton vocal, papa !' })
|
|
}
|
|
} |