Skip to content

Commit c174280

Browse files
committed
Initial commit
hop le code déjà fait du bot arrive
1 parent fc6c901 commit c174280

27 files changed

+2971
-0
lines changed

HELP ME.txt

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
------------------------------------------------------------------------------------------------
2+
3+
EXPLICATIONS :
4+
5+
6+
Ceci est l'aide du command Handler que j'ai créé (je suis Ayfri), vous pouvez le partager à n'importe qui.
7+
Ce command handler est shardé de base (il gère les shards). Si vous voulez enlever ça, supprimez le fichier "index.js" et remettez votre token dans "main.js".
8+
Pour lancer le bot il faut utiliser avec nodeJS le fichier "index.js".
9+
Je vous conseil d'aller visiter le fichier "config.json" dans le dossier "informations" car vous pouvez modifier pas mal de choses et configurer aussi pas mal de choses.
10+
11+
Pour dire qui aura accès aux commandes de créateurs, regardez le tableau "owners" dans le fichier "config.json".
12+
13+
IMPORTANT : Laissez au moins 1 commande au démarrage du bot sinon il buguera (petite sécurité).
14+
15+
16+
------------------------------------------------------------------------------------------------
17+
18+
COMMENT ON CRÉÉ UNE COMMANDE ?
19+
20+
21+
Il faut créer un fichier .JS dans le dossier "commands" puis dedans mettre le contenu de
22+
"template.txt" qui se trouve dans le dossier "informations", ensuite devant le
23+
"serverForced" il faut mettre "true" ou "false" pour préciser si la commande est disponible
24+
uniquement sur server ou non.
25+
26+
Puis avec la description, l'utilisation et l'exemple vous définissez bien une commande.
27+
Ces derniers vous pouvez totalement les supprimer mais ils vous seront utiles si vous voulez faire une commande "help" car vous pourrez utiliser ces derniers très facilement.
28+
29+
30+
------------------------------------------------------------------------------------------------
31+
32+
OPTIONS DE LA COMMANDE :
33+
34+
35+
Dans "category : "" " vous devez mettre soit :
36+
- not-ready (commande disponible à tout le monde mais non prête)
37+
- owner (commande réservée à nous)
38+
- administration (uniquement pour les admins)
39+
- modération (uniquement pour ceux qui ont la perm KICK_MEMBERS)
40+
- utiles/fun/inforamtions/ceQueTuVeux (commandes normales)
41+
42+
Dans "aliases : []" c'est un tableau pour mettre des raccourcis/alias, vous n'êtes pas obligé d'en mettre.
43+
44+
Ensuite le "client" est déjà défini, le "message" aussi et le "args" c'est un tableau
45+
des mots que la personne a tappé. Donc si vous voulez mettre un argument à la commande c'est
46+
par exemple :
47+
48+
if(args[0] == "oui") {
49+
return message.channel.send("lol");
50+
}
51+
52+
------------------------------------------------------------------------------------------------
53+
54+
COMMENT ON CRÉÉ UN ÉVÈNEMENT ?
55+
56+
57+
Il faut créer un fichier .JS dans le dossier "events" puis dedans mettre le contenu de
58+
"template.txt" qui se trouve dans le dossier "informations".
59+
60+
------------------------------------------------------------------------------------------------
61+
62+
DIVERS :
63+
64+
Il y a une méthode dans la variable "client" qui permet d'enregistrer des fichiers
65+
(comme fs.writeFile()) mais sans utiliser fs, la syntaxe est : client.writeFile(chemin, objet).
66+
Il y a dans la méthode un JSON.stringify(objet, null, 4) au moment d'enregistrer.
67+
68+
Pour importer un module/fichier, le chemin de destination est :
69+
70+
const module = require("../module");
71+
const fichier = require("../informations/fichier.json");
72+
73+
Et pour utiliser un fichier/module dans le .run il faut juste :
74+
75+
const module = require("./truc");
76+
77+
78+
------------------------------------------------------------------------------------------------
79+
80+
INFORMATIONS :
81+
82+
83+
Ce command handler utilise la librairie Enmap (qui doit utiliser aussi better-sqlite), je vous conseil d'aller voir la liste des librairies, certaines pourraient être utiles.
84+
Un dernier petit conseil à la va vite, si vous galérez à afficher des dates avec des formats, utilisez la librairie "moment" ^^
85+
86+
Mon bot discord principal utilisant ce command handler : https://discordapp.com/oauth2/authorize?client_id=537534757668651009&scope=bot&permissions=8
87+
Le serveur de support de bot discord : https://discord.gg/n7HWd4P
88+
89+
Mon tag discord si vous voulez de l'aide : Ayfri#0453
90+
------------------------------------------------------------------------------------------------
91+
92+
93+
94+
Lien du Command Handler : https://mega.nz/#!2VQGjCrC!FoYoUVDP2ZDcIM8CCBkxOn6LpceHk7E2C4Ozi0iQaEc

