ajout de la gestion de la db de l'xp
+complétion du code manquant
This commit is contained in:
parent
e212368b16
commit
9aa2692f0b
111
index.js
111
index.js
@ -198,6 +198,76 @@ client.on('guildMemberRemove', member => {
|
|||||||
// Connexion du bot à Discord
|
// Connexion du bot à Discord
|
||||||
client.login('TOKEN_DU_BOT');
|
client.login('TOKEN_DU_BOT');
|
||||||
|
|
||||||
|
const sqlite3 = require('sqlite3').verbose();
|
||||||
|
|
||||||
|
// Connexion à la base de données SQLite
|
||||||
|
const db = new sqlite3.Database('./userXP.db', (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('Erreur lors de la connexion à la base de données :', err.message);
|
||||||
|
} else {
|
||||||
|
console.log('Connexion à la base de données réussie.');
|
||||||
|
// Créer une table pour stocker l'XP des utilisateurs si elle n'existe pas déjà
|
||||||
|
db.run(`CREATE TABLE IF NOT EXISTS userXP (
|
||||||
|
userId TEXT PRIMARY KEY,
|
||||||
|
xp INTEGER DEFAULT 0,
|
||||||
|
dailyXP INTEGER DEFAULT 0
|
||||||
|
)`);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Fonction pour récupérer l'XP d'un utilisateur depuis la base de données
|
||||||
|
function getUserXP(user) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
db.get('SELECT xp FROM userXP WHERE userId = ?', [user.id], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(row ? row.xp : 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fonction pour mettre à jour l'XP d'un utilisateur dans la base de données
|
||||||
|
function setUserXP(user, xp) {
|
||||||
|
db.run('INSERT OR REPLACE INTO userXP (userId, xp) VALUES (?, ?)', [user.id, xp], (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('Erreur lors de la mise à jour de l\'XP de l\'utilisateur :', err.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fonction pour récupérer l'XP quotidien d'un utilisateur depuis la base de données
|
||||||
|
function getUserDailyXP(user) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
db.get('SELECT dailyXP FROM userXP WHERE userId = ?', [user.id], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(row ? row.dailyXP : 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fonction pour mettre à jour l'XP quotidien d'un utilisateur dans la base de données
|
||||||
|
function updateUserDailyXP(user, amount) {
|
||||||
|
db.run('INSERT OR REPLACE INTO userXP (userId, dailyXP) VALUES (?, ?)', [user.id, amount], (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('Erreur lors de la mise à jour de l\'XP quotidienne de l\'utilisateur :', err.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Supprimer l'utilisateur de la base de données lorsque celui-ci quitte le serveur
|
||||||
|
client.on('guildMemberRemove', member => {
|
||||||
|
db.run('DELETE FROM userXP WHERE userId = ?', [member.id], (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('Erreur lors de la suppression de l\'utilisateur de la base de données :', err.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
// Variables globales pour stocker les paramètres XP et les canaux exclus
|
// Variables globales pour stocker les paramètres XP et les canaux exclus
|
||||||
let excludedChannels = [];
|
let excludedChannels = [];
|
||||||
let xpMultiplierChannels = [];
|
let xpMultiplierChannels = [];
|
||||||
@ -233,8 +303,21 @@ client.on('message', message => {
|
|||||||
|
|
||||||
// Fonction pour ajouter de l'XP à un utilisateur
|
// Fonction pour ajouter de l'XP à un utilisateur
|
||||||
function addXP(user, amount) {
|
function addXP(user, amount) {
|
||||||
// Logique pour ajouter l'XP à l'utilisateur
|
// Récupérer l'XP actuelle de l'utilisateur depuis la base de données
|
||||||
// ...
|
getUserXP(user)
|
||||||
|
.then(currentXP => {
|
||||||
|
// Ajouter la quantité spécifiée à l'XP actuelle
|
||||||
|
const newXP = currentXP + amount;
|
||||||
|
|
||||||
|
// Mettre à jour l'XP de l'utilisateur dans la base de données
|
||||||
|
setUserXP(user, newXP);
|
||||||
|
|
||||||
|
// Vérifier si l'utilisateur a atteint un nouveau rang
|
||||||
|
checkAndUpdateUserRank(user, newXP);
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Erreur lors de l\'ajout de l\'XP à l\'utilisateur :', err);
|
||||||
|
});
|
||||||
|
|
||||||
// Vérifier si l'utilisateur a atteint un nouveau rang
|
// Vérifier si l'utilisateur a atteint un nouveau rang
|
||||||
const currentXP = getUserXP(user);
|
const currentXP = getUserXP(user);
|
||||||
@ -263,14 +346,30 @@ function getUserRank(user) {
|
|||||||
|
|
||||||
// Fonction pour obtenir l'XP d'un utilisateur
|
// Fonction pour obtenir l'XP d'un utilisateur
|
||||||
function getUserXP(user) {
|
function getUserXP(user) {
|
||||||
// Logique pour récupérer l'XP d'un utilisateur
|
return new Promise((resolve, reject) => {
|
||||||
// ...
|
db.get('SELECT xp FROM userXP WHERE userId = ?', [user.id], (err, row) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
} else {
|
||||||
|
resolve(row ? row.xp : 0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fonction pour obtenir le rôle associé à un rang
|
// Fonction pour obtenir le rôle associé à un rang
|
||||||
function getRoleFromRank(rank) {
|
function getRoleFromRank(rank) {
|
||||||
// Logique pour obtenir le rôle associé à un rang
|
// Tableau associant les rangs aux noms de rôles
|
||||||
// ...
|
const rankRoles = {
|
||||||
|
'Rang B': 'Role B',
|
||||||
|
'Rang A': 'Role A',
|
||||||
|
'Rang S': 'Role S',
|
||||||
|
'Rang S+': 'Role S+'
|
||||||
|
// Ajouter d'autres rangs et rôles au besoin
|
||||||
|
};
|
||||||
|
|
||||||
|
// Renvoyer le nom du rôle associé au rang spécifié
|
||||||
|
return rankRoles[rank];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commande pour obtenir le nouveau rang
|
// Commande pour obtenir le nouveau rang
|
||||||
|
Loading…
Reference in New Issue
Block a user