mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 23:36:35 +02:00
98 lines
3.3 KiB
JavaScript
98 lines
3.3 KiB
JavaScript
const sqlite3 = require('sqlite3').verbose();
|
|
const db = new sqlite3.Database('myDatabase.db');
|
|
module.exports = {
|
|
name: 'unmarry',
|
|
description: 'Dissoudre un mariage',
|
|
emote: '💍',
|
|
category: 'game',
|
|
utilisation: '+unmarry',
|
|
execute(message, args, client) {
|
|
|
|
checkIfMarried(message.author.id, client).then(isMarried => {
|
|
if (!isMarried) {
|
|
return message.reply('Vous n\'êtes pas marié.');
|
|
}
|
|
|
|
findMarriage(message.author.id, client).then(marriagePair => {
|
|
if (!marriagePair) {
|
|
return message.reply('Une erreur s\'est produite lors de la recherche du mariage.');
|
|
}
|
|
|
|
unregisterMarriage(marriagePair, client).then(() => {
|
|
message.reply('Votre mariage a été dissous.');
|
|
}).catch(err => {
|
|
console.error(err);
|
|
message.reply('Une erreur s\'est produite lors de la suppression du mariage.');
|
|
});
|
|
}).catch(err => {
|
|
console.error(err);
|
|
message.reply('Une erreur s\'est produite lors de la recherche du mariage.');
|
|
});
|
|
}).catch(err => {
|
|
console.error(err);
|
|
message.reply('Une erreur s\'est produite lors de la vérification du mariage.');
|
|
});
|
|
},
|
|
};
|
|
|
|
async function checkIfMarried(userId, client) {
|
|
let data = 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);
|
|
}
|
|
const parsedData = row ? JSON.parse(row.value) : {};
|
|
parsedData.marry = parsedData.marry || [];
|
|
resolve(parsedData);
|
|
});
|
|
});
|
|
|
|
const isMarried = data.marry.some(pair => {
|
|
const [userId1, userId2] = pair.split('_');
|
|
return userId1 === userId || userId2 === userId;
|
|
});
|
|
|
|
return isMarried;
|
|
}
|
|
async function findMarriage(userId, client) {
|
|
let data = 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) : {});
|
|
});
|
|
});
|
|
|
|
const marriagePair = data.marry.find(pair => {
|
|
const [userId1, userId2] = pair.split('_');
|
|
return userId1 === userId || userId2 === userId;
|
|
});
|
|
|
|
return marriagePair;
|
|
}
|
|
|
|
async function unregisterMarriage(marriagePair, client) {
|
|
let data = 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) : {});
|
|
});
|
|
});
|
|
|
|
const [userId1, userId2] = marriagePair.split('_');
|
|
data.marry = data.marry.filter(pair => pair !== marriagePair && pair !== `${userId2}_${userId1}`);
|
|
|
|
|
|
db.run('UPDATE gestion SET value = ? WHERE id = ?', [JSON.stringify(data), client.user.id], function(err) {
|
|
if (err) {
|
|
console.error(err.message);
|
|
throw err;
|
|
}
|
|
});
|
|
} |