Ajout du Bot
This commit is contained in:
27
util/LanBot.js
Normal file
27
util/LanBot.js
Normal file
@@ -0,0 +1,27 @@
|
||||
exports.canModifyQueue = (member) => {
|
||||
const { channelID } = member.voice;
|
||||
const botChannel = member.guild.voice.channelID;
|
||||
|
||||
if (channelID !== botChannel) {
|
||||
return;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
let config;
|
||||
|
||||
try {
|
||||
config = require("../config");
|
||||
} catch (error) {
|
||||
config = null;
|
||||
}
|
||||
|
||||
exports.TOKEN = config.TOKEN;
|
||||
exports.YOUTUBE_API_KEY = config.YOUTUBE_API_KEY;
|
||||
//exports.SOUNDCLOUD_CLIENT_ID = config.SOUNDCLOUD_CLIENT_ID;
|
||||
exports.MAX_PLAYLIST_SIZE = config.MAX_PLAYLIST_SIZE;
|
||||
exports.PRUNING = config.PRUNING;
|
||||
exports.STAY_TIME = config.STAY_TIME;
|
||||
exports.DEFAULT_VOLUME = config.DEFAULT_VOLUME;
|
||||
//exports.LOCALE = config.LOCALE;
|
357
util/constants.js
Normal file
357
util/constants.js
Normal file
@@ -0,0 +1,357 @@
|
||||
const MESSAGES = {
|
||||
COMMANDS: {
|
||||
ADMIN: {
|
||||
CONFIG: {
|
||||
name: "config",
|
||||
aliases: ['config'],
|
||||
category: 'admin',
|
||||
description: "Modifier la base de données !\n<key> disponible : **prefix** / **logChannel** / **welcomeMessage**\nAttention pour le **logChannel** merci de mettre l'ID du salon !",
|
||||
cooldown: 3,
|
||||
usage: ['<key> <value> '],
|
||||
isUserAdmin: false,
|
||||
permissions: true,
|
||||
args: true,
|
||||
},
|
||||
CHARGEMENT: {
|
||||
name: "chargement",
|
||||
aliases: ['chargement', 'init'],
|
||||
category: 'admin',
|
||||
description: "Config à faire pour le premier lancement du bot !",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: true,
|
||||
args: false,
|
||||
},
|
||||
},
|
||||
DEVELOPPEUR: {
|
||||
EVAL: {
|
||||
name: "eval",
|
||||
aliases: ['eval'],
|
||||
category: 'developpeur',
|
||||
description: "Renvoie un code javascript testé !",
|
||||
cooldown: 3,
|
||||
usage: ['<code_to_test>'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: true,
|
||||
},
|
||||
RELOAD: {
|
||||
name: "reload",
|
||||
aliases: ['reload'],
|
||||
category: 'developpeur',
|
||||
description: "Reboot le bot !",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
},
|
||||
INFORMATIONS: {
|
||||
BOTINFO: {
|
||||
name: "botinfo",
|
||||
aliases: ['botinfo', 'bi'],
|
||||
category: 'informations',
|
||||
description: "Renvoie des informations concernant le bot !",
|
||||
cooldown: 4,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
SERVERINFO: {
|
||||
name: "serverinfo",
|
||||
aliases: ['serverinfo', 'si'],
|
||||
category: 'informations',
|
||||
description: "Renvoie des informations concernant le serveur !",
|
||||
cooldown: 4,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
STATS: {
|
||||
name: "stats",
|
||||
aliases: ['stats'],
|
||||
category: 'informations',
|
||||
description: "Renvoie des Statistiques !",
|
||||
cooldown: 4,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
USERINFO: {
|
||||
name: "userinfo",
|
||||
aliases: ['userinfo', 'ui'],
|
||||
category: 'informations',
|
||||
description: "Permet d'avoir les informations de la personne mentionnée",
|
||||
cooldown: 10,
|
||||
usage: ['[<@user>]'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
},
|
||||
MUSIQUE: {
|
||||
JOIN: {
|
||||
name: "join",
|
||||
aliases: ['join'],
|
||||
category: 'musique',
|
||||
description: "Connecte le bot au canal vocal !",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
LEAVE: {
|
||||
name: "leave",
|
||||
aliases: ['leave'],
|
||||
category: 'musique',
|
||||
description: "Déconnecte le bot du canal vocal !",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
LOOP: {
|
||||
name: "loop",
|
||||
aliases: ['loop'],
|
||||
category: 'musique',
|
||||
description: "Rejoue la musique lancé !",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
LYRICS: {
|
||||
name: "lyrics",
|
||||
aliases: ['lyrics'],
|
||||
category: 'musique',
|
||||
description: "Envoie les paroles de la musique joué",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
MOVE: {
|
||||
name: "Move",
|
||||
aliases: ['move'],
|
||||
category: 'musique',
|
||||
description: "Déplacez les chansons de la file d'attente",
|
||||
cooldown: 3,
|
||||
usage: ['<numéro de la musique> <nouvel emplacement'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: true,
|
||||
},
|
||||
NOWPLAYING: {
|
||||
name: "NowPlaying",
|
||||
aliases: ['nowplaying', 'np'],
|
||||
category: 'musique',
|
||||
description: "Afficher la chanson en cours de lecture",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
PAUSE: {
|
||||
name: "pause",
|
||||
aliases: ['pause'],
|
||||
category: 'musique',
|
||||
description: "Met en pause la musique actuelle !",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
PLAY: {
|
||||
name: "play",
|
||||
aliases: ['play'],
|
||||
category: 'musique',
|
||||
description: "Lance une musique",
|
||||
cooldown: 3,
|
||||
usage: ['URL'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: true,
|
||||
},
|
||||
PLAYLIST: {
|
||||
name: "playlist",
|
||||
aliases: ['playlist'],
|
||||
category: 'musique',
|
||||
description: "Lance une playlist",
|
||||
cooldown: 3,
|
||||
usage: ['URL'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
PRUNING: {
|
||||
name: "pruning",
|
||||
aliases: ['pruning'],
|
||||
category: 'musique',
|
||||
description: "Possibilité de supprimer les messages du bot",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
QUEUE: {
|
||||
name: "queue",
|
||||
aliases: ['q'],
|
||||
category: 'musique',
|
||||
description: "Affiche la liste de lecture actuelle",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
RADIOZEBRE: {
|
||||
name: "radiozebre",
|
||||
aliases: ['rz', 'radiozebre'],
|
||||
category: 'musique',
|
||||
description: "Lance la playlist radiozebre",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
REMOVE: {
|
||||
name: "remove",
|
||||
aliases: ['rm'],
|
||||
category: 'musique',
|
||||
description: "Supprimer la chanson de la file d'attente",
|
||||
cooldown: 3,
|
||||
usage: ['numéro de la musique'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: true,
|
||||
},
|
||||
RESUME: {
|
||||
name: "resume",
|
||||
aliases: ['r'],
|
||||
category: 'musique',
|
||||
description: "Relance la musique mis en pause",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
SEARCH: {
|
||||
name: "search",
|
||||
aliases: ['search'],
|
||||
category: 'musique',
|
||||
description: "Recherchez et sélectionnez des vidéos à écouter",
|
||||
cooldown: 3,
|
||||
usage: ['<URL> <nom de la vidéo / musique>'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: true,
|
||||
},
|
||||
SHUFFLE: {
|
||||
name: "shuffle",
|
||||
aliases: ['shuffle'],
|
||||
category: 'musique',
|
||||
description: "Lance la liste de lecture en aléatoire",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
SKIP: {
|
||||
name: "skip",
|
||||
aliases: ['skip'],
|
||||
category: 'musique',
|
||||
description: "Lance la prochaine musique de la liste d'attente",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
SKIPTO: {
|
||||
name: "skipto",
|
||||
aliases: ['skipto'],
|
||||
category: 'musique',
|
||||
description: "Passer au numéro de file d'attente sélectionné",
|
||||
cooldown: 3,
|
||||
usage: ['numéro de la musique'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: true,
|
||||
},
|
||||
STOP: {
|
||||
name: "stop",
|
||||
aliases: ['stop'],
|
||||
category: 'musique',
|
||||
description: "Arrête la musique et fait quitter le bot du salon vocal",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
VOLUME: {
|
||||
name: "VOLUME",
|
||||
aliases: ['volume', 'vol'],
|
||||
category: 'musique',
|
||||
description: "Règle le volume du bot !",
|
||||
cooldown: 3,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
},
|
||||
UTILITAIRE: {
|
||||
HELP: {
|
||||
name: "help",
|
||||
aliases: ['help'],
|
||||
category: 'utilitaire',
|
||||
description: "Renvoie une liste de commandes ou les informations sur une seule !",
|
||||
cooldown: 3,
|
||||
usage: ['<command_name>'],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
PING: {
|
||||
name: "ping",
|
||||
aliases: ['ping'],
|
||||
category: 'utilitaire',
|
||||
description: "Renvoie pong ! + la latence",
|
||||
cooldown: 10,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
YT: {
|
||||
name: "yt",
|
||||
aliases: ['yt'],
|
||||
category: 'utilitaire',
|
||||
description: "Youtube Together",
|
||||
cooldown: 10,
|
||||
usage: [''],
|
||||
isUserAdmin: false,
|
||||
permissions: false,
|
||||
args: false,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
exports.MESSAGES = MESSAGES;
|
33
util/functions.js
Normal file
33
util/functions.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const mongoose = require("mongoose");
|
||||
const { Guild, User, Ticket } = require("../models/index");
|
||||
|
||||
module.exports = client => {
|
||||
client.createGuild = async guild => {
|
||||
const merged = Object.assign({ _id: mongoose.Types.ObjectId() }, guild);
|
||||
const createGuild = await new Guild(merged);
|
||||
createGuild.save()
|
||||
.then(g => console.log(`Nouveau serveur -> ${g.guildName}`));
|
||||
|
||||
};
|
||||
|
||||
client.getGuild = async guild => {
|
||||
const data = await Guild.findOne({ guildID: guild.id });
|
||||
if (data) return data;
|
||||
return client.config.DEFAULTSETTINGS;
|
||||
};
|
||||
|
||||
client.updateGuild = async (guild, settings) => {
|
||||
let data = await client.getGuild(guild);
|
||||
if (typeof data !== "object") data = {};
|
||||
for (const key in settings) {
|
||||
if (data[key] !== settings[key]) data[key] = settings[key];
|
||||
}
|
||||
return data.updateOne(settings);
|
||||
};
|
||||
|
||||
client.deleteGuild = async guild => {
|
||||
const guilde = await client.getGuild(guild)
|
||||
await guilde.delete()
|
||||
};
|
||||
|
||||
};
|
33
util/loader.js
Normal file
33
util/loader.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const fs = require("fs");
|
||||
|
||||
//Fonction pour récupérer les fichiers dans les sous-dossier
|
||||
const loadCommands = (client, dir = "./commands/") => {
|
||||
fs.readdirSync(dir).forEach(dirs => {
|
||||
const commands = fs.readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
|
||||
|
||||
for(const file of commands) {
|
||||
const getFileName = require(`../${dir}/${dirs}/${file}`);
|
||||
client.commands.set(getFileName.help.name, getFileName);
|
||||
console.log(`Commande chargée: ${getFileName.help.name}`);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
//Fonction pour les Events
|
||||
const loadEvents = (client, dir = "./events/") => {
|
||||
fs.readdirSync(dir).forEach(dirs => {
|
||||
const events = fs.readdirSync(`${dir}/${dirs}/`).filter(files => files.endsWith(".js"));
|
||||
|
||||
for(const event of events) {
|
||||
const evt = require(`../${dir}/${dirs}/${event}`);
|
||||
const evtName = event.split(".")[0];
|
||||
client.on(evtName, evt.bind(null, client));
|
||||
console.log(`Evenement chargé: ${evtName}`);
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
loadCommands,
|
||||
loadEvents,
|
||||
}
|
22
util/mongoose.js
Normal file
22
util/mongoose.js
Normal file
@@ -0,0 +1,22 @@
|
||||
const mongoose = require("mongoose");
|
||||
const { DBCONNECTION } = require("../config");
|
||||
|
||||
module.exports = {
|
||||
init: () => {
|
||||
const mongOptions = {
|
||||
useNewUrlParser: true,
|
||||
useUnifiedTopology: true,
|
||||
useCreateIndex: true,
|
||||
useFindAndModify: false,
|
||||
autoIndex: false, // Don't build indexes
|
||||
poolSize: 10, // Maintain up to 10 socket connections
|
||||
serverSelectionTimeoutMS: 5000, // Keep trying to send operations for 5 seconds
|
||||
socketTimeoutMS: 45000, // Close sockets after 45 seconds of inactivity
|
||||
family: 4 // Use IPv4, skip trying IPv6
|
||||
}
|
||||
|
||||
mongoose.connect(DBCONNECTION, mongOptions);
|
||||
mongoose.Promise = global.Promise;
|
||||
mongoose.connection.on("connected", () => console.log("Mongoose est connecté !"));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user