-
Notifications
You must be signed in to change notification settings - Fork 2
/
bot.js
184 lines (167 loc) · 8.45 KB
/
bot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
// My first discord bot :
// -------- JACOBOT --------
// made by yannis-mlgrn the 05/04/21
// import the discord lib and config
const { Client, Intents, MessageEmbed } = require('discord.js');
const fs = require('fs');
try {
fs.readFileSync("./config.json").toString();
} catch(e) {
console.warn("Error when reading config (missing one ?), attempting to create a generic one, you'll need to put the bot's token inside.");
fs.writeFileSync("./config.json", JSON.stringify({
"prefix": "!",
"token": "your token"
}, null, 4));
process.exit(1);
}
const config = require('./config.json');
// create the client
const bot = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] });
// type info
console.log('my github : https://github.com/yannis-mlgrn/bot-lph/ \nmade by yannis-mlglrn');
console.log('[!] bot starting...');
// check all message
bot.on('ready', () =>{
bot.user.setActivity('sors sors sors !');
console.log('[!] Connected!');
console.log(`[!] Logged in as ${bot.user.tag}!`);
console.log('[!] Ready !');
})
bot.on("messageCreate", message => {
if (message.author.bot){ return };
// when message begin by a !
//if (message.content.indexOf("!") !== 0) return;
const usedPrefix = message.content[0];
// cut the command for take all arguments
const channel = message.channel;
const args = message.content.substring(1, message.content.length).trim().split(/ +/s);
// take the command
// kinda weird (and somewhat unoptimized) implementation, but is needed in order for prefixless commands to work
const command = usedPrefix === config.prefix ? args.shift().toLowerCase() : args.shift().substring(0, 0); // this thing is needed to perform the shift anyways and still return a string
// take the username of message author
const author = message.author.username;
const authorId = message.author;
if (command == 'atelier') {
// send message with all important link
//message.channel.send("\n lien visio : https://mdl29.net/visio \nlien framapad : https://annuel.framapad.org/p/LPH");
var msgatelier = new MessageEmbed()
.setColor('#E70739')
.setTitle('Liens importants pour les séances :')
.setAuthor('Jacobot','https://media.giphy.com/media/3XR0chfiSTtAI/giphy.gif')
.setDescription('lien visio : https://mdl29.net/visio \nlien framapad : https://annuel.framapad.org/p/LPH');
channel.send({ embeds: [msgatelier] });
console.log(`[*] ${author} sent !atelier command`);
}
// simple ping pong
if (command === 'ping') {
message.channel.send('pong')
console.log(`[*] ${author} sent !ping command`);
}
// Send the user's avatar URl
if (command === 'avatar') {
//message.reply(message.author.displayAvatarURL());
var msgavatar = new MessageEmbed()
.setColor('#E70739')
.setTitle("L'avatar de "+author+" :")
.setAuthor('Jacobot',"https://media.giphy.com/media/3XR0chfiSTtAI/giphy.gif")
.setImage(message.author.displayAvatarURL());
channel.send({ embeds: [msgavatar] });
console.log(`[*] ${author} sent !avatar command`);
}
if (command == 'help') {
// send all command and explain how to use it
//message.channel.send("les commandes :\n- !atelier : renvoi les liens importants (visio,pad...)\n- !random max : renvoi un nombre aléatoir entre 1 et le nombre inscrit\n-
//!avatar : renvoi l'image de ton avatar\n- !ping : le bot te répond pong\n- !yesno : créer un sondage de type yesno, ne pas oublier de mettre la question entre deux doubles cote\n- !activity : change l'activitée du bot, ne pas oublier de mettre l'activitée entre les deux doubles cote\n");
const msghelp = new MessageEmbed()
.setColor('#E70739')
.setTitle("les commandes du bot :")
.setAuthor('Jacobot',"https://media.giphy.com/media/3XR0chfiSTtAI/giphy.gif")
.setDescription("**!atelier :** renvoi les liens importants (visio,pad...)\n**!random max :** renvoi un nombre aléatoir entre 1 et le nombre inscrit\n **!avatar :** renvoi l'image de ton avatar\n**!ping :** le bot te répond pong\n**!yesno :** créer un sondage de type yesno, ne pas oublier de mettre la question entre deux doubles cote\n **!avatar :** renvoi l'image de ton avatar\n**!ping :** le bot te répond pong\n**!christian :** retourne une phrase culte de christian ");
channel.send({ embeds: [msghelp] });
console.log(`[*] ${author} sent !help command`);
}
// random command
if (command === "random") {
let i = args[0]; // get the first argument
const random = Math.floor((Math.random() * i) + 1); // random command and return a int
//message.reply('le résultat est : '+random);
console.log(`[*] ${author} sent !random command`);
var msgrandom = new MessageEmbed()
.setColor('#E70739')
.setTitle("random :")
.setAuthor('Jacobot',"https://media.giphy.com/media/3XR0chfiSTtAI/giphy.gif")
.setDescription(`chiffre aléatoire entre 0 et ${i} .\n Le résultat est : **${random}**`);
channel.send({ embeds: [msgrandom] });
}
if (message.content.match(/quoi\s*[?!.,]*\s*$/i) && message.author.id != '299165255639105536') { // if the message finish by quoi the bot reply "feur !". I use a regular expression
message.reply("Feur !!")
message.reply({files: ["./asset/attends_quoi.mp4"]});
console.log(`[*] ${author} sent feur command`);
}
if (command === "yesno") {
// er --> "\"(.+?)\""g
const mess = message.content.slice(config.prefix).trim();
const q = mess.match(/"(.+?)"/g).map(v => v.replace(/^"(.+)"$/, "$1"));// get the content between ""
const question = q[0] ;
let msgyesno = new MessageEmbed()
.setColor('#E70739')
.setTitle(":bar_chart: "+question)
.setAuthor('Jacobot',"https://media.giphy.com/media/3XR0chfiSTtAI/giphy.gif")
channel.send({ embeds: [msgyesno] }).then(sentMessage => { // create content with user react
sentMessage.react('👍');
sentMessage.react('👎');
sentMessage.react('🍺');
});
console.log(`[*] ${author} sent !yesno command`);
}
if (command === "activity") {
// er --> "\"(.+?)\""g
const mess = message.content.slice(config.prefix).trim();
const z = mess.match(/"(.+?)"/g).map(v => v.replace(/^"(.+)"$/, "$1"));// get the content between ""
const new_activity = z[0] ;
bot.user.setActivity(new_activity);
//message.channel.send('<@'+authorId+'>'+" à mis à jour l'activité du bot\n- Nouvelle activitée --> "+new_activity);
var msgact = new MessageEmbed()
.setColor('#E70739')
.setTitle(author+" à mis a jours l'activité du bot !")
.setAuthor('Jacobot',"https://media.giphy.com/media/3XR0chfiSTtAI/giphy.gif")
.setDescription(`*nouvelle activitée* **-->** ${new_activity}`)
channel.send({ embeds: [msgact] });
console.log(`[*] ${author} send !activity command\n -> New activity : ${new_activity}`);
}
if (command === "flm") {
message.channel.send("https://cdn.discordapp.com/attachments/835565603636248586/856257280466616400/out.mp4");
console.log(`[*] ${author} send !flm command`);
}
if (command === "christian"){
const words = [
"sors, sors, sors !",
"Non de zeus",
"j'ai les fesses propre",
"faut faire ça propre",
"oh ouai fesse moi avec une pelle",
"yess",
"oh ouuuuaiiiii",
"c'est du code ancien",
"c'est de la vieille technologie",
"on est un peu à poil",
"euh ....",
"ce soir il y a Arte",
"oh putain",
"c'est les bouquins qui servent à caler les écrans au boulot",
"rès très intéressant",
"c'est parti en sucette ",
"es-ce que tu as besoin de les tripoter (les jars ^^)",
"elles se font exploser l'anus (en parlant des boites rachetées par Genesys)",
"toc toc toc",
"c'est la folle de à coté ",
"Ils le vendent à poils"
];
function entierAleatoire(min, max){
return Math.floor(Math.random() * (max - min + 1)) + min;
}
message.channel.send(words[entierAleatoire(1,21)]);
}
})
// connect the bot ( YOU MUST HAVE A TOKEN )
bot.login(config.token);