Merge branch 'main' of gitlab.ataxya.net:lantium/lanbot_music

This commit is contained in:
2022-04-18 22:16:37 +02:00
13 changed files with 591 additions and 139 deletions

16
commands/Games/chess.js Normal file
View File

@@ -0,0 +1,16 @@
const { DiscordTogether } = require('discord-together');
client.discordTogether = new DiscordTogether(client);
module.exports = {
name: 'chess',
aliases: ['chess'],
utilisation: '{prefix}chess',
execute(client, message) {
client.discordTogether.createTogetherCode(message.member.voice.channel.id, 'chess').then(async invite => {
return message.channel.send(`Pour lancer l'activité merci de cliquer sur le lien suivant : ${invite.code} et pas sur le bouton **Jouer**`);
});
},
};

16
commands/Games/ocho.js Normal file
View File

@@ -0,0 +1,16 @@
const { DiscordTogether } = require('discord-together');
client.discordTogether = new DiscordTogether(client);
module.exports = {
name: 'UNO',
aliases: ['UNO', 'uno', 'ocho'],
utilisation: '{prefix}uno',
execute(client, message) {
client.discordTogether.createTogetherCode(message.member.voice.channel.id, 'ocho').then(async invite => {
return message.channel.send(`Pour lancer l'activité merci de cliquer sur le lien suivant : ${invite.code} et pas sur le bouton **Jouer**`);
});
},
};

16
commands/Games/poker.js Normal file
View File

@@ -0,0 +1,16 @@
const { DiscordTogether } = require('discord-together');
client.discordTogether = new DiscordTogether(client);
module.exports = {
name: 'poker',
aliases: ['pocker'],
utilisation: '{prefix}poker',
execute(client, message) {
client.discordTogether.createTogetherCode(message.member.voice.channel.id, 'poker').then(async invite => {
return message.channel.send(`Pour lancer l'activité merci de cliquer sur le lien suivant : ${invite.code} et pas sur le bouton **Jouer**`);
});
},
};

View File