commands/botinfos.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
const db = require("../db.js")
2+
const Discord = require("discord.js");
3+
4+
const {
5+
version
6+
} = require("discord.js");
7+
const moment = require("moment");
8+
const m = require("moment-duration-format");
9+
let os = require('os')
10+
let cpuStat = require("cpu-stat")
11+
const ms = require("ms")
12+
13+
module.exports.run = async (client, message, args) => {
14+
let sicon = message.guild.iconURL;
15+
16+
let cpuLol;
17+
cpuStat.usagePercent(function(err, percent, seconds) {
18+
if (err) {
19+
return console.log(err);
20+
}
21+
const duration = moment.duration(client.uptime).format(" D [days], H [hrs], m [mins], s [secs]");
22+
const embedStats = new Discord.RichEmbed()
23+
.setAuthor(message.guild.name, sicon)
24+
.setTitle("**Bot infos**")
25+
.addField("• Mémoire vive utilisée", `${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)} / ${(os.totalmem() / 1024 / 1024).toFixed(2)} MB`, true)
26+
.addField("• Uptime ", `${duration}`, true)
27+
.addField("• Nombre d'utilisateurs", `${client.users.size.toLocaleString()}`, true)
28+
.addField("• Nombre de serveurs", `${client.guilds.size.toLocaleString()}`, true)
29+
.addField("• Nombre de salons ", `${client.channels.size.toLocaleString()}`, true)
30+
.addField("• Discord.js", `v${version}`, true)
31+
.addField("• Node", `${process.version}`, true)
32+
.addField("• CPU", `\`\`\`md\n${os.cpus().map(i => `${i.model}`)[0]}\`\`\``)
33+
.addField("• Utilisation cpu", `\`${percent.toFixed(2)}%\``, true)
34+
.addField("• Architecture", `\`${os.arch()}\``, true)
35+
.addField("• Platforme", `\`\`${os.platform()}\`\``, true)
36+
.addField('Links :',`Ajoutez moi sur votre serveur ! [[Cliquez ici]](https://discordapp.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=1609956830&scope=bot)\nVisitez mon serveur de support ! [[Oh que oui]](https://discord.gg/gqFCbCN)`)
37+
message.channel.send(embedStats)
38+
})
39+
}
40+
41+
42+
module.exports.config = {
43+
category: "Utile",
44+
name: __filename.slice(__dirname.length + 1, __filename.length - 3),
45+
aliases: ["botinfo"],
46+
serverForced: false
47+
}
48+
49+
module.exports.help = {
50+
description: "Commande pour afficher diverses infos sur le bot",
51+
utilisations: `botinfos`,
52+
exemples: `c!botinfos`
53+
}

