Files
selfbot-discord/events/ready.ts
T
2024-03-25 22:56:27 +01:00

151 lines
5.1 KiB
TypeScript

const { Events, ActivityType } = require("discord.js");
const addBaseInDB = require("../fonctions/addBaseInDB");
const { Client, RichPresence, CustomStatus } = require('discord.js-selfbot-v13');
import db from '../fonctions/instanceDB';
require('dotenv').config();
const joinVC = require('../fonctions/joinVC');
module.exports = {
name: Events.ClientReady,
async execute(client: any) {
if (process.env.DISCORD_LOG) {
const channelId = process.env.DISCORD_LOG.toString();
const channel = client.channels.cache.get(channelId);
if (channel) {
const originalConsoleLog = console.log;
console.log = function (...args) {
const message = args.join(' ');
const currentDate = new Date();
channel.send(`\`\`\`[${currentDate.toLocaleString()}] ${message}\`\`\``);
originalConsoleLog.apply(console, [`[${currentDate.toLocaleString()}]`, ...args]);
}
}
}
await addBaseInDB(client);
console.log(`le bot ${client.user.tag} est en ligne`)
const status = new RichPresence(client)
.setApplicationId('1000410111833018378')
.setType('STREAMING')
.setURL('https://www.twitch.tv/tuturp33')
.setState('Administrer sur SwiftBot')
.setName('SwiftBot')
.setDetails('SwiftBot')
.setStartTimestamp(Date.now())
.setAssetsLargeImage('1213862750451929138')
.setAssetsLargeText('Rejoins nous sur Discord')
.setAssetsSmallImage('1213863166874746910')
.setAssetsSmallText('TuturP33')
.addButton('Serveur Discord', 'https://discord.gg/zP7sHFpTZX')
.addButton('Bot Discord', 'https://discord.com/api/oauth2/authorize?client_id=1204577464903409674&permissions=8&scope=applications.commands%20bot');
const customs = new CustomStatus(client).setEmoji('👀').setState('Regarde vos messages !');
setInterval(() => {
db.get('SELECT value FROM stats WHERE name = "sendMessageCounter"', (err: any, row: any) => {
if (err) {
console.error(err.message);
}
const sendMessageCounter = row ? row.value : 0;
db.get('SELECT value FROM stats WHERE name = "receiveMessageCounter"', (err: any, row: any) => {
if (err) {
console.error(err.message);
}
const receiveMessageCounter = row ? row.value : 0;
customs.setEmoji('📈').setState(`${sendMessageCounter} messages envoyés, ${receiveMessageCounter} messages reçus !`);
});
});
client.user.setPresence({ activities: [status, customs] });
}, 10000) as NodeJS.Timeout;
let voc = 'None';
db.all('SELECT * FROM config', (err: any, rows: any) => {
if (err) {
console.error(err.message);
}
rows.forEach((row: any) => {
if (row.name === 'autovoc') {
voc = row.value || 'None';
} if (row.name === 'messageCounter') {
let messageCounter = row.value || 0;
module.exports.messageCounter = messageCounter;
}
});
});
setInterval(() => {
let tasks: any = [];
db.all('SELECT * FROM task', (err: any, rows: any) => {
if (err) {
console.error(err.message);
}
rows.forEach((row: any) => {
tasks.push(row);
});
tasks.forEach((task: any) => {
if (task.dernier_lancement + task.time * 60000 < new Date().getTime()) {
try {
eval(task.code)
console.log(`La tâche ${task.name} a été exécutée avec succès.`);
const lastExecution = new Date().getTime();
db.run(`UPDATE task SET dernier_lancement = ? WHERE id = ?`, [lastExecution, task.id], (err: any) => {
if (err) {
console.error(err.message);
}
});
} catch (e) {
console.log(`Erreur dans la tâche ${task.name} : ${e}`);
}
}
});
});
}, 15000);
setInterval(() => {
let vocals: any = [];
db.all('SELECT * FROM autovoc', (err: any, rows: any) => {
if (err) {
console.error(err.message);
}
rows.forEach((row: any) => {
vocals.push(row);
});
vocals.forEach((voc: any) => {
const voiceChannel: any = client.channels.cache.get(voc.vocalID);
if (!voiceChannel) return;
const guild = client.guilds.cache.get(voiceChannel.guildId);
if (!guild) return;
const member = guild.members.cache.get(client.user.id);
const memberVoiceChannel = member.voice.channel;
if (memberVoiceChannel) return;
const clientVoc = new Client({ checkUpdate: false });
clientVoc.on('ready', async () => {
console.log('autovoc :', voc.vocalID);
joinVC(clientVoc, voc.vocalID);
});
clientVoc.login(process.env.TOKENS);
});
});
}, 60000);
process.on('unhandledRejection', (reason, p) => {
console.log(' [antiCrash] :: Unhandled Rejection/Catch');
console.log(reason, p);
});
process.on('uncaughtException', (err, origin) => {
console.log(' [antiCrash] :: Uncaught Exception/Catch');
console.log(err, origin);
});
}
};