mirror of
https://github.com/musix-org/musix-oss
synced 2024-11-10 05:10:17 +00:00
new event handling
This commit is contained in:
parent
2ca0306928
commit
16a5e4ea6d
@ -42,6 +42,14 @@ module.exports = {
|
||||
var video = await youtube.getVideoByID(videos[0].id);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
if (err.code === 403) {
|
||||
if (client.config.api_key === client.config.api_key2) {
|
||||
client.config.api_key = client.config.api_key3;
|
||||
} else {
|
||||
client.config.api_key = client.config.api_key2;
|
||||
}
|
||||
return msg.channel.send(client.messages.quotaReached);
|
||||
}
|
||||
return msg.channel.send(client.messages.noResults);
|
||||
}
|
||||
}
|
||||
|
13
commands/savedb.js
Normal file
13
commands/savedb.js
Normal file
@ -0,0 +1,13 @@
|
||||
module.exports = {
|
||||
name: 'savedb',
|
||||
alias: 'save',
|
||||
usage: '',
|
||||
description: 'save the database',
|
||||
onlyDev: true,
|
||||
permission: 'dev',
|
||||
category: 'util',
|
||||
async execute(msg, args, client, Discord, prefix, command) {
|
||||
client.funcs.saveDB(client);
|
||||
msg.channel.send(client.messages.dbSaved);
|
||||
}
|
||||
};
|
@ -38,21 +38,8 @@ module.exports = {
|
||||
}
|
||||
console.log(`- Activated - Shard: ${client.shard.ids} -`);
|
||||
setInterval(async () => {
|
||||
if (client.config.saveDB && !client.config.devMode) {
|
||||
console.log('DB saved');
|
||||
client.guilds.cache.forEach(guild => {
|
||||
client.db.collection('guilds').doc(guild.id).set({
|
||||
prefix: client.global.db.guilds[guild.id].prefix,
|
||||
defaultVolume: client.global.db.guilds[guild.id].defaultVolume,
|
||||
permissions: client.global.db.guilds[guild.id].permissions,
|
||||
dj: client.global.db.guilds[guild.id].dj,
|
||||
djrole: client.global.db.guilds[guild.id].djrole,
|
||||
startPlaying: client.global.db.guilds[guild.id].startPlaying,
|
||||
//bass: client.global.db.guilds[guild.id].bass,
|
||||
});
|
||||
});
|
||||
}
|
||||
if (client.config.dblApi && !client.config.devMode) dbl.postStats(client.guilds.size);
|
||||
client.funcs.saveDB(client);
|
||||
if (client.config.dblApi && !client.config.devMode) dbl.postStats(client.guilds.cache.size);
|
||||
}, 1800000);
|
||||
setInterval(() => {
|
||||
client.funcs.ffmpeg(client, Discord);
|
19
events/events.js
Normal file
19
events/events.js
Normal file
@ -0,0 +1,19 @@
|
||||
module.exports = function (client) {
|
||||
const Discord = require('discord.js');
|
||||
const events = './clientEvents/';
|
||||
client.on('ready', () => {
|
||||
require(`${events}ready`).execute(client, Discord);
|
||||
});
|
||||
client.on('message', (msg) => {
|
||||
require(`${events}msg`).execute(client, msg, Discord);
|
||||
});
|
||||
client.on('guildCreate', (guild) => {
|
||||
require(`${events}guildCreate`).execute(client, guild);
|
||||
});
|
||||
client.on('voiceStateUpdate', (oldState, newState) => {
|
||||
require(`${events}voiceStateUpdate`).execute(client, oldState, newState);
|
||||
});
|
||||
client.on('error', (error) => {
|
||||
client.channels.fetch(client.config.debug_channel).send(`Error: ${error} on shard: ${client.shard}`);
|
||||
});
|
||||
}
|
@ -1,10 +1,9 @@
|
||||
const { Client, Collection } = require('discord.js');
|
||||
const Discord = require('discord.js');
|
||||
const admin = require('firebase-admin');
|
||||
const serviceAccount = require('./config/serviceAccount.json');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const events = '../events/';
|
||||
const events = require('../events/events.js');
|
||||
|
||||
module.exports = class extends Client {
|
||||
constructor() {
|
||||
@ -12,6 +11,10 @@ module.exports = class extends Client {
|
||||
disableEveryone: true,
|
||||
disabledEvents: ['TYPING_START']
|
||||
});
|
||||
|
||||
admin.initializeApp({
|
||||
credential: admin.credential.cert(serviceAccount),
|
||||
});
|
||||
this.commands = new Collection();
|
||||
this.commandAliases = new Collection();
|
||||
this.settingCmd = new Collection();
|
||||
@ -20,8 +23,14 @@ module.exports = class extends Client {
|
||||
this.dispatcher = {};
|
||||
this.config = require('./config/config.js');
|
||||
this.messages = require('./config/messages.js');
|
||||
this.dispatcher.finish = require('../events/dispatcher/finish.js');
|
||||
this.dispatcher.error = require('../events/dispatcher/error.js');
|
||||
this.db = admin.firestore();
|
||||
this.db.FieldValue = require('firebase-admin').firestore.FieldValue;
|
||||
this.dispatcher.finish = require('../events/dispatcherEvents/finish.js');
|
||||
this.global = {
|
||||
db: {
|
||||
guilds: {},
|
||||
},
|
||||
};
|
||||
|
||||
fs.readdirSync(path.join(__dirname, 'funcs')).forEach(filename => {
|
||||
this.funcs[filename.slice(0, -3)] = require(`./funcs/${filename}`);
|
||||
@ -43,31 +52,7 @@ module.exports = class extends Client {
|
||||
this.config.token = this.config.devToken;
|
||||
}
|
||||
|
||||
admin.initializeApp({
|
||||
credential: admin.credential.cert(serviceAccount),
|
||||
});
|
||||
|
||||
this.db = admin.firestore();
|
||||
|
||||
this.global = {
|
||||
db: {
|
||||
guilds: {},
|
||||
},
|
||||
};
|
||||
|
||||
this.db.FieldValue = require('firebase-admin').firestore.FieldValue;
|
||||
|
||||
this.on('ready', () => {
|
||||
require(`${events}ready`).execute(this, Discord);
|
||||
}).on('message', (msg) => {
|
||||
require(`${events}msg`).execute(this, msg, Discord);
|
||||
}).on('guildCreate', (guild) => {
|
||||
require(`${events}guildCreate`).execute(this, guild);
|
||||
}).on('voiceStateUpdate', (oldState, newState) => {
|
||||
require(`${events}voiceStateUpdate`).execute(this, oldState, newState);
|
||||
}).on('error', (error) => {
|
||||
client.channels.fetch(client.config.debug_channel).send(`Error: ${error} on shard: ${this.shard}`);
|
||||
});
|
||||
events(this);
|
||||
|
||||
this.login(this.config.token).catch(err => console.log('Failed to login: ' + err));
|
||||
}
|
||||
|
@ -5,14 +5,16 @@ module.exports = {
|
||||
devToken: process.env.DEVTOKEN,
|
||||
dblKey: process.env.DBLKEY,
|
||||
api_key: process.env.GOOGLE_API_KEY,
|
||||
api_key2: process.env.GOOGLE_API_KEY2,
|
||||
api_key3: process.env.GOOGLE_API_KEY3,
|
||||
testServer: "489111553321336832",
|
||||
debug_channel: "634718645188034560",
|
||||
primary_test_channel: "617633098296721409",
|
||||
secondary_test_channel: "570531724002328577",
|
||||
devId: "360363051792203779",
|
||||
embedColor: "#b50002",
|
||||
invite: "https://discordapp.com/api/oauth2/authorize?client_id=607266889537945605&permissions=3427328&redirect_uri=https%3A%2F%2Fdiscordapp.com%2Foauth2%2Fauthorize%3Fclient_id%3D607266889537945605%26%3Bscope%3Dbot%26%3Bpermissions%3D0&scope=bot",
|
||||
devMode: false,
|
||||
invite: "https://discordapp.com/oauth2/authorize?client_id=607266889537945605&permissions=3427328&scope=bot",
|
||||
devMode: true,
|
||||
dblApi: false,
|
||||
saveDB: true,
|
||||
shards: 10,
|
||||
|
@ -20,6 +20,7 @@ module.exports = {
|
||||
currentDefaultVolume: ":speaker: Current default volume is:",
|
||||
currentPrefix: "Current prefix:",
|
||||
currentVolume: ":loud_sound: The current volume is: ",
|
||||
dbSaved: "<:green_check_mark:674265384777416705> DB Saved!",
|
||||
defaultVolumeMax: "<:redx:674263474704220182> The default volume must be below `100` for quality and safety resons.",
|
||||
defaultVolumeNumber: "<:redx:674263474704220182> I'm sorry, But the default volume needs to be a valid __number__.",
|
||||
defaultVolumeSet: "<:green_check_mark:674265384777416705> Default volume set to:",
|
||||
@ -84,6 +85,7 @@ module.exports = {
|
||||
queueFooter: "songs in the queue!",
|
||||
queueLength: "<:redx:674263474704220182> There are only %SONGS% amount of songs in the queue!",
|
||||
queueTitle: "__Song queue__",
|
||||
quotaReached: "<:redx:674263474704220182> Could not search for results please try again!",
|
||||
reloaded: "All files reloaded!",
|
||||
removed: "🗑️ removed `%SONG%` from the queue!",
|
||||
reset: "<:green_check_mark:674265384777416705> Reset __all__ guild settings!",
|
||||
|
16
struct/funcs/saveDB.js
Normal file
16
struct/funcs/saveDB.js
Normal file
@ -0,0 +1,16 @@
|
||||
module.exports = async function (client) {
|
||||
if (client.config.saveDB && !client.config.devMode) {
|
||||
console.log('DB saved');
|
||||
client.guilds.cache.forEach(guild => {
|
||||
client.db.collection('guilds').doc(guild.id).set({
|
||||
prefix: client.global.db.guilds[guild.id].prefix,
|
||||
defaultVolume: client.global.db.guilds[guild.id].defaultVolume,
|
||||
permissions: client.global.db.guilds[guild.id].permissions,
|
||||
dj: client.global.db.guilds[guild.id].dj,
|
||||
djrole: client.global.db.guilds[guild.id].djrole,
|
||||
startPlaying: client.global.db.guilds[guild.id].startPlaying,
|
||||
//bass: client.global.db.guilds[guild.id].bass,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user