commands/config.js

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
const db = require("../db.js")
2+
const Discord = require("discord.js");
3+
4+
5+
module.exports.run = async (client, message, args) => {
6+
7+
let toconfig = args[0];
8+
9+
if (toconfig == "autorole" || toconfig == "autoRole" || toconfig == "Autorole" || toconfig == "AutorRole" || toconfig == "autorôle" || toconfig == "Autorôle") {
10+
11+
12+
if (args[1] == undefined || message.mentions.roles.first() == undefined) {
13+
return message.reply("veuillez mentionner un rôle à affecter aux nouveaux arrivants")
14+
}
15+
16+
let role = message.mentions.roles.first()
17+
18+
19+
if (!message.guild.me.hasPermission("MANAGE_ROLES")) {
20+
message.reply("Désolé mais je n'ai pas la permission **Gérer les rôles** ou **Administrateur** sur ce serveur 😔\nModifiez mon rôle afin que je puisse intéragir avec le rôle à donner.")
21+
}
22+
23+
let jsonObj = {
24+
"activated": true,
25+
"role": role.id
26+
}
27+
json = JSON.stringify(jsonObj);
28+
29+
30+
31+
let getGuildSetting = `SELECT * FROM guildSettings WHERE guildId = '${message.guild.id}';`;
32+
db.query(getGuildSetting, function (err, results, fields) {
33+
if (err) console.log("erreur pour getguildsettings config --> " + err.message);
34+
35+
36+
37+
38+
let setAutoRole = `UPDATE guildSettings SET autoRole = '${json}' WHERE guildId = '${message.guild.id}';`;
39+
db.query(setAutoRole, function (err, results, fields) {
40+
if (err) {
41+
console.log("erreur pour setAutoRole config" + err.message);
42+
}
43+
44+
45+
let embed = new Discord.RichEmbed();
46+
embed.setAuthor("✅ Succès");
47+
embed.setDescription("Le rôle <@&"+ role.id+"> sera donné aux nouveaux arrivant du serveur\n\n*Pensez à mettre mon rôle au dessus du rôle à attribuer afin que je puisse le donner sans problèmes*")
48+
embed.setFooter(client.user.username, client.user.displayAvatarURL);
49+
embed.setTimestamp();
50+
embed.setColor("#36393f");
51+
message.channel.send(embed)
52+
console.log(message.content)
53+
})
54+
55+
56+
57+
58+
})
59+
60+
61+
62+
63+
64+
65+
} else {
66+
console.log("veuillez spécifier une config correcte")
67+
message.reply("Veuillez spécifier un paramètre correct à configurer")
68+
}
69+
70+
71+
72+
73+
74+
75+
}
76+
77+
78+
module.exports.config = {
79+
category: "Configuration",
80+
name: __filename.slice(__dirname.length + 1, __filename.length - 3),
81+
aliases: ["c"],
82+
serverForced: false
83+
}
84+
85+
module.exports.help = {
86+
description: "Commande pour afficher le ping du bot",
87+
utilisations: `c!config <value>`,
88+
exemples: `c!config autorole`
89+
}

commands/help.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
const Discord = require("discord.js");
2+
3+
module.exports.run = async (client, message, args, prefixes) => {
4+
5+
console.log("customprefix =" + args)
6+
7+
8+
let catégories = [];
9+
10+
11+
let embed = new Discord.RichEmbed();
12+
embed.setDescription("Commande help \n Mon préfixe sur ce serveur est `"+ "c!"+"`");
13+
embed.setFooter(client.user.username, client.user.displayAvatarURL);
14+
embed.setTimestamp();
15+
embed.setColor("#dd0000");
16+
17+
client.commands.forEach(command => {
18+
if (catégories.indexOf(command.config.category) == -1) {
19+
catégories.push(command.config.category)
20+
}
21+
});
22+
23+
24+
catégories.forEach(catégorie => {
25+
let commandlist = "";
26+
client.commands.forEach(command => {
27+
if (command.config.category == catégorie){
28+
console.log("cmd "+command.config.name)
29+
commandlist = commandlist + "`"+command.config.name +"` *"+command.help.description+ "*\n"
30+
}
31+
})
32+
embed.addField(catégorie, commandlist);
33+
});
34+
35+
message.channel.send(embed);
36+
37+
38+
}
39+
40+
41+
42+
module.exports.config = {
43+
category: "Utile",
44+
name: __filename.slice(__dirname.length + 1, __filename.length - 3),
45+
aliases: ["h"],
46+
serverForced: false
47+
}
48+
49+
module.exports.help = {
50+
description: "Commande d'aide.",
51+
utilisations: `help`,
52+
exemples: ``
53+
}

commands/listusername.js

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
const db = require("../db.js")
2+
const Discord = require("discord.js");
3+
const moment = require("moment");
4+
const hastebin = require("hastebin-gen");
5+
6+
module.exports.run = async (client, message, args) => {
7+
8+
let user = message.mentions.members.first();
9+
10+
if (args[0] == undefined) {
11+
message.reply("Veuillez mentionner quelqu'un")
12+
return
13+
}
14+
15+
16+
message.channel.send("Je cherche... ⏳").then(msg => {
17+
18+
19+
20+
let searchOldPseudos = `SELECT
21+
*
22+
FROM
23+
userNameLogger
24+
WHERE
25+
userId = '${user.id}'
26+
ORDER BY updateDate ASC
27+
`
28+
29+
let pseudos = "";
30+
31+
db.query(searchOldPseudos, function (err, results, fields) {
32+
if (err) {
33+
console.log(err.message);
34+
}
35+
// console.log(results)
36+
if (results == undefined || results[0] == undefined) {
37+
message.reply("Désolé cette personne n'est pas dans ma base de données")
38+
return
39+
}
40+
41+
results.forEach(pseudo => {
42+
43+
// console.log(pseudo.newUsername)
44+
45+
//message.reply(pseudo.newUsername)
46+
pseudos = pseudos + "`" + pseudo.newUsername + "` *changé le " + moment(pseudo.updateDate).format("D/MM/YY à HH:mm") + "*\n"
47+
});
48+
var hasteLink = "erreur";
49+
50+
if (pseudos.length >= 1000) {
51+
52+
hastebin(pseudos, { extension: "txt", url: "https://haste.chaun14.fr" }).then(haste => {
53+
// console.log(haste)
54+
hasteLink == haste
55+
let pseudoEmbed = new Discord.RichEmbed();
56+
pseudoEmbed.setFooter(client.user.username, client.user.displayAvatarURL);
57+
pseudoEmbed.setTimestamp();
58+
pseudoEmbed.setColor("#dd0000");
59+
pseudoEmbed.setAuthor("UsernameLogger")
60+
pseudoEmbed.setDescription("__**Anciens pseudo de**__ <@"+ user.id +">(" + user.user.username + "):\n\n" + haste + "")
61+
msg.edit(pseudoEmbed)
62+
}).catch(error => {
63+
// Handle error
64+
console.error(error)
65+
66+
});
67+
} else {
68+
let pseudoEmbed = new Discord.RichEmbed();
69+
pseudoEmbed.setFooter(client.user.username, client.user.displayAvatarURL);
70+
pseudoEmbed.setTimestamp();
71+
pseudoEmbed.setColor("#dd0000");
72+
pseudoEmbed.setAuthor("UsernameLogger")
73+
74+
pseudoEmbed.setDescription("__**Anciens pseudo de**__ <@"+ user.id +">(" + user.user.username + "):\n\n" + pseudos + "")
75+
msg.edit(pseudoEmbed)
76+
}
77+
78+
});
79+
80+
})
81+
82+
}
83+
84+
85+
module.exports.config = {
86+
category: "Utile",
87+
name: __filename.slice(__dirname.length + 1, __filename.length - 3),
88+
aliases: ["lusername", "un", "username", "usernamelist"],
89+
serverForced: false
90+
}
91+
92+
module.exports.help = {
93+
description: "Commande pour afficher les anciens pseudo d'un membre",
94+
utilisations: `listusername @user`,
95+
exemples: `c!listusername @chaun14#1403`
96+
}

0 commit comments

Comments
 (0)