Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Dépendances
- const fs = require('fs');
- const { Client, GatewayIntentBits, Collection } = require('discord.js');
- const OpenAI = require('openai');
- const moment = require('moment');
- const axios = require('axios');
- // Récupérer les tokens à partir d'un fichier de configuration
- const config = require('./config.json');
- const { discordToken, openaiApiKey, openWeatherMapApiKey } = config;
- // Initialisez le client
- const client = new Client({
- intents: [
- GatewayIntentBits.Guilds, // Permet au bot de recevoir des informations sur les serveurs
- GatewayIntentBits.GuildMessages, // Permet au bot de recevoir des messages dans les serveurs
- GatewayIntentBits.MessageContent // Permet au bot de recevoir le contenu des messages
- // Ajoutez d'autres intents si nécessaires
- ]
- });
- // Collections
- client.commands = new Collection();
- // Chargez les commandes
- const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
- for (const file of commandFiles) {
- const command = require(`./commands/${file}`);
- client.commands.set(command.name, command);
- }
- // Lisez le fichier JSON (config.json)
- const statuses = [
- "BOIRE DES TASSES !!!",
- "préfixe = !",
- "Bienvenue dans le yacht de Nats, un p'tit encas ?"
- ];
- let currentIndex = 0;
- // Écoutez les événements et effectuez les actions
- client.on('ready', () => {
- console.log("Félicitations, le Capitaine a été correctement initialisé !");
- // Définir le premier statut
- client.user.setActivity(statuses[currentIndex], { type: 'PLAYING' });
- // Changer de statut toutes les 10 secondes
- setInterval(() => {
- currentIndex = (currentIndex + 1) % statuses.length;
- client.user.setActivity(statuses[currentIndex], { type: 'PLAYING' });
- }, 10000);
- });
- client.on('message', async (message) => {
- console.log(`Message reçu : ${message.content}`);
- if (message.author.bot) return;
- const args = message.content.slice(config.prefix.length).trim().split(/ +/);
- const command = args.shift().toLowerCase();
- console.log(`Commande détectée : ${command}`);
- if (message.content.startsWith(config.prefix)) {
- if (client.commands.has(command)) {
- try {
- console.log(`Commande exécutée : ${command}`);
- client.commands.get(command).execute(message, args, openaiApiKey);
- } catch (error) {
- console.error(error);
- }
- }
- }
- const responses = ['Salutations !', 'Salut !', 'Hello !', 'Hey, comment-vas tu ? !', 'Coucou !', 'Bien le bonjour !', 'Yo ma poule !'];
- const getRandomResponse = () => {
- const randomIndex = Math.floor(Math.random() * responses.length);
- return responses[randomIndex];
- };
- const salutations = ['bonjour', 'salut', 'hello', 'hey', 'coucou', 'bonsoir'];
- const content = message.content.toLowerCase();
- if (salutations.some(keyword => content.includes(keyword.toLowerCase()))) {
- const randomResponse = getRandomResponse();
- message.channel.send(randomResponse);
- }
- });
- client.on('guildMemberUpdate', (oldMember, newMember) => {
- const role = newMember.guild.roles.cache.find(role => role.name === 'Membres');
- if (role) {
- if (!oldMember.roles.cache.has(role.id) && newMember.roles.cache.has(role.id)) {
- const channel = client.channels.cache.get('919253651950800936'); // Remplacez 'ID_DU_SALON' par l'ID du salon
- if (channel) {
- channel.send(`${newMember} a embarqué dans le Yacht ! Bienvenue ! Je te propose de prendre tes rôles dans les salons <#1107284087103832204> et <#919241828887298098>. Ensuite, un petit test de personnalité est disponible dans ce fil <#1148460530625945710> si tu souhaites obtenir un rôle marin qui te différenciera des autres membres. Bon séjour ;) `);
- } else {
- console.error(`Salon introuvable.`);
- }
- } else {
- console.error(`Une erreur s'est produite lors de la mise à jour du rôle.`);
- }
- } else {
- console.error(`Le rôle 'Membres' n'a pas été trouvé.`);
- }
- });
- client.login(process.env.BOT_TOKEN);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement