Skip to content
Snippets Groups Projects
Commit a0caa395 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Refactorisation du code.

parent d6b892f4
Branches dev
No related tags found
No related merge requests found
......@@ -6,16 +6,15 @@ const { Op } = require("sequelize");
// API externe
const express = require('express')
const app = express()
var XMLHttpRequest = require('xhr2');
const XMLHttpRequest = require('xhr2');
// Couleurs de la console
var colors = require('colors');
require('colors');
// API discord
const { REST } = require('@discordjs/rest');
const { Routes } = require('discord-api-types/v9');
// Moment JS
var moment = require('moment');
const moment = require('moment');
// Schedule
const schedule = require('node-schedule');
......@@ -163,15 +162,15 @@ async function initialiseDatabaseTables() {
if (token == null) {
// INSERT si elle n'existe pas
console.log('[' + 'INSERT'.brightMagenta + '] Insertion de token'.brightWhite);
let token = botSettings.create({
botSettings.create({
name: "token",
value: config.get("DISCORD_BOT_TOKEN")
});
} else {
// UPDATE si différente
if (token.value != config.get("DISCORD_BOT_TOKEN")) {
if (token.value !== config.get("DISCORD_BOT_TOKEN")) {
token.update({ value: config.get("DISCORD_BOT_TOKEN") })
.then(updatedRecord => {
.then(() => {
console.log('[' + 'UPDATE'.brightMagenta + '] Mise à jour du token dans la base de donnée'.brightWhite);
}).catch(err => {
console.log('[' + 'ERREUR'.brightRed + '] Erreur lors de la màj de token dans la base de donnée: '.brightWhite + '\n');
......@@ -184,14 +183,14 @@ async function initialiseDatabaseTables() {
let clientId = await botSettings.findOne({ where: { name: "clientId" } });
if (clientId == null) {
console.log('[' + 'INSERT'.brightMagenta + '] Insertion de clientId'.brightWhite);
let clientId = botSettings.create({
botSettings.create({
name: "clientId",
value: config.get("CLIENT_ID")
});
} else {
if (clientId.value != config.get("CLIENT_ID")) {
if (clientId.value !== config.get("CLIENT_ID")) {
clientId.update({ value: config.get("CLIENT_ID") })
.then(updatedRecord => {
.then(() => {
console.log('[' + 'UPDATE'.brightMagenta + '] Mise à jour du clientId dans la base de donnée'.brightWhite);
}).catch(err => {
console.log('[' + 'ERREUR'.brightRed + '] Erreur lors de la màj de clientId dans la base de donnée: '.brightWhite + '\n');
......@@ -203,14 +202,14 @@ async function initialiseDatabaseTables() {
let guildId = await botSettings.findOne({ where: { name: "guildId" } });
if (guildId == null) {
console.log('[' + 'INSERT'.brightMagenta + '] Insertion de guildId'.brightWhite);
let guildId = botSettings.create({
botSettings.create({
name: "guildId",
value: config.get("GUILD_ID")
});
} else {
if (guildId.value != config.get("GUILD_ID")) {
if (guildId.value !== config.get("GUILD_ID")) {
guildId.update({ value: config.get("GUILD_ID") })
.then(updatedRecord => {
.then(() => {
console.log('[' + 'UPDATE'.brightMagenta + '] Mise à jour du guildId dans la base de donnée'.brightWhite);
}).catch(err => {
console.log('[' + 'ERREUR'.brightRed + '] Erreur lors de la màj de guildId dans la base de donnée: '.brightWhite + '\n');
......@@ -233,15 +232,15 @@ async function initialiseDatabaseTables() {
////////////////////////////////////////////////////////////////
// Console Input/Output
var readline = require('readline');
const readline = require('readline');
var rl = readline.createInterface({
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// Ce code est a améliorer, je l'ai vulgairement recopié d'un ancien bot (lui même pas très bien conçu)
var recursiveAsyncReadLine = function () {
const recursiveAsyncReadLine = function () {
rl.question('Commande: ', function (answer) {
//if (answer == 'exit')
// return rl.close();
......@@ -253,7 +252,7 @@ var recursiveAsyncReadLine = function () {
if (!args[0] || !args[1])
console.log('\n' + '[' + 'ERREUR'.brightRed + "] Tu n'as pas mis d'arguments :p" + '\n' + '[' + 'INFO'.yellow + "] Usage: say <Numéro du canal> <\"Texte\">");
else {
var message = args[1].substring(1, args[1].length - 1);
const message = args[1].substring(1, args[1].length - 1);
client.channels.cache.get(args[0]).send(message);
console.log('\n' + '[' + 'SUCCES'.brightGreen + '] Le message a été envoyé dans le canal n°' + args[0]);
}
......@@ -276,9 +275,7 @@ recursiveAsyncReadLine(); //we have to actually start our recursion somehow
// BOT DISCORD
////////////////////////////////////////////////////////////////
// require the needed discord.js classes
const { Client, GatewayIntentBits, MessageActionRow, MessageButton, WebhookClient } = require('discord.js');
const { verify } = require('crypto');
const { Client, GatewayIntentBits, WebhookClient } = require('discord.js');
// create a new Discord client
const client = new Client({
intents: [
......@@ -288,34 +285,34 @@ const client = new Client({
GatewayIntentBits.DirectMessages
]
})
var mcChatWebhook, devMcChatWebhook;
let mcChatWebhook, devMcChatWebhook;
client.on("ready", async function () {
console.log('\n' + "SL-Projects Bot".brightCyan);
console.log("");
console.log("Bot démarré".brightGreen);
var guild = client.guilds.cache.get(config.get("GUILD_ID"));
var memberCount = guild.memberCount.toLocaleString();
const guild = client.guilds.cache.get(config.get("GUILD_ID"));
const memberCount = guild.memberCount.toLocaleString();
console.log('\n' + "Nous sommes " + memberCount + " membres.");
client.user.setActivity("Regarde " + memberCount + " membres");
checkAnniv();
await checkAnniv();
verifyMcChatWebhook();
await verifyMcChatWebhook();
});
// Actions lorsqu'un membre rejoins ou part
client.on('guildMemberAdd', async (member) => {
let guild = client.guilds.cache.get(config.get("GUILD_ID"));
var memberCount = guild.memberCount.toLocaleString();
const memberCount = guild.memberCount.toLocaleString();
console.log('\n' + "Nouveau membre - " + member.user.username + " - " + memberCount + " membres");
member.guild.channels.cache.get(config.get("CANAL_LOG")).send("Nouveau membre - " + member.user.username + " - " + memberCount + " membres");
client.user.setActivity("Regarde " + memberCount + " membres");
var currentdate = new Date();
var datetime = currentdate.getFullYear() + "-"
const currentdate = new Date();
const datetime = currentdate.getFullYear() + "-"
+ (currentdate.getMonth() + 1) + "-"
+ currentdate.getDate() + " "
+ (currentdate.getHours() + 1) + ":"
......@@ -331,14 +328,14 @@ client.on('guildMemberAdd', async (member) => {
});
client.on('guildMemberRemove', async (member) => {
let guild = client.guilds.cache.get(config.get("GUILD_ID"));
var memberCount = guild.memberCount.toLocaleString();
const memberCount = guild.memberCount.toLocaleString();
console.log('\n' + "Un membre a quitté le serveur - " + member.user.username + " - " + memberCount + " membres");
member.guild.channels.cache.get(config.get("CANAL_LOG")).send("Un membre a quitté le serveur - " + member.user.username + " - " + memberCount + " membres");
client.user.setActivity("Regarde " + memberCount + " membres");
var currentdate = new Date();
var datetime = currentdate.getFullYear() + "-"
const currentdate = new Date();
const datetime = currentdate.getFullYear() + "-"
+ (currentdate.getMonth() + 1) + "-"
+ currentdate.getDate() + " "
+ (currentdate.getHours() + 1) + ":"
......@@ -356,12 +353,12 @@ client.on('guildMemberRemove', async (member) => {
// Lorsqu'un message est envoyé
client.on('messageCreate', async message => {
// On va regarder si le message vient du canal de tchat du serveur MC
if (message.channel.id == config.get("CANAL_CHAT_MC") && !message.author.bot) {
var playerName = message.author.username;
var messageContent = message.content;
if (message.channel.id === config.get("CANAL_CHAT_MC") && !message.author.bot) {
let playerName = message.author.username;
const messageContent = message.content;
// On va vérifier si l'utilisateur a associé son compte discord avec le serveur MC
var memberAccountAssoc = await minecraftPlayerSetting.findOne({
const memberAccountAssoc = await minecraftPlayerSetting.findOne({
where: {
name: 'discordAccountId',
value: message.author.id
......@@ -382,13 +379,13 @@ client.on('messageCreate', async message => {
}
// On encode ça en JSON
var jsonEncodedMessage = JSON.stringify({
const jsonEncodedMessage = JSON.stringify({
"message": messageContent,
"playerName": playerName
});
// Maintenant on va appeler le serveur pour envoyer le message
var xmlHttp = new XMLHttpRequest();
const xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "http://node.sl-projects.com:" + config.get("PORT_MSG_SRVMC") + "/discordMsg/" + encodeURIComponent(jsonEncodedMessage), true);
xmlHttp.send();
}
......@@ -421,10 +418,10 @@ client.on('interactionCreate', async interaction => {
try {
memberBirthday = memberBirthday.toDate();
console.log('[' + 'INSERT'.brightMagenta + '] '.brightWhite + interaction.user.username.brightBlue + " a renseigné sa date d'anniversaire. ".brightWhite + interaction.options.getString('date').yellow);
var dd = memberBirthday.getDate();
var mm = memberBirthday.getMonth() + 1;
let dd = memberBirthday.getDate();
let mm = memberBirthday.getMonth() + 1;
var yyyy = memberBirthday.getFullYear();
const yyyy = memberBirthday.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
......@@ -432,13 +429,13 @@ client.on('interactionCreate', async interaction => {
mm = '0' + mm;
}
let birthday = mm + '/' + dd + '/' + yyyy;
let insetMemberBirthday = memberSettings.create({
memberSettings.create({
memberId: interaction.user.id,
name: "birthday",
value: birthday
});
await interaction.reply({ content: 'Je m\'en souviendrai. :thumbup:', ephemeral: true });
checkAnniv();
await checkAnniv();
} catch (error) {
console.error('[' + 'ERREUR'.brightRed + '] Erreur lors de l\'insertion de la date d\'anniversaire: '.brightWhite + '\n', error);
await interaction.reply("J'ai eu un petit problème pour enregistrer ta date d'anniversaire, re-essaie plus-tard. :p");
......@@ -464,7 +461,7 @@ client.on('interactionCreate', async interaction => {
}
await interaction.reply({ content: 'La date d\'anniversaire de <@' + interaction.options.getMember('membre') + '> a été supprimée.', ephemeral: true });
checkAnniv();
await checkAnniv();
} else {
await interaction.reply({ content: "Tu n'as pas le droit d'exécuter cette commande. :p", ephemeral: true });
}
......@@ -537,10 +534,9 @@ async function checkAnniv() {
console.log('[' + 'INFO'.yellow + '] Vérification des anniversaires.'.brightWhite);
let today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1;
let dd = today.getDate();
let mm = today.getMonth() + 1;
var yyyy = today.getFullYear();
if (dd < 10) {
dd = '0' + dd;
}
......@@ -561,13 +557,13 @@ async function checkAnniv() {
const guild = client.guilds.cache.get(config.get("GUILD_ID"));
//console.log(guild);
var membersWithAnnivRole = await guild.roles.cache.get(config.get("ROLE_ANNIV")).members;
const membersWithAnnivRole = await guild.roles.cache.get(config.get("ROLE_ANNIV")).members;
//console.log(membersWithAnnivRole);
// On va vérifier que c'est bien l'anniv des membres ayant le rôle. :p
for await (var memberWithAnnivRole of membersWithAnnivRole) {
for await (let memberWithAnnivRole of membersWithAnnivRole) {
var isMemberBirthday = false;
let isMemberBirthday = false;
for await (const member of rows) {
if (memberWithAnnivRole[0] === member.memberId.toString()) {
isMemberBirthday = true;
......@@ -580,7 +576,7 @@ async function checkAnniv() {
}
console.log('[' + 'SUCCES'.brightGreen + '] C\'est l\'anniversaire de ' + count + ' personne(s).');
for await (var member of rows) {
for await (const member of rows) {
let memberFetch = await guild.members.fetch(member.memberId.toString());
//console.log(memberFetch);
if (memberFetch) {
......@@ -588,7 +584,7 @@ async function checkAnniv() {
if (!memberFetch.roles.cache.has(config.get("ROLE_ANNIV"))) {
let annivRole = await memberFetch.guild.roles.cache.find(role => role.id === config.get("ROLE_ANNIV"));
if (annivRole) {
memberFetch.roles.add(annivRole);
await memberFetch.roles.add(annivRole);
console.log('[' + 'INFO'.yellow + '] Le rôle '.brightWhite + annivRole.name.yellow + " a été donné à " + memberFetch.user.username.brightBlue);
client.channels.cache.get(config.get("CANAL_GENERAL")).send("Fêtons l'anniversaire de <@" + memberFetch.id + "> ! :partying_face:").catch(console.error);
}
......@@ -612,10 +608,10 @@ async function verifyMcChatWebhook() {
devMcChatWebhook = new WebhookClient({ id: devMcChatWebhookId.value, token: devMcChatWebhookToken.value });
} else {
console.log("[" + 'ERREUR'.brightRed + "] Impossible de trouver le token du webhook dans la base de donnée.");
createMcChatWebhook();
await createMcChatWebhook();
}
} else {
createMcChatWebhook();
await createMcChatWebhook();
}
}
......@@ -658,8 +654,8 @@ async function createMcChatWebhook() {
}
function sendMessageFromMcChat(username, message, serverType) {
if(username == "SL-Craft"){
if(serverType == "dev"){
if(username === "SL-Craft"){
if(serverType === "dev"){
devMcChatWebhook.send({
content: message,
username: username,
......@@ -680,20 +676,20 @@ function sendMessageFromMcChat(username, message, serverType) {
message = message.replace("@here", "**here**");
// On va regarder si le joueur souhaite tagger quelqu'un avec un @
var regex = /@(.*?\s)/g;
var match = regex.exec(message);
const regex = /@(.*?\s)/g;
const match = regex.exec(message);
if (match){
// console.log("ça a matché");
var member = match[1].trim();
const member = match[1].trim();
// console.log(member+"flag");
var memberFetch = client.users.cache.find(user => user.username == member).id;
const memberFetch = client.users.cache.find(user => user.username === member).id;
if (memberFetch){
// console.log("Le membre existe");
message = message.replace("@"+member, "<@" + memberFetch + ">");
}
}
if(serverType == "dev"){
if(serverType === "dev"){
devMcChatWebhook.send({
content: message,
username: username,
......@@ -709,14 +705,10 @@ function sendMessageFromMcChat(username, message, serverType) {
}
}
const job = schedule.scheduleJob('0 0 * * *', function () {
schedule.scheduleJob('0 0 * * *', function () {
console.log('[' + 'INFO'.yellow + '] Éxecution des tâches de fonds quotidiennes...'.brightWhite);
checkAnniv();
});
// login to Discord with your app's token
client.login(config.get("DISCORD_BOT_TOKEN"));
......@@ -730,11 +722,11 @@ app.get('/ping', (req, res) => {
res.send("Pong!")
})
app.get('/channels/:id', (req, res) => {
var id = req.params.id;
const id = req.params.id;
res.send(client.channels.cache.get(id));
})
app.get('/mc/chat/:detail', (req, res) => {
var detail = JSON.parse(decodeURI(req.params.detail));
const detail = JSON.parse(decodeURI(req.params.detail));
sendMessageFromMcChat(detail.username, detail.message, req.headers['server-type']);
res.send("Envoyé!")
})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment