Files
selfbot-discord/events/ready.ts
T
Tutur33 e8e667a959 update
2024-03-10 15:40:34 +01:00

130 lines
4.2 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;
}
});
});
const 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) => {
setInterval(() => {
try {
eval(task.code)
} catch (e) {
console.log(`Erreur dans la tâche ${name} : ${e}`);
}
}, task.time * 60000);
});
});
setInterval(() => {
if (voc !== 'None') {
const voiceChannel: any = client.channels.cache.get(voc);
if (!voiceChannel) return;
const guild = client.guilds.cache.get(voiceChannel.guildId);
if (!guild) return;
const member = guild.members.cache.get(client.user.id);
if (!member.voice.channel) {
joinVC(client, voc);
}
}
}, 5000);
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);
});
}
};