Files
discord-selfbot/main.js
T
2025-05-10 00:03:27 +02:00

138 lines
4.3 KiB
JavaScript

const sendNotification = require("./notif");
require("dotenv").config();
const {
Client,
RichPresence,
CustomStatus,
} = require("discord.js-selfbot-v13");
const fs = require("fs");
const path = require("path");
const client = new Client({ checkUpdate: false });
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 !");
const notificationsFile = path.join(__dirname, "notifications.json");
let notifications = new Set();
// Load notifications from JSON file
if (fs.existsSync(notificationsFile)) {
const data = fs.readFileSync(notificationsFile, "utf-8");
notifications = new Set(JSON.parse(data));
}
// Save notifications to JSON file
function saveNotifications() {
fs.writeFileSync(
notificationsFile,
JSON.stringify([...notifications], null, 2)
);
}
client.on("ready", async () => {
console.log(`${client.user.username} is ready!`);
sendNotification("SelfBot", "Le selfbot Discord est en ligne !", 1);
client.user.setPresence({ activities: [status, customs] });
setInterval(async () => {
const channel = client.channels.cache.get("1354502169742541043");
await channel.sendSlash("1354503814769672345", "ping");
}, 24 * 60 * 60 * 1000);
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);
});
});
client.on("messageCreate", async (message) => {
if (message.author.id === client.user.id) {
const args = message.content.split(" ");
const command = args.shift().toLowerCase();
if (command === "!addnotif") {
const serverId = args[0] || message.guild?.id;
if (!serverId) {
return message.reply(
"Impossible de déterminer le serveur. Fournissez un ID ou utilisez cette commande dans un serveur."
);
}
notifications.add(serverId);
saveNotifications();
message.reply(
`Notifications activées pour le serveur avec l'ID: ${serverId}`
);
} else if (command === "!supnotif") {
const serverId = args[0] || message.guild?.id;
if (!serverId) {
return message.reply(
"Impossible de déterminer le serveur. Fournissez un ID ou utilisez cette commande dans un serveur."
);
}
if (notifications.delete(serverId)) {
saveNotifications();
message.reply(
`Notifications désactivées pour le serveur avec l'ID: ${serverId}`
);
} else {
message.reply(
`Aucune notification trouvée pour le serveur avec l'ID: ${serverId}`
);
}
} else if (command === "!listnotif") {
if (notifications.size === 0) {
message.reply("Aucune notification activée.");
} else {
message.reply(
`Notifications activées pour les serveurs: ${[...notifications].join(
", "
)}`
);
}
}
} else {
if (message.channel.type === "DM") {
sendNotification(message.author.tag, message.content, 1);
} else if (message.channel.type === "GROUP_DM") {
if (message.channel.name) {
sendNotification(message.channel.name, message.content, 1);
} else {
sendNotification(
message.channel.recipients.map((r) => r.tag).join(", "),
message.content,
1
);
}
} else if (message.guild && notifications.has(message.guild.id)) {
sendNotification(message.guild.name, message.content, 1);
}
}
});
client.login(process.env.TOKEN);