Intégration MongoDB + Fix export et amp
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Events } from 'discord.js'
|
||||
|
||||
module.exports = {
|
||||
export default {
|
||||
name: Events.Error,
|
||||
execute(error: any) {
|
||||
console.error(error)
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
import { Events, Guild } from 'discord.js'
|
||||
import dbGuildInit from '../../utils/dbGuildInit'
|
||||
|
||||
export default {
|
||||
name: Events.GuildCreate,
|
||||
async execute(guild: Guild) {
|
||||
console.log(`Joined ${guild.name} with ${guild.memberCount} members`)
|
||||
|
||||
let guildProfile = await dbGuildInit(guild)
|
||||
if (!guildProfile) return console.log(`An error occured while initializing database data for **${guild.name}** !`)
|
||||
|
||||
console.log(`Database data for new guild **${guildProfile.guildName}** successfully initialized !`)
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
import { Events, GuildMember } from 'discord.js'
|
||||
|
||||
module.exports = {
|
||||
name: Events.GuildMemberAdd,
|
||||
async execute(member: GuildMember) {
|
||||
if (member.guild.id !== '1086577543651524699') return
|
||||
member.guild.members.fetch().then(() => {
|
||||
var i = 0
|
||||
member.guild.members.cache.forEach(async member => { if (!member.user.bot) i++ })
|
||||
let channel = member.guild.channels.cache.get('1091140609139560508')
|
||||
if (!channel) return
|
||||
|
||||
console.log(channel.name)
|
||||
console.log(`${i} Gens Posés`)
|
||||
channel.setName('Changement...')
|
||||
channel.setName(`${i} Gens Posés`)
|
||||
}).catch(console.error)
|
||||
}
|
||||
import { Events, GuildMember } from 'discord.js'
|
||||
|
||||
export default {
|
||||
name: Events.GuildMemberAdd,
|
||||
async execute(member: GuildMember) {
|
||||
if (member.guild.id !== '1086577543651524699') return
|
||||
member.guild.members.fetch().then(() => {
|
||||
var i = 0
|
||||
member.guild.members.cache.forEach(async member => { if (!member.user.bot) i++ })
|
||||
let channel = member.guild.channels.cache.get('1091140609139560508')
|
||||
if (!channel) return
|
||||
|
||||
console.log(channel.name)
|
||||
console.log(`${i} Gens Posés`)
|
||||
channel.setName('Changement...')
|
||||
channel.setName(`${i} Gens Posés`)
|
||||
}).catch(console.error)
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
import { Events, GuildMember } from 'discord.js'
|
||||
|
||||
module.exports = {
|
||||
name: Events.GuildMemberRemove,
|
||||
async execute(member: GuildMember) {
|
||||
if (member.guild.id !== '1086577543651524699') return
|
||||
member.guild.members.fetch().then(() => {
|
||||
var i = 0
|
||||
member.guild.members.cache.forEach(async member => { if (!member.user.bot) i++ })
|
||||
let channel = member.guild.channels.cache.get('1091140609139560508')
|
||||
if (!channel) return
|
||||
|
||||
console.log(channel.name)
|
||||
console.log(`${i} Gens Posés`)
|
||||
channel.setName('Changement...')
|
||||
channel.setName(`${i} Gens Posés`)
|
||||
}).catch(console.error)
|
||||
}
|
||||
import { Events, GuildMember } from 'discord.js'
|
||||
|
||||
export default {
|
||||
name: Events.GuildMemberRemove,
|
||||
async execute(member: GuildMember) {
|
||||
if (member.guild.id !== '1086577543651524699') return
|
||||
member.guild.members.fetch().then(() => {
|
||||
var i = 0
|
||||
member.guild.members.cache.forEach(async member => { if (!member.user.bot) i++ })
|
||||
let channel = member.guild.channels.cache.get('1091140609139560508')
|
||||
if (!channel) return
|
||||
|
||||
console.log(channel.name)
|
||||
console.log(`${i} Gens Posés`)
|
||||
channel.setName('Changement...')
|
||||
channel.setName(`${i} Gens Posés`)
|
||||
}).catch(console.error)
|
||||
}
|
||||
}
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
import { Events, Guild } from 'discord.js'
|
||||
import dbGuildInit from '../../utils/dbGuildInit'
|
||||
import dbGuild from '../../schemas/guild'
|
||||
|
||||
export default {
|
||||
name: Events.GuildUpdate,
|
||||
async execute(oldGuild: Guild, newGuild: Guild) {
|
||||
console.log(`Guild ${oldGuild.name} updated`)
|
||||
|
||||
let guildProfile = await dbGuild.findOne({ guildId: newGuild.id })
|
||||
if (!guildProfile) {
|
||||
guildProfile = await dbGuildInit(newGuild)
|
||||
} else {
|
||||
guildProfile.guildName = newGuild.name
|
||||
guildProfile.guildIcon = newGuild.iconURL() ?? 'None'
|
||||
await guildProfile.save().catch(console.error)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,43 +1,46 @@
|
||||
import { Events, Interaction, ChatInputCommandInteraction, AutocompleteInteraction, ButtonInteraction } from 'discord.js'
|
||||
import editPlayer from '../utilsPlayer/edit'
|
||||
import playerButtons from '../utilsPlayer/buttons'
|
||||
|
||||
module.exports = {
|
||||
name: Events.InteractionCreate,
|
||||
async execute(interaction: Interaction) {
|
||||
//if (!interaction.isAutocomplete() && !interaction.isChatInputCommand() && !interaction.isButton()) return console.error(`Interaction ${interaction.commandName} is not a command.`)
|
||||
|
||||
if (interaction.isChatInputCommand()) {
|
||||
interaction = interaction as ChatInputCommandInteraction
|
||||
let chatInputCommand = interaction.client.commands.get(interaction.commandName)
|
||||
if (!chatInputCommand) return console.error(`No chat input command matching ${interaction.commandName} was found.`)
|
||||
|
||||
console.log(`Command '${interaction.commandName}' launched by ${interaction.user.tag}`)
|
||||
|
||||
try { await chatInputCommand.execute(interaction) }
|
||||
catch (error) { console.error(`Error executing ${interaction.commandName}:`, error) }
|
||||
}
|
||||
else if (interaction.isAutocomplete()) {
|
||||
interaction = interaction as AutocompleteInteraction
|
||||
let autoCompleteRun = interaction.client.commands.get(interaction.commandName)
|
||||
if (!autoCompleteRun) return console.error(`No autoCompleteRun matching ${interaction.commandName} was found.`)
|
||||
|
||||
console.log(`AutoCompleteRun '${interaction.commandName}' launched by ${interaction.user.tag}`)
|
||||
|
||||
try { await autoCompleteRun.autocompleteRun(interaction) }
|
||||
catch (error) { console.error(`Error autocompleting ${interaction.commandName}:`, error) }
|
||||
}
|
||||
else if (interaction.isButton()) {
|
||||
interaction = interaction as ButtonInteraction
|
||||
let button = interaction.client.buttons.get(interaction.customId)
|
||||
if (!button) return console.error(`No button id matching ${interaction.customId} was found.`)
|
||||
|
||||
console.log(`Button '${interaction.customId}' clicked by ${interaction.user.tag}`)
|
||||
|
||||
if (playerButtons.includes(interaction.customId)) { await editPlayer(interaction) }
|
||||
|
||||
try { await button.execute(interaction) }
|
||||
catch (error) { console.error(`Error clicking ${interaction.customId}:`, error) }
|
||||
}
|
||||
}
|
||||
import { Events, Interaction, ChatInputCommandInteraction, AutocompleteInteraction, ButtonInteraction } from 'discord.js'
|
||||
import playerButtons from '../../utilsPlayer/buttons'
|
||||
import editPlayer from '../../utilsPlayer/edit'
|
||||
|
||||
export default {
|
||||
name: Events.InteractionCreate,
|
||||
async execute(interaction: Interaction) {
|
||||
//if (!interaction.isAutocomplete() && !interaction.isChatInputCommand() && !interaction.isButton()) return console.error(`Interaction ${interaction.commandName} is not a command.`)
|
||||
|
||||
if (interaction.isChatInputCommand()) {
|
||||
interaction = interaction as ChatInputCommandInteraction
|
||||
|
||||
let chatInputCommand = interaction.client.commands.get(interaction.commandName)
|
||||
if (!chatInputCommand) return console.error(`No chat input command matching ${interaction.commandName} was found.`)
|
||||
|
||||
console.log(`Command '${interaction.commandName}' launched by ${interaction.user.tag}`)
|
||||
|
||||
try { await chatInputCommand.execute(interaction) }
|
||||
catch (error) { console.error(`Error executing ${interaction.commandName}:`, error) }
|
||||
}
|
||||
else if (interaction.isAutocomplete()) {
|
||||
interaction = interaction as AutocompleteInteraction
|
||||
|
||||
let autoCompleteRun = interaction.client.commands.get(interaction.commandName)
|
||||
if (!autoCompleteRun) return console.error(`No autoCompleteRun matching ${interaction.commandName} was found.`)
|
||||
|
||||
console.log(`AutoCompleteRun '${interaction.commandName}' launched by ${interaction.user.tag}`)
|
||||
|
||||
try { await autoCompleteRun.autocompleteRun(interaction) }
|
||||
catch (error) { console.error(`Error autocompleting ${interaction.commandName}:`, error) }
|
||||
}
|
||||
else if (interaction.isButton()) {
|
||||
interaction = interaction as ButtonInteraction
|
||||
|
||||
let button = interaction.client.buttons.get(interaction.customId)
|
||||
if (!button) return console.error(`No button id matching ${interaction.customId} was found.`)
|
||||
|
||||
console.log(`Button '${interaction.customId}' clicked by ${interaction.user.tag}`)
|
||||
|
||||
if (playerButtons.includes(interaction.customId)) { await editPlayer(interaction) }
|
||||
|
||||
try { await button.execute(interaction) }
|
||||
catch (error) { console.error(`Error clicking ${interaction.customId}:`, error) }
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+55
@@ -0,0 +1,55 @@
|
||||
import { Events, Client, ActivityType } from 'discord.js'
|
||||
import { useMainPlayer } from 'discord-player'
|
||||
import { connect } from 'mongoose'
|
||||
import chalk from 'chalk'
|
||||
import 'dotenv/config'
|
||||
|
||||
import dbGuildInit from '../../utils/dbGuildInit'
|
||||
import dbGuild from '../../schemas/guild'
|
||||
import replay from '../../utilsPlayer/replay'
|
||||
import disco from '../../utilsPlayer/disco'
|
||||
import rss from '../../utils/rss'
|
||||
|
||||
|
||||
export default {
|
||||
name: Events.ClientReady,
|
||||
once: true,
|
||||
async execute(client: Client) {
|
||||
console.log(chalk.blue(`[DiscordJS] Connected to Discord ! Logged in as ${client.user?.tag ?? 'unknown'}`))
|
||||
client.user?.setActivity('some bangers...', { type: ActivityType.Listening })
|
||||
|
||||
await useMainPlayer().extractors.loadDefault(ext => ext === 'YouTubeExtractor' || ext === 'SpotifyExtractor').then(() => console.log(chalk.blue('[Discord-Player] YouTube and Spotify extractors loaded.'))).catch(console.error)
|
||||
|
||||
let mongo_url = `mongodb://${process.env.MONGOOSE_USER}:${process.env.MONGOOSE_PASSWORD}@${process.env.MONGOOSE_HOST}/${process.env.MONGOOSE_DATABASE}`
|
||||
await connect(mongo_url).catch(console.error)
|
||||
|
||||
|
||||
let guilds = client.guilds.cache
|
||||
guilds.forEach(async guild => {
|
||||
let guildProfile = await dbGuild.findOne({ guildId: guild.id })
|
||||
|
||||
if (!guildProfile) guildProfile = await dbGuildInit(guild)
|
||||
if (guildProfile.guildPlayer?.replay?.enabled && guildProfile.guildPlayer?.replay?.textChannelId) await replay(client, guildProfile)
|
||||
|
||||
client.disco = { interval: {} as NodeJS.Timeout }
|
||||
client.disco.interval = setInterval(async () => {
|
||||
let guildProfile = await dbGuild.findOne({ guildId: guild.id })
|
||||
|
||||
if (guildProfile?.guildPlayer?.disco?.enabled) {
|
||||
let state = await disco(client, guildProfile)
|
||||
if (state === 'clear') clearInterval(client.disco.interval)
|
||||
}
|
||||
}, 3000)
|
||||
|
||||
client.rss = { interval: {} as NodeJS.Timeout }
|
||||
client.rss.interval = setInterval(async () => {
|
||||
let guildProfile = await dbGuild.findOne({ guildId: guild.id })
|
||||
|
||||
if (guildProfile?.guildRss?.enabled) {
|
||||
let state = await rss(client, guildProfile)
|
||||
if (state === 'clear') clearInterval(client.rss.interval)
|
||||
}
|
||||
}, 30000)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -1,59 +1,59 @@
|
||||
import { Events, VoiceState } from 'discord.js'
|
||||
|
||||
module.exports = {
|
||||
name: Events.VoiceStateUpdate,
|
||||
async execute(oldState: VoiceState, newState: VoiceState) {
|
||||
/*
|
||||
let oldMute = oldState.serverMute
|
||||
let newMute = newState.serverMute
|
||||
let oldDeaf = oldState.serverDeaf
|
||||
let newDeaf = newState.serverDeaf
|
||||
let oldChannel = oldState.channelId
|
||||
let newChannel = newState.channelId
|
||||
console.log(oldChannel)
|
||||
console.log(newChannel)
|
||||
let guild = newState.guild
|
||||
let member = newState.member
|
||||
let channel = guild.channels.cache.get('1076215868863819848')
|
||||
let angels = guild.members.cache.get('223831938346123275')
|
||||
if (oldChannel !== newChannel) {
|
||||
let executor = await logMoveOrKick('channel_id')
|
||||
//if (!executor) channel.send(`Impossible de savoir qui a déplacé <@${member.id}> !`)
|
||||
//else if (member.id === executor.id) channel.send(`<@${member.id}> s'est déplacé lui-même le con...`)
|
||||
//else {
|
||||
// channel.send(`<@${member.id}> a été mis en sourdine par <@${executor.id}> !`)
|
||||
//}
|
||||
} else if (!oldMute && newMute) {
|
||||
let executor = await logMuteOrDeaf('mute')
|
||||
if (!executor) channel.send(`Impossible de savoir qui a muté <@${member.id}> !`)
|
||||
else if (member.id === executor.id) channel.send(`<@${member.id}> s'est muté lui-même le con...`)
|
||||
else {
|
||||
channel.send(`<@${member.id}> a été muté par <@${executor.id}> !`)
|
||||
}
|
||||
} else if (!oldDeaf && newDeaf) {
|
||||
let executor = await logMuteOrDeaf('deaf')
|
||||
if (!executor) channel.send(`Impossible de savoir qui a mis en sourdine <@${member.id}> !`)
|
||||
else if (member.id === executor.id) channel.send(`<@${member.id}> s'est mis en sourdine lui-même le con...`)
|
||||
else {
|
||||
channel.send(`<@${member.id}> a été mis en sourdine par <@${executor.id}> !`)
|
||||
}
|
||||
}
|
||||
async function logMoveOrKick() {
|
||||
let auditLogs = await guild.fetchAuditLogs({ limit: 1, type: AuditLogEvent.MemberMove })
|
||||
console.log(auditLogs.entries.find(entry => { return entry }))
|
||||
let log = await auditLogs.entries.find(entry => { return entry.extra.channel.id === newChannel })
|
||||
console.log(log)
|
||||
if (!log) return undefined
|
||||
let executor = await guild.members.cache.get(log.executor.id)
|
||||
return executor
|
||||
}
|
||||
async function logMuteOrDeaf(type) {
|
||||
let auditLogs = await guild.fetchAuditLogs({ limit: 1, type: AuditLogEvent.MemberUpdate })
|
||||
let log = await auditLogs.entries.find(entry => { return entry.target.id === member.id && entry.changes[0].key === type && entry.changes[0].new === true })
|
||||
if (!log) return undefined
|
||||
let executor = await guild.members.cache.get(log.executor.id)
|
||||
return executor
|
||||
}
|
||||
*/
|
||||
}
|
||||
import { Events, VoiceState } from 'discord.js'
|
||||
|
||||
export default {
|
||||
name: Events.VoiceStateUpdate,
|
||||
async execute(oldState: VoiceState, newState: VoiceState) {
|
||||
/*
|
||||
let oldMute = oldState.serverMute
|
||||
let newMute = newState.serverMute
|
||||
let oldDeaf = oldState.serverDeaf
|
||||
let newDeaf = newState.serverDeaf
|
||||
let oldChannel = oldState.channelId
|
||||
let newChannel = newState.channelId
|
||||
console.log(oldChannel)
|
||||
console.log(newChannel)
|
||||
let guild = newState.guild
|
||||
let member = newState.member
|
||||
let channel = guild.channels.cache.get('1076215868863819848')
|
||||
let angels = guild.members.cache.get('223831938346123275')
|
||||
if (oldChannel !== newChannel) {
|
||||
let executor = await logMoveOrKick('channel_id')
|
||||
//if (!executor) channel.send(`Impossible de savoir qui a déplacé <@${member.id}> !`)
|
||||
//else if (member.id === executor.id) channel.send(`<@${member.id}> s'est déplacé lui-même le con...`)
|
||||
//else {
|
||||
// channel.send(`<@${member.id}> a été mis en sourdine par <@${executor.id}> !`)
|
||||
//}
|
||||
} else if (!oldMute && newMute) {
|
||||
let executor = await logMuteOrDeaf('mute')
|
||||
if (!executor) channel.send(`Impossible de savoir qui a muté <@${member.id}> !`)
|
||||
else if (member.id === executor.id) channel.send(`<@${member.id}> s'est muté lui-même le con...`)
|
||||
else {
|
||||
channel.send(`<@${member.id}> a été muté par <@${executor.id}> !`)
|
||||
}
|
||||
} else if (!oldDeaf && newDeaf) {
|
||||
let executor = await logMuteOrDeaf('deaf')
|
||||
if (!executor) channel.send(`Impossible de savoir qui a mis en sourdine <@${member.id}> !`)
|
||||
else if (member.id === executor.id) channel.send(`<@${member.id}> s'est mis en sourdine lui-même le con...`)
|
||||
else {
|
||||
channel.send(`<@${member.id}> a été mis en sourdine par <@${executor.id}> !`)
|
||||
}
|
||||
}
|
||||
async function logMoveOrKick() {
|
||||
let auditLogs = await guild.fetchAuditLogs({ limit: 1, type: AuditLogEvent.MemberMove })
|
||||
console.log(auditLogs.entries.find(entry => { return entry }))
|
||||
let log = await auditLogs.entries.find(entry => { return entry.extra.channel.id === newChannel })
|
||||
console.log(log)
|
||||
if (!log) return undefined
|
||||
let executor = await guild.members.cache.get(log.executor.id)
|
||||
return executor
|
||||
}
|
||||
async function logMuteOrDeaf(type) {
|
||||
let auditLogs = await guild.fetchAuditLogs({ limit: 1, type: AuditLogEvent.MemberUpdate })
|
||||
let log = await auditLogs.entries.find(entry => { return entry.target.id === member.id && entry.changes[0].key === type && entry.changes[0].new === true })
|
||||
if (!log) return undefined
|
||||
let executor = await guild.members.cache.get(log.executor.id)
|
||||
return executor
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import chalk from 'chalk'
|
||||
|
||||
export default {
|
||||
name: 'connected',
|
||||
async execute() {
|
||||
console.log(chalk.green('[Mongoose] Connected to MongoDB !'))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import chalk from 'chalk'
|
||||
|
||||
export default {
|
||||
name: 'connecting',
|
||||
async execute() {
|
||||
console.log(chalk.green('[Mongoose] Connecting to MongoDB...'))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import chalk from 'chalk'
|
||||
|
||||
export default {
|
||||
name: 'disconnected',
|
||||
async execute() {
|
||||
console.log(chalk.green('[Mongoose] Disconnected from MongoDB !'))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
import chalk from 'chalk'
|
||||
|
||||
export default {
|
||||
name: 'error',
|
||||
async execute(error: Error) {
|
||||
console.log(chalk.red('[Mongoose] An error occured with the database conenction :\n' + error))
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
import { GuildQueue, Track } from 'discord-player'
|
||||
import { PlayerMetadata } from '../../utilsPlayer/metadata'
|
||||
|
||||
export default {
|
||||
name: 'audioTrackAdd',
|
||||
async execute(queue: GuildQueue<PlayerMetadata>, track: Track) {
|
||||
// Emitted when the player adds a single song to its queue
|
||||
queue.metadata.channel.send(`Musique **${track.title}** de **${track.author}** ajoutée à la file d'attente !`)
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
import { GuildQueue, Track } from 'discord-player'
|
||||
import { PlayerMetadata } from '../../utilsPlayer/metadata'
|
||||
|
||||
export default {
|
||||
name: 'audioTracksAdd',
|
||||
async execute(queue: GuildQueue<PlayerMetadata>, track: Array<Track>) {
|
||||
// Emitted when the player adds multiple songs to its queue
|
||||
queue.metadata.channel.send(`Ajout de ${track.length} musiques à la file d'attente !`)
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
import { GuildQueue } from 'discord-player'
|
||||
|
||||
export default {
|
||||
name: 'debug',
|
||||
async execute(queue: GuildQueue, message: string) {
|
||||
// Emitted when the player queue sends debug info
|
||||
// Useful for seeing what state the current queue is at
|
||||
console.log(`Player debug event: ${message}`)
|
||||
}
|
||||
}
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
import { GuildQueue, Track } from 'discord-player'
|
||||
import { PlayerMetadata } from '../../utilsPlayer/metadata'
|
||||
import dbGuild from '../../schemas/guild'
|
||||
|
||||
export default {
|
||||
name: 'disconnect',
|
||||
async execute(queue: GuildQueue<PlayerMetadata>, track: Track) {
|
||||
// Emitted when the bot leaves the voice channel
|
||||
queue.metadata.channel.send("J'ai quitté le vocal !")
|
||||
|
||||
let guildProfile = await dbGuild.findOne({ guildId: queue.guild.id })
|
||||
if (!guildProfile) return console.log(`Database data for **${queue.guild.name}** does not exist !`)
|
||||
|
||||
let dbData = guildProfile.get('guildPlayer.replay')
|
||||
dbData['textChannelId'] = ''
|
||||
dbData['voiceChannelId'] = ''
|
||||
dbData['trackUrl'] = ''
|
||||
dbData['progress'] = ''
|
||||
|
||||
guildProfile.set('guildPlayer.replay', dbData)
|
||||
guildProfile.markModified('guildPlayer.replay')
|
||||
return await guildProfile.save().catch(console.error)
|
||||
}
|
||||
}
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
import { GuildQueue, Track } from 'discord-player'
|
||||
import { PlayerMetadata } from '../../utilsPlayer/metadata'
|
||||
|
||||
export default {
|
||||
name: 'emptyChannel',
|
||||
async execute(queue: GuildQueue<PlayerMetadata>, track: Track) {
|
||||
// Emitted when the voice channel has been empty for the set threshold
|
||||
// Bot will automatically leave the voice channel with this event
|
||||
queue.metadata.channel.send(`Je quitte le vocal car il est vide depuis trop longtemps.`)
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
import { GuildQueue, Track } from 'discord-player'
|
||||
import { PlayerMetadata } from '../../utilsPlayer/metadata'
|
||||
|
||||
export default {
|
||||
name: 'emptyQueue',
|
||||
async execute(queue: GuildQueue<PlayerMetadata>) {
|
||||
// Emitted when the player queue has finished
|
||||
queue.metadata.channel.send("File d'attente vide !")
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
import { GuildQueue } from 'discord-player'
|
||||
|
||||
export default {
|
||||
name: 'error',
|
||||
async execute(queue: GuildQueue, error: Error) {
|
||||
// Emitted when the player queue encounters error
|
||||
console.log(`General player error event: ${error.message}`)
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
import { GuildQueue } from 'discord-player'
|
||||
|
||||
export default {
|
||||
name: 'playerError',
|
||||
async execute(queue: GuildQueue, error: Error) {
|
||||
// Emitted when the audio player errors while streaming audio track
|
||||
console.log(`\u001b[1;31m Player error event: ${error.message}`)
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
import { GuildQueue, Track } from 'discord-player'
|
||||
import { PlayerMetadata } from '../../utilsPlayer/metadata'
|
||||
|
||||
export default {
|
||||
name: 'playerSkip',
|
||||
async execute(queue: GuildQueue<PlayerMetadata>, track: Track) {
|
||||
// Emitted when the audio player fails to load the stream for a song
|
||||
queue.metadata.channel.send(`Musique **${track.title}** de **${track.author}** passée !`)
|
||||
}
|
||||
}
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
import { GuildQueue, Track } from 'discord-player'
|
||||
import { PlayerMetadata } from '../../utilsPlayer/metadata'
|
||||
import dbGuild from '../../schemas/guild'
|
||||
|
||||
export default {
|
||||
name: 'playerStart',
|
||||
async execute(queue: GuildQueue<PlayerMetadata>, track: Track) {
|
||||
// Emitted when the player starts to play a song
|
||||
queue.metadata.channel.send(`Lecture de **${track.title}** de **${track.author}** !`)
|
||||
|
||||
let guildProfile = await dbGuild.findOne({ guildId: queue.guild.id })
|
||||
if (!guildProfile) return console.log(`Database data for **${queue.guild.name}** does not exist !`)
|
||||
|
||||
let dbData = guildProfile.get('guildPlayer.replay')
|
||||
dbData['trackUrl'] = track.url
|
||||
dbData['progress'] = '0'
|
||||
|
||||
guildProfile.set('guildPlayer.replay', dbData)
|
||||
guildProfile.markModified('guildPlayer.replay')
|
||||
return await guildProfile.save().catch(console.error)
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
import { Events, Client, ActivityType } from 'discord.js'
|
||||
import { useMainPlayer } from 'discord-player'
|
||||
import replay from '../utilsPlayer/replay'
|
||||
import disco from '../utilsPlayer/disco'
|
||||
import rss from '../utils/rss'
|
||||
import 'dotenv/config'
|
||||
|
||||
declare module "discord.js" {
|
||||
export interface Client {
|
||||
disco: { interval: NodeJS.Timeout },
|
||||
rss: { interval: NodeJS.Timeout }
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
name: Events.ClientReady,
|
||||
once: true,
|
||||
async execute(client: Client) {
|
||||
console.log(`Ready! Logged in as ${client.user?.tag ?? 'unknown'}`)
|
||||
client.user?.setActivity('some bangers...', { type: ActivityType.Listening })
|
||||
|
||||
await useMainPlayer().extractors.loadDefault(ext => ext === 'YouTubeExtractor' || ext === 'SpotifyExtractor').then(() => console.log('YouTube and Spotify extractors loaded.')).catch(console.error)
|
||||
|
||||
//if (process.env.DISCORD_MUSIC_CURRENT_TRACK) await replay(client)
|
||||
|
||||
client.disco = { interval: {} as NodeJS.Timeout }
|
||||
client.disco.interval = setInterval(async () => {
|
||||
let state = await disco(client)
|
||||
if (state === 'clear') clearInterval(client.disco.interval)
|
||||
}, 2000)
|
||||
|
||||
client.rss = { interval: {} as NodeJS.Timeout }
|
||||
client.rss.interval = setInterval(async () => {
|
||||
let state = await rss(client)
|
||||
if (state === 'clear') clearInterval(client.rss.interval)
|
||||
}, 30000)
|
||||
rss(client)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user