change quick.db to sqlite3

This commit is contained in:
VALOU3336
2024-02-25 21:25:18 +01:00
parent 15d2ea19c1
commit 667ac32ca1
48 changed files with 1433 additions and 2687 deletions
@@ -0,0 +1,11 @@
const { Events, InteractionType } = require("discord.js");
module.exports = {
name: Events.InteractionCreate,
async execute(client, interaction) {
if (interaction.type === InteractionType.ApplicationCommand) {
const command = client.commands.get(interaction.commandName);
await command.execute(interaction, client);
}
},
};
+49
View File
@@ -0,0 +1,49 @@
const sqlite3 = require('sqlite3').verbose();
const { Events } = require('discord.js');
const permissions = require('../../permissions.json');
module.exports = {
name: Events.ClientReady,
async execute(client) {
const db = new sqlite3.Database('myDatabase.db', (err) => {
if (err) {
console.error(err.message);
}
console.log('Connected to the SQLite database.');
});
let permissionsData = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
if (!permissionsData.permissions) {
permissionsData.permissions = {};
}
permissionsData.permissions = permissions;
const permissionsJson = JSON.stringify(permissionsData);
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [client.user.id, permissionsJson], (err) => {
if (err) {
console.error(err.message);
} else {
console.log(`Les permissions ont été chargées pour le bot ${client.user.tag}`);
}
});
console.log(`Le bot ${client.user.tag} est en ligne`);
process.on('uncaughtException', (error) => {
console.error('Uncaught Exception:', error);
});
process.on('unhandledRejection', (reason, promise) => {
console.error('Unhandled Rejection at:', promise, 'reason:', reason);
});
},
};
+68
View File
@@ -0,0 +1,68 @@
const { EmbedBuilder } = require('discord.js');
const sqlite3 = require('sqlite3').verbose();
// Setup SQLite3 database connection
const db = new sqlite3.Database('myDatabase.db');
module.exports = {
name: 'greet',
description: 'Ajoute ou supprime un salon des greet',
emote: '👋',
utilisation: 'greet <salon>',
category: 'gestion',
async execute(message, args) {
const botId = message.client.user.id;
const guildId = message.guild.id;
const channelId = args[0] ? args[0].replace(/<#|>/g, '') : message.channel.id;
// Query the greetings data from the SQLite3 database
let greet = await new EmbedBuilder((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
// Access the specific guild's greetings
let guildGreetings = greet[guildId] || [];
const index = guildGreetings.findIndex(greeting => greeting.channelId === channelId);
if (index !== -1) {
guildGreetings.splice(index, 1);
greet[guildId] = guildGreetings;
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(greet)], (err) => {
if (err) {
console.error(err.message);
}
});
const embed = new EmbedBuilder()
.setDescription(`Le salon <#${channelId}> a été retiré de la liste des salutations.`)
.setColor('#0099ff');
message.channel.send({ embeds: [embed] });
} else if (guildGreetings.length < 5) {
guildGreetings.push({ channelId });
greet[guildId] = guildGreetings;
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(greet)], (err) => {
if (err) {
console.error(err.message);
}
});
const embed = new EmbedBuilder()
.setDescription(`Le salon <#${channelId}> a été ajouté à la liste des salutations.`)
.setColor('#0099ff');
message.channel.send({ embeds: [embed] });
} else {
const embed = new EmbedBuilder()
.setDescription('Il y a déjà 5 salons dans la liste des salutations. Vous ne pouvez pas en ajouter d\'autres.')
.setColor('#ff0000');
message.channel.send({ embeds: [embed] });
}
},
};
+37
View File
@@ -0,0 +1,37 @@
const {Events} = require("discord.js")
const db = require('quick.db');
const PrevnameDb = new db.table("prevname");
const sqlite3 = require('sqlite3').verbose();
const db2 = new sqlite3.Database('myDatabase.db');
module.exports = {
name: Events.InteractionCreate,
async execute(interaction, client) {
const botId = client.user.id;
let owners = await new Promise((resolve, reject) => {
db2.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value).owners || {} : {});
});
});
if (!interaction.isButton()) return;
if (interaction.customId.startsWith('deletesuggestion_')) {
const userId= interaction.customId.split('_')[1];
if (interaction.user.id !== userId && !Object.keys(owners).includes(interaction.user.id)) {
await interaction.reply({ content: "vous n'avez pas la permission de supprimer cette suggestion.", ephemeral: true });
return;
}
await interaction.message.delete();
} else if (interaction.customId.startsWith('deleteprevnames_')) {
const userId = interaction.customId.split('_')[1];
if (interaction.user.id !== userId) {
await interaction.reply({ content: "vous n'avez pas la permission de suprimer cette suggestion.", ephemeral: true });
return;
}
await PrevnameDb.delete(userId)
await interaction.reply({ content: "Vos prevname on etait correctement supprimer.", ephemeral: true });
}
},
};
+47
View File
@@ -0,0 +1,47 @@
const sqlite3 = require('sqlite3').verbose();
const { Events } = require("discord.js");
const db = new sqlite3.Database('myDatabase.db');
module.exports = {
name: Events.GuildMemberAdd,
async execute(member) {
const botId = member.client.user.id;
const guildId = member.guild.id;
let greet = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const guildGreetings = greet[guildId] || [];
if (guildGreetings.length > 0) {
const welcomeMessage = `Bienvenue <@${member.id}> sur le serveur ${member.guild.name} !`;
const messagePromises = [];
for (const greeting of guildGreetings) {
try {
const channel = await member.guild.channels.fetch(greeting.channelId);
if (channel && channel.type === 0) {
messagePromises.push(
channel.send(welcomeMessage)
.then(message => {
setTimeout(() => message.delete(), 1000);
})
);
}
} catch (error) {
console.error(error);
}
}
try {
await Promise.all(messagePromises);
} catch (error) {
console.error(error);
}
}
},
};
+60
View File
@@ -0,0 +1,60 @@
const db = require('quick.db');
const GestionDb = new db.table('gestion');
const sqlite3 = require('sqlite3').verbose();
const db2 = new sqlite3.Database('myDatabase.db');
const {Events} = require("discord.js")
module.exports = {
name: Events.GuildMemberAdd,
async execute(oldMember, newMember) {
const botId = newMember.client.user.id;
const guildId = newMember.guild.id;
let data = await new Promise((resolve, reject) => {
db2.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
// Access the specific guild's blrank data
let blrank = data.blrank || {};
if (blrank[guildId] && blrank[guildId][newMember.id]) {
const addedRoles = newMember.roles.cache.filter(role => !oldMember.roles.cache.has(role.id));
addedRoles.forEach(async role => {
try {
await newMember.roles.remove(role);
} catch (error) {
console.error(`Erreur lors de la suppression du rôle <@&${role.id}> pour le membre ${newMember.user.tag}:`, error);
}
});
return;
}
const limitedRoles = GestionDb.get(`${botId}.${guildId}.rolelimits`) || [];
const addedRoles = newMember.roles.cache.filter(role => !oldMember.roles.cache.has(role.id));
addedRoles.forEach(async role => {
const limitedRole = limitedRoles.find(r => r.id === role.id);
if (limitedRole) {
const memberCount = newMember.guild.members.cache.filter(m => m.roles.cache.has(role.id)).size;
if (limitedRole.limit === 0) {
try {
await newMember.roles.remove(role);
} catch (error) {
console.error(`Erreur lors de la suppression du rôle <@&${role.id}> pour le membre ${newMember.user.tag}:`, error);
}
}
if (memberCount > limitedRole.limit) {
try {
await newMember.roles.remove(role);
} catch (error) {
console.error(`Erreur lors de la suppression du rôle <@&${role.id}> pour le membre ${newMember.user.tag}:`, error);
}
}
}
});
},
};
+46
View File
@@ -0,0 +1,46 @@
const sqlite3 = require('sqlite3').verbose();
const { Events } = require("discord.js");
// Setup SQLite3 database connection
const db = new sqlite3.Database('myDatabase.db');
module.exports = {
name: Events.VoiceStateUpdate,
async execute(oldState, newState) {
if (!oldState.channelId && newState.channelId) {
const guildId = newState.guild.id;
const botId = newState.client.user.id;
const channelId = newState.channelId;
// Query the bot's data from the SQLite3 database
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
// Access the specific guild's rolevocal data
let rolevocal = data.rolevocal || {};
let guildRoles = rolevocal[guildId] || {};
let channelRoles = guildRoles[channelId] || [];
if (channelRoles.length > 0) {
const member = newState.member;
for (const roleId of channelRoles) {
const role = newState.guild.roles.cache.get(roleId);
if (role) {
try {
await member.roles.add(role);
} catch (error) {
console.error(`Erreur lors de l'ajout du rôle ${roleId} à l'utilisateur ${member.id}:`, error);
}
}
}
}
}
},
};
+45
View File
@@ -0,0 +1,45 @@
const { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } = require('discord.js');
const sqlite3 = require('sqlite3').verbose();
const { Events } = require("discord.js");
const db = new sqlite3.Database('myDatabase.db');
module.exports = {
name: Events.MessageCreate,
async execute(message) {
const botId = message.client.user.id;
const guildId = message.guild.id;
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const suggestChannelId = data.suggestChannel && data.suggestChannel[guildId];
if (message.channel.id === suggestChannelId && !message.author.bot) {
await message.delete();
const embed = new EmbedBuilder()
.setAuthor({ name: message.author.tag, iconURL: message.author.displayAvatarURL() })
.setDescription(message.content || 'Aucun contenu fourni')
.setFooter({ text: `${message.guild.name} | ${message.client.user.username}`, })
.setColor('#409CED');
const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId(`deletesuggestion_${message.author.id}`)
.setLabel('Supprimer')
.setStyle(ButtonStyle.Danger)
);
const suggestionMessage = await message.channel.send({ embeds: [embed], components: [row] });
suggestionMessage.react('👎')
suggestionMessage.react('👍')
}
},
};
+15
View File
@@ -0,0 +1,15 @@
const {Events} = require("discord.js")
module.exports = {
name: Events.MessageDelete,
once: false,
async execute(message, client) {
if (message.author.bot) return;
client.snipes.set(message.channel.id, {
content: message.content,
author: message.author.id,
timestamp: Date.now(),
});
},
};
+20
View File
@@ -0,0 +1,20 @@
const { Events } = require("discord.js");
const db = require('quick.db');
const PrevnameDb = new db.table("prevname");
module.exports = {
name: Events.GuildMemberUpdate,
async execute(oldMember, newMember) {
if (oldMember.displayName !== newMember.displayName) {
let changeData = {
oldName: oldMember.displayName,
newName: newMember.displayName,
changeDate: Math.floor(Date.now() / 1000)
};
let nameChanges = PrevnameDb.get(`${newMember.id}.nameChanges`) || [];
nameChanges.push(changeData);
PrevnameDb.set(`${newMember.id}.nameChanges`, nameChanges);
}
},
};