@@ -1,10 +1,16 @@
const ms = require("ms");
const fs = require("fs");
const path = require("path");
const uuid = require("uuid").v4;
const mongoose = require("mongoose");
const dbFileName = path.resolve(".", "utils", "todo.json");
let database = [];
const todoSchema = new mongoose.Schema({
uuid: String,
author: String,
time: String,
channel: String,
guild: String,
message: String,
});
const Todo = mongoose.model("Todo", todoSchema);
module.exports = {
name: "todo",
@@ -12,33 +18,28 @@ module.exports = {
utilisation: "{prefix}todo <time> <salon> <message>",
async onStart(client) {
updateDatabase();
const remainingTodos = await TodoUtils.loadAll();
const currentTime = Date.now();
database.forEach((reminder) => {
remainingTodos.forEach(async reminder => {
const delay = reminder.time - currentTime;
if (delay < 0) {
setTimeout(() => {
setTimeout(async () => {
const discordChannel = client.channels.resolve(reminder.channel);
discordChannel.send(
`La SNCF vous présente ses excuses pour le retard <@${reminder.author}> ! tu m'as demandé de te rappeler\n---------------------\n${reminder.message}`
);
updateDatabase();
database = database.filter((struct) => struct.uuid !== reminder.uuid);
saveDatabase();
await TodoUtils.deleteOne(reminder.uuid);
}, 1000);
} else {
setTimeout(() => {
setTimeout(async () => {
const discordChannel = client.channels.resolve(reminder.channel);
discordChannel.send(
`<@${reminder.author}>, tu m'as demandé de te rappeler\n---------------------\n${reminder.message}`
);
updateDatabase();
database = database.filter((struct) => struct.uuid !== reminder.uuid);
saveDatabase();
await TodoUtils.deleteOne(reminder.uuid);
}, delay);
}
});
console.log("-> ON START !!!!! ça marche putain!");
},
async execute(client, message, args) {
let reveilTime = ms(args[0]);
@@ -46,53 +47,36 @@ module.exports = {
const channel = args[1].replace(/[^0-9]/g, "");
let salon = parseInt(channel) ? channel : defaut;
const reason = args.splice(salon == defaut ? 1 : 2).join(" ");
const reminderStruct = {
const reminder = new Todo({
uuid: uuid(),
author: message.author.id,
time: Date.now() + reveilTime,
channel: salon,
guild: message.guild.id,
message: reason,
};
});
await reminder.save();
setTimeout(function () {
const discordChannel = message.guild.channels.cache.get(salon);
setTimeout(async function () {
const discordChannel = client.channels.resolve(salon);
discordChannel.send(
`<@${reminderStruct.author}>, tu m'as demandé de te rappeler\n---------------------\n${reminderStruct.message}`
`<@${message.author.id}>, tu m'as demandé de te rappeler\n---------------------\n${reason}`
);
updateDatabase();
database = database.filter(
(struct) => struct.uuid !== reminderStruct.uuid
);
saveDatabase();
await TodoUtils.deleteOne(reminder.uuid);
}, reveilTime);
//check if file todo.json content is empty
updateDatabase();
database.push(reminderStruct);
saveDatabase();
// message.react("🤌");
// message.react("👌");
message.delete().catch(() => message.react("🤌"));
},
};
const updateDatabase = () => {
if (fs.existsSync(dbFileName)) {
const fileContent = fs.readFileSync(dbFileName);
database.push(...JSON.parse(fileContent));
}
const TodoUtils = {
loadAll: async () => {
return await Todo.find();
},
findOne: async (uuid) => {
return await Todo.find({uuid});
},
deleteOne: async (uuid) => {
return await Todo.deleteOne({uuid});
},
};
const saveDatabase = () => {
const foundUUIDs = [];
database = database.filter((struct) => {
if (!foundUUIDs.includes(struct.uuid)) {
foundUUIDs.push(struct.uuid);
return true;
}
return false;
});
fs.writeFileSync(dbFileName, JSON.stringify(database, null, 2));
};

View File

@@ -1,97 +1,80 @@
const ms = require("ms");
const fs = require("fs");
const path = require("path");
const uuid = require("uuid").v4;
const mongoose = require("mongoose");
const dbFileName = path.resolve(".", "utils", "todoMP.json");
let database = [];
const todoSchema = new mongoose.Schema({
uuid: String,
author: String,
time: String,
user: String,
message: String,
});
const TodoMP = mongoose.model("TodoMP", todoSchema);
module.exports = {
name: "todoMP",
aliases: ["todoMP"],
utilisation: "{prefix}todo <time> <user> <message>",
aliases: ["todoMP", "MP"],
utilisation: "{prefix}todo <time> <user or you> <message>",
async onStart(client) {
updateDatabase();
const remainingTodos = await TodoUtils.loadAll();
const currentTime = Date.now();
database.forEach((reminder) => {
remainingTodos.forEach(async (reminder) => {
const delay = reminder.time - currentTime;
if (delay < 0) {
setTimeout(() => {
const discordChannel = client.channels.resolve(reminder.channel);
discordChannel.send(
`La SNCF vous présente ses excuses pour le retard <@${reminder.author}> ! tu m'as demandé de te rappeler\n---------------------\n${reminder.message}`
setTimeout(async () => {
const discordUserMP = client.users.resolve(reminder.user);
discordUserMP.send(
`Bonjour <@${reminder.user}>, La SNCF vous présente ses excuses pour le retard !\nJ'ai un message de la part de <@${reminder.author}> :\n---------------------\n${reminder.message}`
);
updateDatabase();
database = database.filter((struct) => struct.uuid !== reminder.uuid);
saveDatabase();
await TodoUtils.deleteOne(reminder.uuid);
}, 1000);
} else {
setTimeout(() => {
const discordChannel = client.channels.resolve(reminder.channel);
discordChannel.send(
`<@${reminder.author}>, tu m'as demandé de te rappeler\n---------------------\n${reminder.message}`
setTimeout(async () => {
const discordUserMP = client.users.resolve(reminder.user);
discordUserMP.send(
`Bonjour <@${reminder.user}>, J'ai un message de la part de <@${reminder.author}> :\n---------------------\n${reminder.message}`
);
updateDatabase();
database = database.filter((struct) => struct.uuid !== reminder.uuid);
saveDatabase();
await TodoUtils.deleteOne(reminder.uuid);
}, delay);
}
});
console.log("-> ON START !!!!! ça marche putain!");
},
async execute(client, message, args) {
let reveilTime = ms(args[0]);
const user = args[1];
// all after args[1]
const reason = args.splice(2).join(" ");
//const reason = args.splice(salon == defaut ? 1 : 2).join(" ");
const reminderStruct = {
const defaut = message.author.id;
const userStand = args[1].replace(/[^0-9]/g, "");
const user = parseInt(userStand) ? userStand : defaut;
const reason = args.splice(user == defaut ? 1 : 2).join(" ");
const reminder = new TodoMP({
uuid: uuid(),
author: message.author.id,
time: Date.now() + reveilTime,
user: user,
message: reason,
};
});
await reminder.save();
setTimeout(function () {
const discordChannel = message.mentions.users.first();
discordChannel.send(
`<@${reminderStruct.author}>, tu m'as demandé de te rappeler\n---------------------\n${reminderStruct.message}`
setTimeout(async function () {
const discordUserMP = client.users.resolve(reminder.user);
discordUserMP.send(
`Bonjour <@${reminder.user}>, J'ai un message de la part de <@${reminder.author}> :\n---------------------\n${reminder.message}`
);
updateDatabase();
database = database.filter(
(struct) => struct.uuid !== reminderStruct.uuid
);
saveDatabase();
await TodoUtils.deleteOne(reminder.uuid);
}, reveilTime);
//check if file todo.json content is empty
updateDatabase();
database.push(reminderStruct);
saveDatabase();
// message.react("🤌");
// message.react("👌");
message.delete().catch(() => message.react("🤌"));
},
};
const updateDatabase = () => {
if (fs.existsSync(dbFileName)) {
const fileContent = fs.readFileSync(dbFileName);
database.push(...JSON.parse(fileContent));
}
};
const saveDatabase = () => {
const foundUUIDs = [];
database = database.filter((struct) => {
if (!foundUUIDs.includes(struct.uuid)) {
foundUUIDs.push(struct.uuid);
return true;
}
return false;
});
fs.writeFileSync(dbFileName, JSON.stringify(database, null, 2));
const TodoUtils = {
loadAll: async () => {
return await TodoMP.find();
},
findOne: async (uuid) => {
return await TodoMP.find({ uuid });
},
deleteOne: async (uuid) => {
return await TodoMP.deleteOne({ uuid });
},
};