Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Discord = require("discord.js");
- const client = new Discord.Client();
- const prefix = "$";
- const pi = 3.14159265358979323846;
- function add (a = 0, b = 0) {
- return a + b;
- }
- function subtract(a = 0, b = 0) {
- return a - b;
- }
- function multiply(a = 0, b = 0) {
- return a * b;
- }
- function divide(a = 0, b = 0) {
- return a / b;
- }
- function modulo(a = 0, b = 0) {
- return a % b;
- }
- function squarePerimeter(side = 0) {
- return side * 4;
- }
- function rectanglePerimeter(length = 0, width = 0) {
- return (length * 2) + (width * 2);
- }
- function circlePerimeter(diameter = 0) {
- return pi * diameter;
- }
- function parallelogramPerimeter(length = 0, width = 0) {
- return (length * 2) + (width * 2);
- }
- function trianglePerimeter(base = 0, firstSide = 0, secondSide = 0) {
- return base + firstSide + secondSide;
- }
- function trapezePerimeter(firstBase = 0, secondBase = 0, firstSide = 0, secondSide = 0) {
- return firstBase + secondBase + firstSide + secondSide;
- }
- function diamondPerimeter(side = 0) {
- return side * 4;
- }
- function embedNumberOfParametersError(paramNumber) {
- let embed = new Discord.RichEmbed();
- embed.setTitle("Erreur : nombre de paramètres");
- embed.setDescription(`:x: Veuillez entrer **` + paramNumber + `** paramètres.`);
- embed.setColor("FF0000");
- return embed;
- }
- function embedNumberTypeError(expectedType) {
- let embed = new Discord.RichEmbed();
- embed.setTitle("Erreur : type de paramètres");
- embed.setDescription(`:x: Veuillez n'utiliser que des **` + expectedType + '**.');
- embed.setColor("FF0000");
- return embed;
- }
- function helpEmbed() {
- embed = new Discord.RichEmbed();
- embed.setTitle("Liste de toutes les commandes");
- embed.setColor("39E450");
- embed.addField(`RAPPEL : `, `$help <commande> donne de l'aide sur une commande spécifique.`);
- embed.addField(`RAPPEL 2 : `, `Le préfixe du bot est "$"`);
- embed.addField(`calc : `, `Effectue les opérations les plus basiques.`);
- embed.addField(`p : `, `Effectue les calculs de périmètre les plus courants.`);
- return embed;
- }
- function calcHelp() {
- embed = new Discord.RichEmbed();
- embed.setTitle("Aide de la commande : calc");
- embed.setColor("39E450");
- embed.addField("RAPPEL : ", "Les [paramètres] sont obligatoires, les <paramètres> non.");
- embed.addField("Description : ", "Permet d'effectuer les calculs suivants : addition, soustraction, multiplication, division et modulo.");
- embed.addField("Utilisation :", "$calc [nombre 1] [opérateur] [nombre 2]");
- embed.addField("Exemple :", "$calc 5 + 5\n $calc 10 - 5\n $calc 5 * 5\n $calc 10 / 5\n $calc 10 % 3");
- return embed;
- }
- function embedResult(result, calculation, explanation) {
- embed = new Discord.RichEmbed();
- embed.setTitle("Résultat :");
- embed.setColor("4DE0FD");
- embed.setDescription(calculation + ` : ` + explanation + ` = **` + result + `**`);
- embed.setFooter("Calcul : " + calculation);
- return embed;
- }
- client.on("ready", () => {
- console.log("I'm ready !");
- });
- client.on("message", message => {
- if(message.author.bot) return;
- if(message.content.startsWith(prefix)) {
- const args = message.content.slice(prefix.length).trim().split(/ +/g);
- const command = args.shift().toLowerCase();
- if(message.content.startsWith(prefix + command)) {
- if(command === "calc") {
- const calculationChoice = args[1];
- if(calculationChoice === "+") {
- let a = parseFloat(args[0]);
- let b = parseFloat(args[2]);
- if(!Number.isNaN(a) && !Number.isNaN(b) && args.length === 3) {
- message.channel.send(embedResult(add(a, b), "Addition", a + ` + ` + b));
- }
- else if(args.length !== 3){
- message.channel.send(embedNumberOfParametersError(2));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(calculationChoice === "-") {
- let a = parseFloat(args[0]);
- let b = parseFloat(args[2]);
- if(!Number.isNaN(a) && !Number.isNaN(b) && args.length === 3) {
- message.channel.send(embedResult(subtract(a, b), "Soustraction", a + ` - ` + b));
- }
- else if(args.length !== 3) {
- message.channel.send(embedNumberOfParametersError(2));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(calculationChoice === "*") {
- let a = parseFloat(args[0]);
- let b = parseFloat(args[2]);
- if(!Number.isNaN(a) && !Number.isNaN(b) && args.length === 3) {
- message.channel.send(embedResult(multiply(a, b), "Multiplication", a + ` * ` + b));
- }
- else if(args.length !== 3) {
- message.channel.send(embedNumberOfParametersError(2));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(calculationChoice === "/") {
- let a = parseFloat(args[0]);
- let b = parseFloat(args[2]);
- if(!Number.isNaN(a) && !Number.isNaN(b) && args.length === 3) {
- message.channel.send(embedResult(divide(a, b), "Division", a + ` / ` + b));
- }
- else if(args.length !== 3) {
- message.channel.send(embedNumberOfParametersError(2));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(calculationChoice === "%") {
- let a = parseFloat(args[0]);
- let b = parseFloat(args[2]);
- if(!Number.isNaN(a) && !Number.isNaN(b) && args.length === 3 && a > b) {
- message.channel.send(embedResult(modulo(a, b), "Modulo", a + " % " + b));
- }
- else if(args.length !== 3) {
- message.channel.send(embedNumberOfParametersError(2));
- }
- else if(a < b) {
- embed = new Discord.RichEmbed();
- embed.setTitle("Erreur : incompatibilité des paramètres");
- embed.setColor("FF0000");
- embed.setDescription(`:x: Veuillez utiliser des paramètres compatibles à l'opérateur "%" : **le premier paramètre doit être supérieur au deuxième**`);
- message.channel.send(embed);
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- }
- else if(command === "p") {
- const shapeChoice = args[0];
- if(shapeChoice === "square") {
- let side = parseFloat(args[1]);
- if(!Number.isNaN(side) && args.length === 2) {
- message.channel.send(embedResult(squarePerimeter(side), `Périmètre`, side + " * 4"));
- }
- else if(args.length !== 2) {
- message.channel.send(embedNumberOfParametersError(1));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(shapeChoice === "rectangle") {
- let length = parseFloat(args[1]);
- let width = parseFloat(args[2]);
- if(!Number.isNaN(length) && !Number.isNaN(width) && args.length === 3) {
- message.channel.send(embedResult(rectanglePerimeter(length, width), "Périmètre", length + " * 2 + " + width + " * 2"));
- }
- else if(args.length !== 3) {
- message.channel.send(embedNumberOfParametersError(2));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(shapeChoice === "circle") {
- let diameter = parseFloat(args[1]);
- if(!Number.isNaN(diameter) && args.length === 2) {
- message.channel.send(embedResult(circlePerimeter(diameter), "Périmètre", "pi * " + diameter));
- }
- else if(args.length !== 2) {
- message.channel.send(embedNumberOfParametersError(1));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(shapeChoice === "parallelogram") {
- let length = parseFloat(args[1]);
- let width = parseFloat(args[2]);
- if(!Number.isNaN(length) && !Number.isNaN(width) && args.length === 3) {
- message.channel.send(embedResult(parallelogramPerimeter(length, width), "Périmètre", length + " * 2 + " + width + " * 2"));
- }
- else if(args.length !== 3) {
- message.channel.send(embedNumberOfParametersError(2));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(shapeChoice === "triangle") {
- let base = parseFloat(args[1]);
- let firstSide = parseFloat(args[2]);
- let secondSide = parseFloat(args[3]);
- if(!Number.isNaN(base) && !Number.isNaN(firstSide) && !Number.isNaN(secondSide) && args.length === 4) {
- message.channel.send(embedResult(trianglePerimeter(base, firstSide, secondSide), "Périmètre", firstBase + " + " + firstSide + " + " + secondSide));
- }
- else if(args.length !== 4) {
- message.channel.send(embedNumberOfParametersError(3));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(shapeChoice === "trapeze") {
- let firstBase = parseFloat(args[1]);
- let secondBase = parseFloat(args[2]);
- let firstSide = parseFloat(args[3]);
- let secondSide = parseFloat(args[4]);
- if(!Number.isNaN(firstBase) && !Number.isNaN(secondBase) && !Number.isNaN(firstSide) && !Number.isNaN(secondSide) && args.length === 5) {
- message.channel.send(embedResult(trapezePerimeter(firstBase, secondBase, firstSide, secondSide), "Périmètre", firstBase + " + " + secondBase + " + " + firstSide + " + " + secondSide));
- }
- else if(args.length !== 5) {
- message.channel.send(embedNumberOfParametersError(4));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- else if(shapeChoice === "diamond") {
- let side = parseFloat(args[1]);
- if(!Number.isNaN(side) && args.length === 2) {
- message.channel.send(embedResult(diamondPerimeter(side), "Périmètre", side + " * 4"));
- }
- else if(args.length !== 2) {
- message.channel.send(embedNumberOfParametersError(1));
- }
- else {
- message.channel.send(embedNumberTypeError("nombres"));
- }
- }
- }
- else if(command === "help") {
- if()
- }
- }
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement