mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-17 21:39:28 +02:00
finished update all comment with sqlite3
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
const { ActionRowBuilder, EmbedBuilder, ButtonBuilder, ButtonStyle} = require('discord.js');
|
const { ActionRowBuilder, EmbedBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');
|
||||||
const db = require('quick.db');
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const GestionDb = new db.table('gestion');
|
const db = new sqlite3.Database('myDatabase.db');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'rolelimit',
|
name: 'rolelimit',
|
||||||
@@ -13,8 +13,19 @@ module.exports = {
|
|||||||
const botId = interaction.client.user.id;
|
const botId = interaction.client.user.id;
|
||||||
const guildId = interaction.guild.id;
|
const guildId = interaction.guild.id;
|
||||||
|
|
||||||
// Récupère les rôles limités
|
let limitedRoles = await new Promise((resolve, reject) => {
|
||||||
let limitedRoles = GestionDb.get(`${botId}.${guildId}.rolelimits`) || [];
|
db.get('SELECT value FROM gestion WHERE id = ?', [`${botId}.${guildId}.rolelimits`], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row ? JSON.parse(row.value) : []);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!Array.isArray(limitedRoles)) {
|
||||||
|
limitedRoles = [];
|
||||||
|
}
|
||||||
|
|
||||||
// Crée un embed avec les rôles limités
|
// Crée un embed avec les rôles limités
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
@@ -22,6 +33,7 @@ module.exports = {
|
|||||||
.setDescription(limitedRoles.map(role => `<@&${role.id}>: ${role.limit}`).join('\n') || 'Aucun rôle limité.')
|
.setDescription(limitedRoles.map(role => `<@&${role.id}>: ${role.limit}`).join('\n') || 'Aucun rôle limité.')
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
|
|
||||||
|
|
||||||
// Crée les boutons
|
// Crée les boutons
|
||||||
const addButton = new ButtonBuilder()
|
const addButton = new ButtonBuilder()
|
||||||
.setCustomId('rolelimit_add')
|
.setCustomId('rolelimit_add')
|
||||||
@@ -35,62 +47,92 @@ module.exports = {
|
|||||||
.addComponents(addButton, removeButton);
|
.addComponents(addButton, removeButton);
|
||||||
const sentMessage = await interaction.reply({ embeds: [embed], components: [row], fetchReply: true });
|
const sentMessage = await interaction.reply({ embeds: [embed], components: [row], fetchReply: true });
|
||||||
|
|
||||||
const filter = i => i.isButton() && i.customId.startsWith('rolelimit_') && i.user;
|
|
||||||
const collector = sentMessage.createMessageComponentCollector({ filter: filter, time: 2 * 60 * 1000 + 30 * 1000 });
|
|
||||||
|
|
||||||
collector.on('collect', async (i) => {
|
const filter = i => i.isButton() && i.customId.startsWith('rolelimit_') && i.user;
|
||||||
if (i.customId === 'rolelimit_add') {
|
const collector = sentMessage.createMessageComponentCollector({ filter: filter, time: 2 * 60 * 10000 + 30 * 10000 });
|
||||||
const questionMessage = await i.reply('Mentionnez un rôle ou fournissez un ID de rôle à limiter.');
|
|
||||||
const filter = m => m.author && m.author.id === i.user.id;
|
|
||||||
const collected = await i.channel.awaitMessages({ filter, max: 1, time: 60000000 });
|
|
||||||
const role = collected.first().mentions.roles.first() || interaction.guild.roles.cache.get(collected.first().content);
|
|
||||||
if (!role) {
|
|
||||||
return i.followUp('Rôle invalide.');
|
|
||||||
}
|
|
||||||
await i.followUp('Quelle est la limite pour ce rôle ?');
|
|
||||||
const limitCollected = await i.channel.awaitMessages({ filter, max: 1, time: 60000000 });
|
|
||||||
const limit = parseInt(limitCollected.first().content);
|
|
||||||
if (isNaN(limit)) {
|
|
||||||
return i.followUp('Limite invalide.');
|
|
||||||
}
|
|
||||||
const existingRole = limitedRoles.find(r => r.id === role.id);
|
|
||||||
if (existingRole) {
|
|
||||||
existingRole.limit = limit;
|
|
||||||
} else {
|
|
||||||
limitedRoles.push({ id: role.id, limit });
|
|
||||||
}
|
|
||||||
GestionDb.set(`${botId}.${guildId}.rolelimits`, limitedRoles);
|
|
||||||
await questionMessage.delete();
|
|
||||||
await collected.first().delete();
|
|
||||||
const updatedEmbed = new EmbedBuilder()
|
|
||||||
.setTitle('Rôles limités')
|
|
||||||
.setDescription(limitedRoles.map(role => `<@&${role.id}>: ${role.limit}`).join('\n') || 'Aucun rôle limité.')
|
|
||||||
.setColor('#0099ff');
|
|
||||||
|
|
||||||
sentMessage.edit({ embeds: [updatedEmbed] });
|
|
||||||
} else if (i.customId === 'rolelimit_remove') {
|
collector.on('collect', async (i) => {
|
||||||
const questionMessage = await i.reply('Mentionnez un rôle ou fournissez un ID de rôle à supprimer.');
|
if (i.customId === 'rolelimit_add') {
|
||||||
const filter = m => m.author && m.author.id === i.user.id;
|
const questionMessage = await i.reply('Mentionnez un rôle ou fournissez un ID de rôle à limiter.');
|
||||||
const collected = await i.channel.awaitMessages({ filter, max: 1, time: 60000000 });
|
const filter = m => m.author && m.author.id === i.user.id;
|
||||||
const roleToRemove = collected.first().mentions.roles.first() || interaction.guild.roles.cache.get(collected.first().content);
|
const collected = await i.channel.awaitMessages({ filter, max: 1, time: 60000 });
|
||||||
if (!roleToRemove) {
|
const role = collected.first().mentions.roles.first() || interaction.guild.roles.cache.get(collected.first().content);
|
||||||
return i.followUp('Rôle invalide.');
|
if (!role) {
|
||||||
}
|
return i.followUp('Rôle invalide.');
|
||||||
limitedRoles = limitedRoles.filter(role => role.id !== roleToRemove.id);
|
}
|
||||||
GestionDb.set(`${botId}.${guildId}.rolelimits`, limitedRoles);
|
const questionMessage2 = await i.followUp('Quelle est la limite pour ce rôle ?');
|
||||||
const updatedEmbed = new EmbedBuilder()
|
const limitCollected = await i.channel.awaitMessages({ filter, max: 1, time: 60000 });
|
||||||
.setTitle('Rôles limités')
|
const limit = parseInt(limitCollected.first().content);
|
||||||
.setDescription(limitedRoles.map(role => `<@&${role.id}>: ${role.limit}`).join('\n') || 'Aucun rôle limité.')
|
if (isNaN(limit)) {
|
||||||
.setColor('#0099ff');
|
return i.followUp('Limite invalide.');
|
||||||
await questionMessage.delete();
|
}
|
||||||
await collected.first().delete();
|
const existingRole = limitedRoles.find(r => r.id === role.id);
|
||||||
sentMessage.edit({ embeds: [updatedEmbed] });
|
if (existingRole) {
|
||||||
}
|
existingRole.limit = limit;
|
||||||
});
|
} else {
|
||||||
|
limitedRoles.push({ id: role.id, limit });
|
||||||
|
}
|
||||||
|
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [`${botId}.${guildId}.rolelimits`, JSON.stringify(limitedRoles)], (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
} else {
|
||||||
|
db.get('SELECT value FROM gestion WHERE id = ?', [`${botId}.${guildId}.rolelimits`], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
} else {
|
||||||
|
limitedRoles = row ? JSON.parse(row.value) : [];
|
||||||
|
const updatedEmbed = new EmbedBuilder()
|
||||||
|
.setTitle('Rôles limités')
|
||||||
|
.setDescription(limitedRoles.map(role => `<@&${role.id}>: ${role.limit}`).join('\n') || 'Aucun rôle limité.')
|
||||||
|
.setColor('#0099ff');
|
||||||
|
sentMessage.edit({ embeds: [updatedEmbed] });
|
||||||
|
try {
|
||||||
|
questionMessage.delete();
|
||||||
|
questionMessage2.delete();
|
||||||
|
collected.first().delete();
|
||||||
|
limitCollected.first().delete();
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (i.customId === 'rolelimit_remove') {
|
||||||
|
const questionMessage = await i.reply('Mentionnez un rôle ou fournissez un ID de rôle à supprimer.');
|
||||||
|
const filter = m => m.author && m.author.id === i.user.id;
|
||||||
|
const collected = await i.channel.awaitMessages({ filter, max: 1, time: 60000 });
|
||||||
|
const roleToRemove = collected.first().mentions.roles.first() || interaction.guild.roles.cache.get(collected.first().content);
|
||||||
|
if (!roleToRemove) {
|
||||||
|
return i.followUp('Rôle invalide.');
|
||||||
|
}
|
||||||
|
limitedRoles = limitedRoles.filter(role => role.id !== roleToRemove.id);
|
||||||
|
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [`${botId}.${guildId}.rolelimits`, JSON.stringify(limitedRoles)], (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
} else {
|
||||||
|
db.get('SELECT value FROM gestion WHERE id = ?', [`${botId}.${guildId}.rolelimits`], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
} else {
|
||||||
|
limitedRoles = row ? JSON.parse(row.value) : [];
|
||||||
|
const updatedEmbed = new EmbedBuilder()
|
||||||
|
.setTitle('Rôles limités')
|
||||||
|
.setDescription(limitedRoles.map(role => `<@&${role.id}>: ${role.limit}`).join('\n') || 'Aucun rôle limité.')
|
||||||
|
.setColor('#0099ff');
|
||||||
|
sentMessage.edit({ embeds: [updatedEmbed] });
|
||||||
|
questionMessage.delete();
|
||||||
|
collected.first().delete();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
collector.on('end', collected => {
|
collector.on('end', collected => {
|
||||||
sentMessage.delete();
|
sentMessage.edit({ components: [] });
|
||||||
collected.forEach(i => i.message.delete());
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
const { EmbedBuilder, ButtonBuilder , ActionRowBuilder, ButtonStyle } = require('discord.js');
|
const { EmbedBuilder, ButtonBuilder, ActionRowBuilder, ButtonStyle } = require('discord.js');
|
||||||
const db = require('quick.db');
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const GestionDb = new db.table('gestion');
|
const db = new sqlite3.Database('myDatabase.db');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'greetlist',
|
name: 'greetlist',
|
||||||
@@ -13,9 +13,18 @@ module.exports = {
|
|||||||
async execute(message) {
|
async execute(message) {
|
||||||
const botId = message.client.user.id;
|
const botId = message.client.user.id;
|
||||||
const guildId = message.guild.id;
|
const guildId = message.guild.id;
|
||||||
const guildGreetings = GestionDb.get(`${botId}.${guildId}.greetings`) || [];
|
|
||||||
|
|
||||||
if (guildGreetings.length === 0) {
|
let guildGreetings = await new Promise((resolve, reject) => {
|
||||||
|
db.get('SELECT value FROM gestion WHERE id = ?', [`${botId}.${guildId}.greetings`], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row ? JSON.parse(row.value) : []);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (guildGreetings.length === 0) {
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setTitle('Aucun salon avec un salutation')
|
.setTitle('Aucun salon avec un salutation')
|
||||||
.setDescription('Il n\'y a aucun salon avec un salutation pour ce serveur.')
|
.setDescription('Il n\'y a aucun salon avec un salutation pour ce serveur.')
|
||||||
@@ -27,15 +36,15 @@ module.exports = {
|
|||||||
.setTitle(`Salons avec un greet ${guildGreetings.length}/5`)
|
.setTitle(`Salons avec un greet ${guildGreetings.length}/5`)
|
||||||
.setDescription(`${greetingChannels}`)
|
.setDescription(`${greetingChannels}`)
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
const greet = new ButtonBuilder()
|
const greet = new ButtonBuilder()
|
||||||
.setCustomId(`greet_${guildId}`)
|
.setCustomId(`greet_${guildId}`)
|
||||||
.setLabel('↪️ greet')
|
.setLabel('↪️ greet')
|
||||||
.setStyle(ButtonStyle.Primary)
|
.setStyle(ButtonStyle.Primary);
|
||||||
const row = new ActionRowBuilder()
|
const row = new ActionRowBuilder()
|
||||||
.addComponents(greet);
|
.addComponents(greet);
|
||||||
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
|
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
|
||||||
const greetfilter = i => i.customId.startsWith('greet_') && i.user.id === message.author.id;
|
const greetfilter = i => i.customId.startsWith('greet_') && i.user.id === message.author.id;
|
||||||
const collector = sentMessage.createMessageComponentCollector({ filter: greetfilter, time: 15000 });
|
const collector = sentMessage.createMessageComponentCollector({ filter: greetfilter, time: 15000 });
|
||||||
collector.on('collect', async (interaction) => {
|
collector.on('collect', async (interaction) => {
|
||||||
const member = interaction.member;
|
const member = interaction.member;
|
||||||
const guild = interaction.guild;
|
const guild = interaction.guild;
|
||||||
@@ -44,11 +53,11 @@ module.exports = {
|
|||||||
for (const greeting of guildGreetings) {
|
for (const greeting of guildGreetings) {
|
||||||
try {
|
try {
|
||||||
const channel = await guild.channels.fetch(greeting.channelId);
|
const channel = await guild.channels.fetch(greeting.channelId);
|
||||||
if (channel && channel.type === 0) {
|
if (channel && channel.type === 0) {
|
||||||
messagePromises.push(
|
messagePromises.push(
|
||||||
channel.send(welcomeMessage)
|
channel.send(welcomeMessage)
|
||||||
.then(message => {
|
.then(message => {
|
||||||
setTimeout(() => message.delete(), 1000);
|
setTimeout(() => message.delete(), 1000);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
const { MessageEmbed } = require('discord.js');
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const db = require('quick.db');
|
const db = new sqlite3.Database('myDatabase.db');
|
||||||
const GestionDb = new db.table("gestion");
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'clearwl',
|
name: 'clearwl',
|
||||||
@@ -13,8 +12,14 @@ module.exports = {
|
|||||||
async execute(message, args, client) {
|
async execute(message, args, client) {
|
||||||
const botId = message.client.user.id;
|
const botId = message.client.user.id;
|
||||||
const guildId = message.guild.id;
|
const guildId = message.guild.id;
|
||||||
GestionDb.set(`${botId}.${guildId}.whitelist`, {});
|
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify({ whitelist: {} })], (err) => {
|
||||||
console.log("whitelist renouveler")
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve({ message: 'La liste blanche a été effacée.' });
|
||||||
|
}
|
||||||
|
});
|
||||||
message.reply("Toutes la whitelist a etait supprimer")
|
message.reply("Toutes la whitelist a etait supprimer")
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
const { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } = require('discord.js');
|
const { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } = require('discord.js');
|
||||||
const db = require('quick.db');
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const PrevnameDb = new db.table("prevname");
|
const db = new sqlite3.Database('myDatabase.db');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'prevname',
|
name: 'prevname',
|
||||||
description: 'Affiche tous les pseudos précédents et permet de les supprimer',
|
description: 'Affiche tous les pseudos précédents et permet de les supprimer',
|
||||||
@@ -9,21 +10,30 @@ module.exports = {
|
|||||||
utilisation: 'prevname',
|
utilisation: 'prevname',
|
||||||
async execute(message, args) {
|
async execute(message, args) {
|
||||||
const userId = message.author.id;
|
const userId = message.author.id;
|
||||||
const nameChanges = PrevnameDb.get(`${userId}.nameChanges`) || [];
|
|
||||||
|
let nameChanges = await new Promise((resolve, reject) => {
|
||||||
|
db.get('SELECT value FROM prevname WHERE id = ?', [userId], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row ? JSON.parse(row.value) : []);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
let description = 'Vous n\'avez pas de pseudos précédents enregistrés.';
|
let description = 'Vous n\'avez pas de pseudos précédents enregistrés.';
|
||||||
if (nameChanges.length > 0) {
|
if (nameChanges.length > 0) {
|
||||||
description = nameChanges.map((change, index) => `${index + 1}. ${change.newName} - <t:${change.changeDate}:F>`).join('\n');
|
description = nameChanges.map((change, index) => `${index + 1}. ${change.newName} - <t:${change.changeDate}:F>`).join('\n');
|
||||||
}
|
}
|
||||||
const embed = new EmbedBuilder()
|
const embed = new EmbedBuilder()
|
||||||
.setTitle('Pseudos précédents')
|
.setTitle('Pseudos précédents')
|
||||||
.setDescription(description)
|
.setDescription(description)
|
||||||
.setColor('#0099ff');
|
.setColor('#0099ff');
|
||||||
|
|
||||||
const deleteButton = new ButtonBuilder()
|
const deleteButton = new ButtonBuilder()
|
||||||
.setCustomId(`deleteprevnames_${message.author.id}`)
|
.setCustomId(`deleteprevnames_${message.author.id}`)
|
||||||
.setEmoji('🗑️')
|
.setEmoji('🗑️')
|
||||||
.setStyle(ButtonStyle.Secondary)
|
.setStyle(ButtonStyle.Secondary);
|
||||||
|
|
||||||
const row = new ActionRowBuilder()
|
const row = new ActionRowBuilder()
|
||||||
.addComponents(deleteButton);
|
.addComponents(deleteButton);
|
||||||
|
|||||||
+28
-29
@@ -1,12 +1,6 @@
|
|||||||
const Weather = require('weather');
|
const Discord = require('discord.js');
|
||||||
const { EmbedBuilder } = require('discord.js');
|
const axios = require('axios');
|
||||||
const appID = '';
|
|
||||||
const appCode = '';
|
|
||||||
|
|
||||||
const weather = new Weather({
|
|
||||||
appID,
|
|
||||||
appCode
|
|
||||||
});
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: 'weather',
|
name: 'weather',
|
||||||
description: 'Affiche les informations météorologiques d\'une ville',
|
description: 'Affiche les informations météorologiques d\'une ville',
|
||||||
@@ -14,27 +8,32 @@ module.exports = {
|
|||||||
emote: '☀️',
|
emote: '☀️',
|
||||||
utilisation: 'weather [ville]',
|
utilisation: 'weather [ville]',
|
||||||
async execute(message, args) {
|
async execute(message, args) {
|
||||||
if (args.length < 2) {
|
try {
|
||||||
return message.channel.send('Veuillez fournir une ville et un pays.');
|
const APIKEY = '1e59407044fd6d842180610a8c423aa4';
|
||||||
|
const city = args[0];
|
||||||
|
|
||||||
|
if (!city) {
|
||||||
|
return message.channel.send('Veuillez fournir une ville.');
|
||||||
|
}
|
||||||
|
|
||||||
|
const response = await axios.get(`https://api.openweathermap.org/data/2.5/weather?q=${encodeURIComponent(city)}&appid=${APIKEY}&units=metric`);
|
||||||
|
const weatherData = response.data;
|
||||||
|
|
||||||
|
const cityName = weatherData.name;
|
||||||
|
const temperature = weatherData.main.temp;
|
||||||
|
const weatherDescription = weatherData.weather[0].description;
|
||||||
|
|
||||||
|
const Embed = new Discord.MessageEmbed()
|
||||||
|
.setTitle(`Meteo à ${cityName}`)
|
||||||
|
.setDescription(`🌡・Temperature: ${temperature}°C\n⛅・Temps: ${weatherDescription}`)
|
||||||
|
.setTimestamp()
|
||||||
|
.setColor('RANDOM') // Discord.js uses 'RANDOM' for random colors
|
||||||
|
.setFooter({text: message.client.user.username, iconURL: message.client.user.displayAvatarURL({dynamic: true})});
|
||||||
|
|
||||||
|
await message.channel.send({ embeds: [Embed] });
|
||||||
|
} catch(e) {
|
||||||
|
console.error(e);
|
||||||
|
await message.channel.send(`Je n'ai pas trouvé la ville ${city}!`);
|
||||||
}
|
}
|
||||||
|
|
||||||
const city = args[0];
|
|
||||||
const country = args[1];
|
|
||||||
|
|
||||||
const weatherData = await weather.now(`${city}, ${country}`).then((results) => {
|
|
||||||
console.log(results);
|
|
||||||
});
|
|
||||||
const embed = new EmbedBuilder()
|
|
||||||
.setTitle(`🌤️ Météo pour ${weatherData.location.name}`)
|
|
||||||
.setDescription(`Température: ${weatherData.current.temperature}°C`)
|
|
||||||
.addFields(
|
|
||||||
{ name: '🌦️ Conditions', value: weatherData.current.skytext, inline: true },
|
|
||||||
{ name: '💨 Vent', value: weatherData.current.winddisplay, inline: true },
|
|
||||||
{ name: '💧 Humidité', value: weatherData.current.humidity, inline: true }
|
|
||||||
)
|
|
||||||
.setFooter('Informations météorologiques fournies par Weather.com');
|
|
||||||
|
|
||||||
|
|
||||||
message.channel.send({ embeds: [embed] });
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
+13
-3
@@ -17,11 +17,21 @@ module.exports = {
|
|||||||
db.serialize(() => {
|
db.serialize(() => {
|
||||||
db.run('CREATE TABLE IF NOT EXISTS gestion (id TEXT PRIMARY KEY, value TEXT)', (err) => {
|
db.run('CREATE TABLE IF NOT EXISTS gestion (id TEXT PRIMARY KEY, value TEXT)', (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(err.message);
|
console.error(err.message);
|
||||||
reject(err);
|
reject(err);
|
||||||
} else {
|
} else {
|
||||||
|
console.log('Table gestion created or already exists.');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
db.run('CREATE TABLE IF NOT EXISTS prevname (id TEXT PRIMARY KEY, value TEXT)', (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
console.log('Table prevname created or already exists.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
const {Events , ModalBuilder, TextInputStyle, ActionRowBuilder, TextInputBuilder , EmbedBuilder} = require("discord.js")
|
const {Events , ModalBuilder, TextInputStyle, ActionRowBuilder, TextInputBuilder , EmbedBuilder} = require("discord.js")
|
||||||
const db = require('quick.db');
|
|
||||||
const PrevnameDb = new db.table("prevname");
|
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const db2 = new sqlite3.Database('myDatabase.db');
|
const db2 = new sqlite3.Database('myDatabase.db');
|
||||||
module.exports = {
|
module.exports = {
|
||||||
@@ -26,17 +24,33 @@ module.exports = {
|
|||||||
await interaction.message.delete();
|
await interaction.message.delete();
|
||||||
} else if (interaction.customId.startsWith('deleteprevnames_')) {
|
} else if (interaction.customId.startsWith('deleteprevnames_')) {
|
||||||
const userId = interaction.customId.split('_')[1];
|
const userId = interaction.customId.split('_')[1];
|
||||||
if (interaction.user.id !== userId) {
|
if (interaction.user.id !== userId) {
|
||||||
await interaction.reply({ content: "vous n'avez pas la permission de suprimer cette suggestion.", ephemeral: true });
|
await interaction.reply({ content: "vous n'avez pas la permission de supprimer cette suggestion.", ephemeral: true });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!PrevnameDb.has(userId)) {
|
|
||||||
await interaction.reply({ content: "Vous n'avez aucun prevname à supprimer.", ephemeral: true });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await PrevnameDb.delete(userId)
|
let hasPrevname = await new Promise((resolve, reject) => {
|
||||||
await interaction.reply({ content: "Vos prevname on etait correctement supprimer.", ephemeral: true });
|
db2.get('SELECT value FROM prevname WHERE id = ?', [userId], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row !== undefined);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!hasPrevname) {
|
||||||
|
await interaction.reply({ content: "Vous n'avez aucun prevname à supprimer.", ephemeral: true });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
db2.run('DELETE FROM prevname WHERE id = ?', [userId], (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
} else {
|
||||||
|
interaction.reply({ content: "Vos prevname ont été correctement supprimés.", ephemeral: true });
|
||||||
|
}
|
||||||
|
});
|
||||||
} else if (interaction.customId.startsWith('addconfession_')) {
|
} else if (interaction.customId.startsWith('addconfession_')) {
|
||||||
|
|
||||||
let data = await new Promise((resolve, reject) => {
|
let data = await new Promise((resolve, reject) => {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const db = require('quick.db');
|
const { QuickDB } = require("quick.db");
|
||||||
const GestionDb = new db.table('gestion');
|
const db = new QuickDB()
|
||||||
const sqlite3 = require('sqlite3').verbose();
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const db2 = new sqlite3.Database('myDatabase.db');
|
const db2 = new sqlite3.Database('myDatabase.db');
|
||||||
const {Events} = require("discord.js")
|
const {Events} = require("discord.js")
|
||||||
@@ -32,7 +32,20 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const limitedRoles = GestionDb.get(`${botId}.${guildId}.rolelimits`) || [];
|
let limitedRoles = await new Promise((resolve, reject) => {
|
||||||
|
db2.get('SELECT value FROM gestion WHERE id = ?', [`${botId}.${guildId}.rolelimits`], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row ? JSON.parse(row.value) : []);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!Array.isArray(limitedRoles)) {
|
||||||
|
limitedRoles = [];
|
||||||
|
}
|
||||||
|
|
||||||
const addedRoles = newMember.roles.cache.filter(role => !oldMember.roles.cache.has(role.id));
|
const addedRoles = newMember.roles.cache.filter(role => !oldMember.roles.cache.has(role.id));
|
||||||
|
|
||||||
addedRoles.forEach(async role => {
|
addedRoles.forEach(async role => {
|
||||||
|
|||||||
@@ -1,20 +1,34 @@
|
|||||||
const { Events } = require("discord.js");
|
const { Events } = require("discord.js");
|
||||||
const db = require('quick.db');
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
const PrevnameDb = new db.table("prevname");
|
const db = new sqlite3.Database('myDatabase.db');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: Events.GuildMemberUpdate,
|
name: Events.GuildMemberUpdate,
|
||||||
async execute(oldMember, newMember) {
|
async execute(oldMember, newMember) {
|
||||||
if (oldMember.displayName !== newMember.displayName) {
|
if (oldMember.displayName !== newMember.displayName) {
|
||||||
let changeData = {
|
let changeData = {
|
||||||
oldName: oldMember.displayName,
|
oldName: oldMember.displayName,
|
||||||
newName: newMember.displayName,
|
newName: newMember.displayName,
|
||||||
changeDate: Math.floor(Date.now() / 1000)
|
changeDate: Math.floor(Date.now() / 1000)
|
||||||
};
|
};
|
||||||
let nameChanges = PrevnameDb.get(`${newMember.id}.nameChanges`) || [];
|
|
||||||
|
let nameChanges = await new Promise((resolve, reject) => {
|
||||||
|
db.get('SELECT value FROM prevname WHERE id = ?', [newMember.id], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
resolve(row ? JSON.parse(row.value) : []);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
nameChanges.push(changeData);
|
nameChanges.push(changeData);
|
||||||
|
|
||||||
PrevnameDb.set(`${newMember.id}.nameChanges`, nameChanges);
|
db.run('INSERT OR REPLACE INTO prevname (id, value) VALUES (?, ?)', [newMember.id, JSON.stringify(nameChanges)], (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
Generated
+10
-24
@@ -11,6 +11,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@m3rcena/weky": "^4.3.1",
|
"@m3rcena/weky": "^4.3.1",
|
||||||
"axios": "^1.6.7",
|
"axios": "^1.6.7",
|
||||||
|
"better-sqlite3": "^9.4.3",
|
||||||
"color-name-list": "^10.19.0",
|
"color-name-list": "^10.19.0",
|
||||||
"discord-gamecord": "^4.4.1",
|
"discord-gamecord": "^4.4.1",
|
||||||
"discord-giveaway": "^1.1.5",
|
"discord-giveaway": "^1.1.5",
|
||||||
@@ -23,8 +24,7 @@
|
|||||||
"mal-scraper": "^2.13.1",
|
"mal-scraper": "^2.13.1",
|
||||||
"md5": "^2.3.0",
|
"md5": "^2.3.0",
|
||||||
"ms": "^2.1.3",
|
"ms": "^2.1.3",
|
||||||
"quick.db": "^7.1.3",
|
"quick.db": "^9.1.7",
|
||||||
"sqlite": "^5.1.1",
|
|
||||||
"sqlite3": "^5.1.7",
|
"sqlite3": "^5.1.7",
|
||||||
"to-zalgo": "^1.0.1",
|
"to-zalgo": "^1.0.1",
|
||||||
"weather": "^1.0.4"
|
"weather": "^1.0.4"
|
||||||
@@ -213,14 +213,6 @@
|
|||||||
"url": "https://opencollective.com/node-fetch"
|
"url": "https://opencollective.com/node-fetch"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@m3rcena/weky/node_modules/quick.db": {
|
|
||||||
"version": "9.1.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/quick.db/-/quick.db-9.1.7.tgz",
|
|
||||||
"integrity": "sha512-ZLPVLVFZtvFRLHqIK99iyrLDUznOTpnp5tB+QpGErT+reDSvgBELuVsMkGSSiqKT9R2YSOhO+096Wb0xTaOHMA==",
|
|
||||||
"dependencies": {
|
|
||||||
"lodash": "^4.17.21"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@m3rcena/weky/node_modules/string-width": {
|
"node_modules/@m3rcena/weky/node_modules/string-width": {
|
||||||
"version": "7.1.0",
|
"version": "7.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/string-width/-/string-width-7.1.0.tgz",
|
||||||
@@ -488,13 +480,13 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/better-sqlite3": {
|
"node_modules/better-sqlite3": {
|
||||||
"version": "7.6.2",
|
"version": "9.4.3",
|
||||||
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-9.4.3.tgz",
|
||||||
"integrity": "sha512-S5zIU1Hink2AH4xPsN0W43T1/AJ5jrPh7Oy07ocuW/AKYYY02GWzz9NH0nbSMn/gw6fDZ5jZ1QsHt1BXAwJ6Lg==",
|
"integrity": "sha512-ud0bTmD9O3uWJGuXDltyj3R47Nz0OHX8iqPOT5PMspGqlu/qQFn+5S2eFBUCrySpavTjFXbi4EgrfVvPAHlImw==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bindings": "^1.5.0",
|
"bindings": "^1.5.0",
|
||||||
"prebuild-install": "^7.1.0"
|
"prebuild-install": "^7.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/bindings": {
|
"node_modules/bindings": {
|
||||||
@@ -2567,12 +2559,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/quick.db": {
|
"node_modules/quick.db": {
|
||||||
"version": "7.1.3",
|
"version": "9.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/quick.db/-/quick.db-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/quick.db/-/quick.db-9.1.7.tgz",
|
||||||
"integrity": "sha512-0S1fVb9OAZGhkI4ZIc5Oe4yWMwhz20xSsziwd6+yGWKKMsPt+XOfj/gD5CesGxd2WdqBkZFBiP8ZqWDu55HLHA==",
|
"integrity": "sha512-ZLPVLVFZtvFRLHqIK99iyrLDUznOTpnp5tB+QpGErT+reDSvgBELuVsMkGSSiqKT9R2YSOhO+096Wb0xTaOHMA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"better-sqlite3": "^7.1.1",
|
"lodash": "^4.17.21"
|
||||||
"lodash": "^4.17.20"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/randombytes": {
|
"node_modules/randombytes": {
|
||||||
@@ -2865,11 +2856,6 @@
|
|||||||
"integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
|
"integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
"node_modules/sqlite": {
|
|
||||||
"version": "5.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz",
|
|
||||||
"integrity": "sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q=="
|
|
||||||
},
|
|
||||||
"node_modules/sqlite3": {
|
"node_modules/sqlite3": {
|
||||||
"version": "5.1.7",
|
"version": "5.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz",
|
"resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz",
|
||||||
|
|||||||
+2
-2
@@ -19,6 +19,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@m3rcena/weky": "^4.3.1",
|
"@m3rcena/weky": "^4.3.1",
|
||||||
"axios": "^1.6.7",
|
"axios": "^1.6.7",
|
||||||
|
"better-sqlite3": "^9.4.3",
|
||||||
"color-name-list": "^10.19.0",
|
"color-name-list": "^10.19.0",
|
||||||
"discord-gamecord": "^4.4.1",
|
"discord-gamecord": "^4.4.1",
|
||||||
"discord-giveaway": "^1.1.5",
|
"discord-giveaway": "^1.1.5",
|
||||||
@@ -31,8 +32,7 @@
|
|||||||
"mal-scraper": "^2.13.1",
|
"mal-scraper": "^2.13.1",
|
||||||
"md5": "^2.3.0",
|
"md5": "^2.3.0",
|
||||||
"ms": "^2.1.3",
|
"ms": "^2.1.3",
|
||||||
"quick.db": "^7.1.3",
|
"quick.db": "^9.1.7",
|
||||||
"sqlite": "^5.1.1",
|
|
||||||
"sqlite3": "^5.1.7",
|
"sqlite3": "^5.1.7",
|
||||||
"to-zalgo": "^1.0.1",
|
"to-zalgo": "^1.0.1",
|
||||||
"weather": "^1.0.4"
|
"weather": "^1.0.4"
|
||||||
|
|||||||
Reference in New Issue
Block a user