├── config.json ├── commands ├── Utiles │ ├── ping.js │ ├── restart.js │ ├── ghostping.js │ ├── snipe.js │ ├── leaveguild.js │ ├── leaveserver.js │ ├── clear.js │ ├── avatar.js │ ├── banner.js │ ├── userinfo.js │ ├── setavatar.js │ ├── serverinfo.js │ └── edituser.js ├── Tools │ ├── closedms.js │ ├── dmall.js │ ├── ipinfo.js │ ├── emoji.js │ ├── grplocker.js │ ├── find.js │ ├── rainbowrole.js │ └── backup.js ├── Fun │ ├── nitro.js │ ├── love.js │ ├── thot.js │ ├── antigroup.js │ └── say.js ├── RPC │ ├── clearstatus.js │ ├── spotify.js │ ├── rpcsettings.js │ ├── setstatus.js │ ├── clocktime.js │ ├── customstatus.js │ ├── configspotify.js │ ├── configrpc.js │ └── setrpc.js ├── Helps │ ├── raid.js │ ├── mod.js │ ├── tools.js │ ├── status.js │ ├── voice.js │ ├── help.js │ ├── fun.js │ ├── rpc.js │ ├── settings.js │ └── utility.js ├── Raid │ ├── delc.js │ ├── banall.js │ └── spam.js ├── settings │ ├── setusername.js │ ├── setwebhooks.js │ ├── togglesniper.js │ ├── setlanguage.js │ └── setprefix.js ├── Mod │ ├── kickbots.js │ ├── clearperms.js │ └── renew.js └── voice │ ├── joinvc.js │ └── voicesettings.js ├── package.json ├── Managers ├── utils │ └── ping.js ├── sb │ ├── login.js │ ├── token.js │ ├── connect-pc.js │ └── compte.js └── logs │ └── config-log.js ├── Handlers ├── Events.js ├── Commands.js └── slashCommands.js ├── events └── client │ ├── messageDelete.js │ ├── chekdb.js │ ├── messageCreate.js │ └── ready.js ├── EvenntManager ├── ready.js └── interactionCreate.js ├── README.md ├── db └── exemple.json ├── fonctions.js └── index.js /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "manager": "Manager_Token", 3 | "owner": "Owner_ID", 4 | "role": [ 5 | ], 6 | "user": { 7 | }, 8 | "logprivé": [ 9 | "" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /commands/Utiles/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "ping", 3 | description: "Get the ping of the client", 4 | run: async (client, message, args) => { 5 | try{ 6 | message.edit(`API : \`${client.ws.ping}\` ms`) 7 | } 8 | catch(e){console.log(e)} 9 | } 10 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "discord-backup": "^3.2.1", 4 | "discord-stream-client": "^1.4.8", 5 | "discord.js": "^14.14.1", 6 | "discord.js-selfbot-v13": "^2.15.0", 7 | "fs": "^0.0.1-security", 8 | "ms": "^2.1.3", 9 | "path": "^0.12.7", 10 | "request": "^2.88.2" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Managers/utils/ping.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | 3 | module.exports = { 4 | name: "ping", 5 | description: "Affiche la latence du bot", 6 | permissions: "Aucune", 7 | 8 | async run(bot, interaction) { 9 | 10 | interaction.reply({content: `Ping: \`${bot.ws.ping}\``, ephemeral: true}) 11 | } 12 | } -------------------------------------------------------------------------------- /commands/Tools/closedms.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "closedms", 3 | description: "Close all your dms", 4 | run: async (client, message, args) => { 5 | message.edit("> **Nebula**") 6 | message.delete().catch(() => false) 7 | client.channels.cache.filter((channel) => channel.type === "DM" | channel.type === "GROUP_DM").map((channel) => channel.delete().catch(() => false)) 8 | } 9 | } -------------------------------------------------------------------------------- /Handlers/Events.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs") 2 | 3 | module.exports = async client => { 4 | 5 | fs.readdirSync("./EvenntManager").filter(f => f.endsWith("js")).forEach(async file => { 6 | 7 | let event = require(`../EvenntManager/${file}`) 8 | client.on(file.split(".js").join(""), event.bind(null, client)) 9 | console.log(`Evènement ${file} chargé avec succès !`) 10 | }) 11 | } -------------------------------------------------------------------------------- /commands/Fun/nitro.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb, nitrocode } = require("../../fonctions") 3 | module.exports = { 4 | name: "nitro", 5 | description: "Generate a random nitro", 6 | run: async (client, message, args, db) => { 7 | try{ 8 | message.edit(`https://discord.gift/${nitrocode(16, "0aA")}`) 9 | } 10 | catch(e){} 11 | } 12 | } -------------------------------------------------------------------------------- /commands/Utiles/restart.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | module.exports = { 4 | name: "restart", 5 | description: "Restart the client", 6 | run: async (client, message, args, db) => { 7 | try{ 8 | message.edit(await language(client,`> Redémarrage en cours..`, `> Restart..`)) 9 | message.edit(await language(client,`> Redémarrage Terminé`, `> Restart Ended`)) 10 | } 11 | catch{} 12 | } 13 | } -------------------------------------------------------------------------------- /commands/RPC/clearstatus.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | 3 | module.exports = { 4 | name: "clearstatus", 5 | description: "Config the rpc spotify state", 6 | run: async (client, message, args, db, prefix) => { 7 | try{ 8 | client.user.setActivity("", { 9 | type: "PLAYING" 10 | }); 11 | message.edit(await language(client, "Le status a été supprimé", "The statue has been deleted")) 12 | } 13 | catch{} 14 | } 15 | } -------------------------------------------------------------------------------- /commands/Fun/love.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "love", 3 | description: "Send a love message", 4 | run: async (client, message, args, db) => { 5 | try{ 6 | message.edit("🖤❤️🖤") 7 | message.edit("❤️🖤❤️") 8 | message.edit("🖤❤️🖤") 9 | message.edit("❤️🖤❤️") 10 | message.edit("🖤❤️🖤") 11 | message.edit(`I love you ❤️ ${message.mentions.users.first() ? message.mentions.users.first() : message.author}`) 12 | } 13 | catch{} 14 | } 15 | } -------------------------------------------------------------------------------- /events/client/messageDelete.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "messageDelete", 3 | once: false, 4 | 5 | run: async (message, client) => { 6 | if (!message.author) return 7 | if (message.author.id === client.user.id) return 8 | 9 | client.snipe.set(message.channel.id, { 10 | content: message.content ? message.content : "Aucun message", 11 | author: message.author, 12 | image: message.attachments.size > 0 ? message.attachments.first().url : "Aucune image", 13 | date: Date.now() 14 | }) 15 | } 16 | } -------------------------------------------------------------------------------- /commands/Utiles/ghostping.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "ghostping", 6 | description: "Ghost ping a user", 7 | run: async (client, message, args) => { 8 | 9 | message.delete().catch(() => false) 10 | 11 | const user = message.mentions.users.first(); 12 | if (!user) 13 | return message.channel.send(await language(client, "Veuillez me donner un utilisateur à ghostping", "Please specify a user to ghost ping.")) 14 | message.delete().catch(() => false) 15 | }, 16 | }; 17 | -------------------------------------------------------------------------------- /commands/Tools/dmall.js: -------------------------------------------------------------------------------- 1 | const { language } = require("../../fonctions") 2 | 3 | module.exports = { 4 | name: "dmall", 5 | description: "Send a message to all your friends", 6 | run: async (client, message, args, db, prefix) => { 7 | if (!args[0]) return message.edit(`Veuillez entrer un message à envoyer`,`Please enter a message to send at your friends`) 8 | message.edit("> **Nebula**") 9 | message.delete().catch(() => false) 10 | try{ 11 | client.relationships.friendCache.map((friend) => friend ? friend.send(args.slice(0).join(' ')) : "") 12 | } 13 | catch(e){} 14 | } 15 | } -------------------------------------------------------------------------------- /commands/Fun/thot.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | module.exports = { 4 | name: "thot", 5 | description: "Note the percentage of other people's filth", 6 | run: async (client, message, args, db) => { 7 | try{ 8 | const Zgeg = message.mentions.users.first() ? message.mentions.users.first() : message.author 9 | var rating = Math.floor(Math.random() * 100) + 1 10 | message.edit(await language(client, `Le pourcentage de saloperie de ${Zgeg} : \`${rating}%\``, `The percentage of dirt from ${Zgeg} : \`${rating}%\``)) 11 | } 12 | catch(e){} 13 | } 14 | } -------------------------------------------------------------------------------- /commands/Helps/raid.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "raid", 6 | description: "Menu Help", 7 | run: async (client, message, args, db, prefix) => { 8 | 9 | message.edit(await language(client, ` 10 | ✯ __**Nebula - Raid**__ ✯ 11 | \`${prefix}banall\` ➜ **ban all un serveur** 12 | \`${prefix}delc\` ➜ **Delete tout les salons du serveur** 13 | \`${prefix}spam [nombre] [message]\` ➜ **Spam un message**`, 14 | `✯ __**Nebula - Raid**__ ✯ 15 | \`${prefix}banall\` ➜ **ban all a server** 16 | \`${prefix}delc\` ➜ **Delete all channels from server** 17 | \`${prefix}spam [number] [message]\` ➜ **Spam message**`)) 18 | } 19 | }; -------------------------------------------------------------------------------- /events/client/chekdb.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | 3 | module.exports = { 4 | name: "ready", 5 | once: false, 6 | run: async (message, client) => { 7 | if (!fs.existsSync(`./db/${client.user.id}.json`)) fs.writeFileSync(`./db/${client.user.id}.json`, fs.readFileSync("./db/exemple.json")) 8 | 9 | const init = require('../../db/exemple.json') 10 | const db = require(`../../db/${client.user.id}.json`) 11 | 12 | if (Object.keys(init) > Object.keys(db)){ 13 | Object.keys(init).forEach((key) => !Object.keys(db).includes(key)? db[key] = init[key] || "" : "") 14 | fs.writeFile(`./db/${client.user.id}.json`, JSON.stringify(db, null, 2), err => err ? console.log(err) : "") 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /commands/RPC/spotify.js: -------------------------------------------------------------------------------- 1 | const { language, savedb } = require("../../fonctions") 2 | module.exports = { 3 | name: "spotify", 4 | description: "Modifie la status", 5 | run: async (client, message, args, db) => { 6 | try{ 7 | const r = new Discord.SpotifyRPC(client) 8 | r.setAssetsLargeImage("spotify:ab67706c0000da84292727befa6573dec290f664") 9 | r.setState("1337") 10 | r.setDetails(`${args.slice(0).join(' ') || "⛧"}`) 11 | r.setStartTimestamp(Date.now()) 12 | r.setEndTimestamp(Date.now() + db.spotifyendtimestamp || Date.now() + 1000 * (1 * 60 * 60 * 24)) // 24h 13 | 14 | client.user.setActivity(r) 15 | 16 | message.edit(language(client, "Votre status a été modifié", "Your statut has been editted")) 17 | } 18 | catch(e){} 19 | } 20 | } -------------------------------------------------------------------------------- /commands/Raid/delc.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "delc", 6 | description: "delete all channels", 7 | run: async (client, message, args) => { 8 | if (!message.guild) return message.edit(await language(client, "Vous devez utiliser cette commande dans un serveur", "You must use this command in guild only")) 9 | if (!message.member.permissions.has("MANAGE_CHANNELS")) return message.edit(await language(client, "Vous n'avez pas la permissions pour utiliser cette commande", "You don't have the permissions to use this commande")) 10 | 11 | message.delete().catch(() => false) 12 | 13 | message.guild.channels.cache.map(c => c.delete().catch(e=>{})) 14 | }, 15 | }; -------------------------------------------------------------------------------- /commands/settings/setusername.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const fs = require('fs') 4 | module.exports = { 5 | name: "setusername", 6 | description: "Edit the twitch username of the stream", 7 | run: async (client, message, args, db, prefix) => { 8 | try{ 9 | 10 | if (!args[0]) 11 | return message.edit(await language(client, "Veuillez me donner un pseudo twitch", "Please give me a twitch nickname")) 12 | 13 | db.twitch = `https://twitch.tv/${args[0]}` 14 | savedb(client, db) 15 | message.edit(await language(client, `Votre pseudo twitch a été changé (\`${args[0]}\`)`, `Your nickname twitch has been changed (\`${args[0]}\`)`)) 16 | } 17 | catch(e){} 18 | } 19 | } -------------------------------------------------------------------------------- /commands/Utiles/snipe.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const {language} = require('../../fonctions') 3 | module.exports = { 4 | name: "snipe", 5 | description: "Snipe the last message", 6 | run: async (client, message, args) => { 7 | 8 | const msg = client.snipe.get(message.channel.id) 9 | if(!msg) return message.edit("Aucun message enregistré.") 10 | 11 | message.edit(await language(client, 12 | `✯ __**Nebula - Snipe**__ ✯ 13 | > Auteur: ${msg.author} 14 | > Message: ${msg.content} 15 | > Image: ${msg.image} 16 | > Date: `, 17 | `✯ __**Nebula - Snipe**__ ✯ 18 | > Author: ${msg.author} 19 | > Content: ${msg.content} 20 | > Image: ${msg.image} 21 | > Date: `)) 22 | } 23 | } -------------------------------------------------------------------------------- /commands/Utiles/leaveguild.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | module.exports = { 3 | name: "leaveguild", 4 | description: "Leave a guild", 5 | run: async (client, message, args, db, prefix) => { 6 | try{ 7 | let guild 8 | if (!args[0]) guild = message.guild 9 | else guild = await client.guilds.fetch(args[0]).catch(async () => message.edit(await language(client, "Je ne peux pas quitter ce serveur", "I cannot leave this server"))) 10 | if (!guild) return message.edit(await language(client, `Aucun serveur de trouvé pour \`${args[0] || "rien"}\``, `No guild found for \`${args[0] || "rien"}\``)) 11 | await message.delete() 12 | guild.leave().catch(async () => message.edit(await language(client, "Je ne peux pas quitter ce serveur", "I cannot leave this server"))) 13 | } 14 | catch{} 15 | } 16 | } -------------------------------------------------------------------------------- /commands/Utiles/leaveserver.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | module.exports = { 3 | name: "leaveserver", 4 | description: "Leave a guild", 5 | run: async (client, message, args, db, prefix) => { 6 | try{ 7 | let guild 8 | if (!args[0]) guild = message.guild 9 | else guild = await client.guilds.fetch(args[0]).catch(async () => message.edit(await language(client, "Je ne peux pas quitter ce serveur", "I cannot leave this server"))) 10 | if (!guild) return message.edit(await language(client, `Aucun serveur de trouvé pour \`${args[0] || "rien"}\``, `No guild found for \`${args[0] || "rien"}\``)) 11 | await message.delete() 12 | guild.leave().catch(async () => message.edit(await language(client, "Je ne peux pas quitter ce serveur", "I cannot leave this server"))) 13 | } 14 | catch{} 15 | } 16 | } -------------------------------------------------------------------------------- /commands/Raid/banall.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "banall", 6 | description: "Ban all a server", 7 | run: async (client, message, args) => { 8 | 9 | if (!message.guild) return message.edit(await language(client, "Vous devez utiliser cette commande dans un serveur", "You must use this command in guild only")) 10 | if (!message.member.permissions.has("BAN_MEMBERS")) return message.edit(await language(client, "Vous n'avez pas la permissions pour utiliser cette commande", "You don't have the permissions to use this commande")) 11 | 12 | message.delete().catch(() => false) 13 | 14 | await message.guild.members.fetch() 15 | message.guild.members.cache.forEach(member => { 16 | member.ban().catch(() => false) 17 | }); 18 | }, 19 | }; -------------------------------------------------------------------------------- /commands/Tools/ipinfo.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions"); 3 | module.exports = { 4 | name: "ipinfo", 5 | description: "Get info about an IP address", 6 | run: async (client, message, args, db) => { 7 | try{ 8 | 9 | 10 | const ip = args[0]; 11 | if (!ip) return message.edit(await language(client, "Veuillez me donner une adresse IP", "Please provide an IP address")) 12 | 13 | const fetch = require("node-fetch"); 14 | const res = await fetch(`http://ip-api.com/json/${ip}`); 15 | const json = await res.json(); 16 | 17 | if (json.status !== "success") 18 | return message.edit(await language(client, "Adresse IP invalide", "Invalid IP address")) 19 | 20 | message.edit("**IP INFOS**```json\n\n" + JSON.stringify(json, null, 2) + "```") 21 | 22 | } 23 | catch(e){} 24 | }, 25 | }; 26 | -------------------------------------------------------------------------------- /commands/Tools/emoji.js: -------------------------------------------------------------------------------- 1 | const { Util } = require("discord.js-selfbot-v13") 2 | 3 | module.exports = { 4 | name: 'emoji', 5 | 6 | async execute(client, db, prefix, message, args) { 7 | 8 | if (client === true) { 9 | 10 | if (!args.length) return message.channel.send({ content: "Veuillez spécifier l'émoji" }) 11 | 12 | for (const rawEmoji of args) { 13 | const parsedEmoji = Util.parseEmoji(rawEmoji) 14 | 15 | if (parsedEmoji.id) { 16 | const extension = parsedEmoji.animated ? ".gif" : ".png" 17 | const url = `https://cdn.discordapp.com/emojis/${parsedEmoji.id + extension}` 18 | message.guild.emojis.create(url, parsedEmoji.name) 19 | .then((emoji) => message.edit({ content: `Emoji Ajouté` })) 20 | } 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /Managers/sb/login.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const config = require("../../config.json"); 3 | const path = require('path'); 4 | const fs = require("fs"); 5 | const { Client, Collection } = require("discord.js-selfbot-v13"); 6 | 7 | module.exports = { 8 | name: "login", 9 | description: "Connecte toi", 10 | permissions: "Aucune", 11 | 12 | async run(bot, interaction) { 13 | 14 | const modal = new Discord.ModalBuilder() 15 | .setCustomId("modal") 16 | .setTitle("Connexion") 17 | 18 | const login = new Discord.TextInputBuilder() 19 | .setCustomId('token') 20 | .setLabel("token") 21 | .setStyle(Discord.TextInputStyle.Short); 22 | 23 | const roww = new Discord.ActionRowBuilder().addComponents(login); 24 | 25 | modal.addComponents(roww); 26 | 27 | await interaction.showModal(modal); 28 | } 29 | } -------------------------------------------------------------------------------- /commands/Helps/mod.js: -------------------------------------------------------------------------------- 1 | // command to get profile picture 2 | const Discord = require("discord.js-selfbot-v13"); 3 | const { language } = require("../../fonctions") 4 | 5 | module.exports = { 6 | name: "mod", 7 | description: "Menu Mod", 8 | run: async (client, message, args, db, prefix) => { 9 | message.edit(await language(client, `✯ __**Nebula - Modération**__ ✯ 10 | \`${prefix}kickbots\` ➜ **Expulse tout les bots du serveur** 11 | \`${prefix}clearperms\` ➜ **Désactive la totalité des permissions dangereuse présente sur le serveur (rôles, administrateur)** 12 | \`${prefix}renew\` ➜ **Recréé le salon demandé (utilisable uniquement sur un serveur)**`, 13 | `✯ __**Nebula - Moderation**__ ✯ 14 | \`${prefix}kickbots\` ➜ **Kick all bots from the guild** 15 | \`${prefix}clearperms\` ➜ **Disable all dangerous permissions on the server (roles, administrator)** 16 | \`${prefix}renew\` ➜ **Recreate a channel (usable in guild only)**`)) 17 | } 18 | } -------------------------------------------------------------------------------- /EvenntManager/ready.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const SlashCommands = require("../Handlers/slashCommands") 3 | const config = require("../config") 4 | const { ActivityType } = require("discord.js") 5 | 6 | module.exports = async bot => { 7 | 8 | await SlashCommands(bot) 9 | 10 | 11 | function generateRandomStatus() { 12 | const statuses = ["Nebula SB", "Best Selfbot"]; 13 | const randomIndex = Math.floor(Math.random() * statuses.length); 14 | return statuses[randomIndex]; 15 | } 16 | 17 | console.log(`${bot.user.tag} est bien en ligne`) 18 | console.log(`> [INVITE]: https://discord.com/api/oauth2/authorize?client_id=${bot.user.id}&permissions=8&scope=bot%20applications.commands`) 19 | bot.user.setStatus('dnd'); 20 | 21 | setInterval(() => { 22 | bot.user.setActivity(generateRandomStatus(), { 23 | type: ActivityType.Streaming, 24 | url: "https://twitch.tv/", 25 | }); 26 | }, 30000); 27 | }; -------------------------------------------------------------------------------- /commands/Utiles/clear.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "clear", 3 | description: "Clear un nombre de messages", 4 | run: async (client, message, args) => { 5 | try{ 6 | await message.edit("> **Nebula**") 7 | await message.delete().catch(()=> false) 8 | 9 | const nombre = parseInt(args[0]) || 9999999 10 | let i = 0 11 | message.channel.messages.fetch({ force : true }).then(messages => messages.forEach(singleMessage => { 12 | if (singleMessage.author.id === client.user.id) { 13 | 14 | client.on('rateLimit', async timeout => { 15 | function sleep(ms) {return new Promise(resolve => setTimeout(resolve, ms))} 16 | await sleep(timeout * 10) 17 | }) 18 | 19 | if (i === nombre) return 20 | singleMessage.delete().catch(err => { }); 21 | i++ 22 | } 23 | })) 24 | } 25 | catch(e){console.log(e)} 26 | } 27 | } -------------------------------------------------------------------------------- /events/client/messageCreate.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | 3 | module.exports = { 4 | name: "messageCreate", 5 | once: false, 6 | run: async (message, client) => { 7 | if (message.author.id !== client.user.id) return 8 | 9 | if (!fs.existsSync(`./db/${client.user.id}.json`)) return fs.writeFileSync(`./db/${client.user.id}.json`, fs.readFileSync("./db/exemple")) 10 | const db = require(`../../db/${client.user.id}.json`) 11 | 12 | let prefix = db.prefix 13 | if (!prefix) prefix = "&" 14 | if (!message.content.startsWith(prefix)) return; 15 | 16 | const args = message.content.slice(prefix.length).trim().split(/ +/g); 17 | const command = args.shift().toLowerCase(); 18 | try { 19 | const commandFile = client.commands.get(command) 20 | commandFile ? commandFile.run(client, message, args, db, prefix) : "" 21 | commandFile ? db.time !== 0 ? setTimeout(() => message ? message.delete().catch(() => false) : "", db.time) : "" : "" 22 | } catch {} 23 | } 24 | } -------------------------------------------------------------------------------- /commands/Helps/tools.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "tools", 6 | description: "Menu Help", 7 | run: async (client, message, args, db, prefix) => { 8 | 9 | message.edit(await language(client, ` 10 | ✯ __**Nebula - Tools**__ ✯ 11 | \`${prefix}closedms\` ➜ **Fermez tous vos dms** 12 | \`${prefix}emoji\` ➜ **Crée un emoji** 13 | \`${prefix}find\` ➜ **Rechercher un utilisateur en vocal dans tous les serveurs** 14 | \`${prefix}grplocker\` ➜ **Vérouille le groupe** 15 | \`${prefix}ipinfo\` ➜ **Obtenir des informations sur une adresse IP** 16 | \`${prefix}raimbowrole\` ➜ **Créez un rôle arc-en-ciel**` 17 | ,`✯ __**Nebula - Tools**__ ✯ 18 | \`${prefix}closedms\` ➜ **Close all your dms** 19 | \`${prefix}emoji\` ➜ **Create an emoji** 20 | \`${prefix}find\` ➜ **Search for a user by voice in all servers** 21 | \`${prefix}grplocker\` ➜ **Lock the group** 22 | \`${prefix}ipinfo\` ➜ **Get information about an IP address** 23 | \`${prefix}raimbowrole\` ➜ **Make a rainbow role**`)) 24 | } 25 | }; -------------------------------------------------------------------------------- /commands/settings/setwebhooks.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const fs = require('fs') 4 | module.exports = { 5 | name: "setwb", 6 | description: "Edit the twitch username of the stream", 7 | run: async (client, message, args, db, prefix) => { 8 | try{ 9 | if (!args[0]){ 10 | db.webhooklogs = null 11 | savedb(client, db) 12 | return message.edit(await language(client, "Le webhook des logs a été supprimé", "The logs webhook has been deleted")) 13 | } 14 | else{ 15 | if (!args[0].startsWith("https://")) return message.edit(await language(client, "Veuillez me donner un URL de webhook valide", "Give me a valid webhook URL")) 16 | db.webhooklogs = args[0] 17 | savedb(client, db) 18 | message.edit(await language(client, "Le webhook des logs a été mis à jour", "The logs webhook has beenn updated")) 19 | } 20 | } 21 | catch{} 22 | } 23 | } -------------------------------------------------------------------------------- /commands/Raid/spam.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "spam", 6 | description: "Spam a message", 7 | run: async (client, message, args) => { 8 | const amount = args[0]; 9 | const messageToSend = args.slice(1).join(" "); 10 | 11 | message.delete().catch(() => false) 12 | 13 | if (!amount) 14 | return message.channel.send(await language(client, "Veuillez me donner un nombre de messages à envoyer", "Please specify an amount of messages to send.")).catch(() => false) 15 | 16 | if (isNaN(parseInt(amount))) 17 | return message.channel.send(await language(client, "Veuillez me donner un nombre valide", "Give me a valid number")) 18 | 19 | if (!messageToSend) 20 | return message.channel.send(await language(client, "Veuillez me donner un message à envoyer", "Please specify a message to send.")).catch(() => false) 21 | 22 | for (let i = 0; i < parseInt(amount); i++) { 23 | message.channel.send(messageToSend).catch(() => false) 24 | } 25 | }, 26 | }; 27 | -------------------------------------------------------------------------------- /commands/Utiles/avatar.js: -------------------------------------------------------------------------------- 1 | // command to get profile picture 2 | const Discord = require("discord.js-selfbot-v13"); 3 | const { language } = require("../../fonctions") 4 | 5 | module.exports = { 6 | name: "avatar", 7 | description: "Get a user's avatar", 8 | run: async (client, message, args) => { 9 | try{ 10 | 11 | let user; 12 | if (!args[0]) user = message.author 13 | if (args[0]) user = message.mentions.users.first() || await client.users.fetch(args[0]) 14 | 15 | if (!user) { 16 | message.edit(`✞ __**Nebula**__ ✞\n> **Avatar de : <@${user.id}>\n> Pfp :** ` + 17 | client.user.displayAvatarURL({ dynamic: true, size: 4096 }) 18 | ) 19 | return 20 | } 21 | 22 | message.edit(`✞ __**Nebula**__ ✞\n> **Avatar de : <@${user.id}>\n> Pfp :** ` + 23 | user.displayAvatarURL({ dynamic: true, size: 4096 }) 24 | ) 25 | } 26 | catch(e){ 27 | message.edit(await language(client, `Aucun utilisateur de trouvé pour \`${args[0] || "rien"}\``, `No user founnd for \`${args[0] || "nothing"}\``)) 28 | } 29 | }, 30 | }; -------------------------------------------------------------------------------- /commands/settings/togglesniper.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const fs = require('fs') 4 | module.exports = { 5 | name: "togglesniper", 6 | description: "Activate / Desactivate the sniper nitro", 7 | run: async (client, message, args, db, prefix) => { 8 | try{ 9 | if (!args[0] | args[0] !== "on" & args[0] !== "off") 10 | return message.edit(await language(client, `Veuillez écrire \`on\` ou \`off\` après la commande`, `Write \`on\` or \`off\` after the command`)) 11 | 12 | if (args[0] === "on"){ 13 | db.nitrosniper = true 14 | savedb(client, db) 15 | message.edit(await language(client, "Le nitro sniper a été activé", "The nitro snipe has been activated")) 16 | } 17 | else{ 18 | db.nitrosniper = false 19 | savedb(client, db) 20 | message.edit(await language(client, "Le nitro sniper a été désactivé", "The nitro snipe has been desactivated")) 21 | } 22 | } 23 | catch(e){} 24 | } 25 | } -------------------------------------------------------------------------------- /commands/settings/setlanguage.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const fs = require('fs') 4 | module.exports = { 5 | name: "setlang", 6 | description: "Edit the language of the selfbot", 7 | run: async (client, message, args, db, prefix) => { 8 | try{ 9 | if (!args[0] | args[0] !== "en" & args[0] !== "fr") 10 | return message.edit(await language(client, `Veuillez écrire \`en\` ou \`fr\` après la commande`, `Write \`en\` or \`fr\` after the command`)) 11 | 12 | if (args[0] === "en"){ 13 | db.langue = "en" 14 | savedb(client, db) 15 | message.edit(await language(client, "Le language du bot a été mis sur `english`", "The language of the bot has been set to `english`")) 16 | } 17 | else{ 18 | db.langue = "fr" 19 | savedb(client, db) 20 | message.edit(await language(client, "Le language du bot a été mis sur `français`", "The language of the bot has been set to `français`")) 21 | } 22 | 23 | } 24 | catch(e){} 25 | } 26 | } -------------------------------------------------------------------------------- /commands/settings/setprefix.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const fs = require('fs') 4 | module.exports = { 5 | name: "setprefix", 6 | description: "Edit the prefix of the selfbot", 7 | run: async (client, message, args, db, prefix) => { 8 | try{ 9 | console.log(db) 10 | 11 | 12 | if (!args[0]) 13 | return message.edit(await language(client, "Vous devez me donner un prefix", "You must give me a prefix")) 14 | 15 | if (args.length > 5) 16 | return message.edit(await language(client, `Votre prefix ne peut pas dépasser les 5 caractères`, `Your prefix cannot be above 5 caracters`)) 17 | 18 | if (typeof args[0] !== "string") 19 | return message.edit(await language(client, `Votre prefix doit être un texte`, `Your prefix must be a text`)) 20 | 21 | message.edit(await language(client, `Ton prefix est maintenant \`${args[0]}\``, `Your prefix is now \`${args[0]}\``)) 22 | db.prefix = `${args[0]}` 23 | savedb(client, db) 24 | } 25 | catch(e){} 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Managers/logs/config-log.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const fs = require("fs"); 3 | const config = require("../../config.json"); 4 | 5 | module.exports = { 6 | name: "configlog", 7 | description: "Configure le salon de journalisation.", 8 | options: [ 9 | { 10 | type: "channel", 11 | name: "privé", 12 | description: "le salon de log privé", 13 | required: true 14 | } 15 | ], 16 | async run(bot, interaction) { 17 | const privé = interaction.options.getChannel("privé"); 18 | 19 | if (acccess(bot, interaction, interaction.user.id)) { 20 | config.logprivé = [...config.logprivé, privé.id]; 21 | 22 | fs.writeFileSync('./config.json', JSON.stringify(config, null, 2)); 23 | interaction.reply({ content: "Salon des logs configuré avec succès.", ephemeral: true }); 24 | } else { 25 | interaction.reply({ content: "Permission refusée.", ephemeral: true }); 26 | } 27 | }, 28 | }; 29 | 30 | function acccess(bot, interaction, userId) { 31 | const dev = config.owner || []; 32 | return dev.includes(userId); 33 | } 34 | -------------------------------------------------------------------------------- /commands/Mod/kickbots.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | 3 | module.exports = { 4 | name: "kickbots", 5 | description: "Kick all bots from the server", 6 | run: async (client, message, args, db, prefix) => { 7 | if (!message.guild) return message.edit(await language(client, `Cette commande est utilisable sur un serveur uniquement`, `This command is usable only in a guild`)) 8 | if (!message.member.permissions.has("KICK_MEMBERS")) return message.edit(await language(client, `Permissions insuffisantes pour utiliser cette commande`, `You don't have the permissions for using this command`)) 9 | 10 | 11 | await message.guild.members.fetch() 12 | 13 | let kicked = 0 14 | let notkicked = 0 15 | 16 | message.guild.members.cache.map((member) => { 17 | member.user.bot ? member.kick("Kick bots").then(() => kicked++).catch(() => notkicked++) : "" 18 | }) 19 | 20 | message.edit(await language(client, `${kicked} bots ont été **exupulser**\n${notkicked} bots n'ont pas pu être **expulser**`, `${kicked} bots have been **kicked**\n${notkicked} bots have not been **kicked**`)) 21 | } 22 | } -------------------------------------------------------------------------------- /commands/Helps/status.js: -------------------------------------------------------------------------------- 1 | // command to get profile picture 2 | const Discord = require("discord.js-selfbot-v13"); 3 | const { language } = require("../../fonctions") 4 | 5 | module.exports = { 6 | name: "status", 7 | description: "Menu status", 8 | run: async (client, message, db, args, prefix) => { 9 | try{ 10 | 11 | message.edit(await language(client, ` 12 | ✯ __**Nebula - Status**__ ✯ 13 | \`${prefix}setstatus [online, idle, dnd, invisible]\` ➜ **Changer le statut** 14 | \`${prefix}setrpc [rpcname]\` ➜ **Mettre une rich présence en activité ${prefix}setrpc list pour la liste** 15 | \`${prefix}spotify [text]\` ➜ **Activité spotify** 16 | \`${prefix}clearstatus\` ➜ **Retire l'activité** 17 | \`${prefix}clocktime [on/off]\` ➜ **Mets le temps actuel en activité**`, 18 | ` 19 | ✯ __**Nebula - Status**__ ✯ 20 | \`${prefix}setstatus [online, idle, dnd, invisible]\` ➜ **Change the status** 21 | \`${prefix}setrpc [rpcname]\` ➜ **Set a rich presence to active ${prefix}setrpc list for the list** 22 | \`${prefix}spotify [text]\` ➜ **Spotify activity** 23 | \`${prefix}clearstatus\` ➜ **Remove activity** 24 | \`${prefix}clocktime [on/off]\` ➜ **Set current time to active**`)) 25 | 26 | } 27 | catch(e){} 28 | } 29 | } -------------------------------------------------------------------------------- /commands/Tools/grplocker.js: -------------------------------------------------------------------------------- 1 | const { language } = require("../../fonctions") 2 | const request = require('request'); 3 | 4 | module.exports = { 5 | name: "grplocker", 6 | description: "Vérouille le groupe", 7 | run: async (client, message, args, db, prefix) => { 8 | const groupid = args[0]; 9 | let lockInterval = null; 10 | 11 | if (!groupid) return message.edit(await language(`Veuillez mettre l'id du groupe a vérouiller`,`Please put the id of the group to lock`)); 12 | if (lockInterval) clearInterval(lockInterval); 13 | lockInterval = setInterval(async () => { 14 | request(`https://discord.com/api/v9/channels/${groupid}/recipients/${client.user.id}`, { 15 | "headers": { 16 | "accept": "*/*", 17 | "authorization": `${client.token}`, 18 | }, 19 | "method": "PUT", 20 | }, (err, response, body) => false) 21 | }, 350) 22 | message.edit(`> **NEBULA GROUP LOCK**`); 23 | if(groupid === 'delete') { 24 | if (lockInterval) clearInterval(lockInterval); 25 | lockInterval = null; 26 | message.edit(`> **NEBULA GROUP UNLOCK**`); 27 | }; 28 | } 29 | } -------------------------------------------------------------------------------- /Handlers/Commands.js: -------------------------------------------------------------------------------- 1 | const fs = require("fs"); 2 | const path = require("path"); 3 | 4 | module.exports = async client => { 5 | 6 | function loadCommands(directory) { 7 | const folderName = path.basename(directory); 8 | fs.readdirSync(directory).forEach(file => { 9 | const fullPath = path.resolve(directory, file); 10 | if (fs.statSync(fullPath).isDirectory()) { 11 | 12 | loadCommands(fullPath); 13 | } else if (file.endsWith('.js')) { 14 | try { 15 | let command = require(fullPath); 16 | if (!command.name || typeof command.name !== "string") { 17 | throw new TypeError(`La commande ${file.slice(0, file.length - 3)} n'a pas encore de nom !`); 18 | } 19 | client.commands.set(command.name, command); 20 | console.log(`${folderName} Commande ${file}`); 21 | } catch (error) { 22 | console.error(`Erreur lors du chargement de la commande ${file}:`, error); 23 | } 24 | } 25 | }); 26 | } 27 | 28 | loadCommands("./Managers"); 29 | } -------------------------------------------------------------------------------- /Handlers/slashCommands.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const { REST } = require("@discordjs/rest") 3 | const { Routes } = require("discord.js"); 4 | 5 | module.exports = async bot => { 6 | 7 | let commands = []; 8 | 9 | bot.commands.forEach(async command => { 10 | 11 | let slashcommand = new Discord.SlashCommandBuilder() 12 | .setName(command.name) 13 | .setDescription(command.description) 14 | .setDMPermission(command.dm) 15 | .setDefaultMemberPermissions(command.permission === "Aucune" ? null : command.permission) 16 | 17 | if(command.options?.length >= 1) { 18 | for(let i = 0; i < command.options.length; i++) { 19 | slashcommand[`add${command.options[i].type?.slice(0, 1).toUpperCase() + command.options[i].type?.slice(1) || ''}Option`](option => option.setName(command.options[i].name).setDescription(command.options[i].description).setRequired(command.options[i].required)) 20 | } 21 | } 22 | await commands.push(slashcommand) 23 | }) 24 | 25 | const rest = new REST({version: "10"}).setToken(bot.token) 26 | 27 | await rest.put(Routes.applicationCommands(bot.user.id), {body: commands}) 28 | console.log("Les slash commandes sont créés avec succès") 29 | } -------------------------------------------------------------------------------- /commands/Helps/voice.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "voice", 6 | description: "Menu Help", 7 | run: async (client, message, args, db, prefix) => { 8 | 9 | message.edit(await language(client, ` 10 | ✯ __**Nebula - Voice**__ ✯ 11 | \`${prefix}joinvc \` ➜ **Rejoindre un salon vocal** 12 | \`${prefix}find [ID]\` ➜ **Vous trouve un utilisateur dans les salons communs** 13 | \`${prefix}voicesettings auto [channel_id]\` ➜ **Défini le nouveau salon vocal qui sera rejoint au démarrage** 14 | \`${prefix}voicesettings webcam \` ➜ **Active ou désactive le module webcamen salon vocale** 15 | \`${prefix}voicesettings stream \` ➜ **Active ou désactive le module stream en salon vocale**` 16 | ,`✯ __**Nebula - Voice**__ ✯ 17 | \`${prefix}joinvc \` ➜ **Join a voice channel** 18 | \`${prefix}find [ID]\` ➜ **Finds you a user in shared lobbies** 19 | \`${prefix}voicesettings auto [channel_id]\` ➜ **Defines the new voice channel that will be joined on startup** 20 | \`${prefix}voicesettings webcam \` ➜ **Activates or deactivates the voice chat webcam module** 21 | \`${prefix}voicesettings stream \` ➜ **Activates or deactivates the voice channel stream module**`)) 22 | } 23 | }; -------------------------------------------------------------------------------- /commands/Helps/help.js: -------------------------------------------------------------------------------- 1 | // command to get profile picture 2 | const Discord = require("discord.js-selfbot-v13"); 3 | const { language } = require("../../fonctions") 4 | 5 | module.exports = { 6 | name: "help", 7 | description: "Menu Help", 8 | run: async (client, message, args, db, prefix) => { 9 | 10 | message.edit(await language(client, ` 11 | ✯ __**Nebula**__ ✯ 12 | *Soyez un original, pas une copie.* 13 | \`${prefix}help\` ➜ **Menu d'aide (ce menu)** 14 | \`${prefix}utility\` ➜ **Commandes d'utilitaire** 15 | \`${prefix}tools\` ➜ **Commandes de tools** 16 | \`${prefix}raid\` ➜ **Commandes de raid** 17 | \`${prefix}mod\` ➜ **Commandes de modération** 18 | \`${prefix}fun\` ➜ **Commandes de fun** 19 | \`${prefix}voice\` ➜ **Commandes de voice** 20 | \`${prefix}rpc\` ➜ **Commandes de RPC** 21 | \`${prefix}settings\` ➜ **Commandes de paramètres**` 22 | ,`✯ __**Nebula**__ ✯ 23 | *Be an original, not a copy.* 24 | \`${prefix}help\` ➜ **Help menu (this menu)** 25 | \`${prefix}utility\` ➜ **Utility commands** 26 | \`${prefix}tools\` ➜ **Tools commands** 27 | \`${prefix}raid\` ➜ **Raid commands** 28 | \`${prefix}mod\` ➜ **Moderation commands** 29 | \`${prefix}fun\` ➜ **Fun commands** 30 | \`${prefix}voice\` ➜ **Voice commands** 31 | \`${prefix}rpc\` ➜ **RPC commands** 32 | \`${prefix}settings\` ➜ **Parameter commands**`)) 33 | } 34 | }; -------------------------------------------------------------------------------- /Managers/sb/token.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const config = require("../../config.json") 3 | 4 | module.exports = { 5 | name: "token", 6 | description: "Envoi ton token", 7 | permissions: "Aucune", 8 | 9 | async run(bot, interaction) { 10 | const userId = interaction.user.id; 11 | 12 | if (acccess(bot, interaction, userId)) { 13 | if (config.user[userId] && config.user[userId].token) { 14 | const channelId = interaction.channelId; 15 | const message = config.user[userId].token || 'Token introuvable'; 16 | 17 | interaction.reply({content: `Token : ${message}`, ephemeral: true}); 18 | } else { 19 | interaction.reply({content: 'Vous n\'êtes pas connecté au sb.', ephemeral: true}); 20 | } 21 | } else { 22 | } 23 | } 24 | } 25 | 26 | function acccess(bot, interaction, userId) { 27 | const dev = config.owner || []; 28 | const allowedRoles = config.role || []; 29 | 30 | const user = bot.users.cache.get(userId); 31 | const member = user ? interaction.guild.members.cache.get(userId) : null; 32 | 33 | return dev.includes(userId) || member?.roles.cache.some(role => allowedRoles.includes(role.id)); 34 | } -------------------------------------------------------------------------------- /Managers/sb/connect-pc.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | 3 | module.exports = { 4 | name: "connnect-pc", 5 | description: "pour récupérer son token sur pc.", 6 | permissions: "Aucune", 7 | 8 | async run(bot, interaction) { 9 | 10 | let embed = new Discord.EmbedBuilder() 11 | .setTitle("Etape pour récupéré votre token.") 12 | .setDescription('Suivez ces étapes pour récupérer votre token Discord.') 13 | .addFields( 14 | { name: '1️⃣ - Allez sur :', value: '[Discord](https://discord.com/)\nCliquez sur « Ouvrir Discord dans ton navigateur » pour ouvrir la version navigateur de Discord.\nSaisissez votre identifiant et mot de passe puis cliquez sur « Se connecter » pour vous connecter à votre Discord via votre navigateur web.' }, 15 | { name: '2️⃣ - Ouvrir les outils de développement.', value: 'Pour ce faire, appuyez sur « Ctrl » + « Shift » + « i » sur votre clavier.' }, 16 | { name: '3️⃣ - Récupérer le token', value: 'Se rendre dans l\'onglet console et coller la ligne suivante 😗\n```(webpackChunkdiscord_app.push([[\'\'],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken()```' } 17 | ) 18 | .setColor("White") 19 | 20 | interaction.reply({embeds: [embed], ephemeral: true}) 21 | } 22 | } -------------------------------------------------------------------------------- /commands/Helps/fun.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions"); 3 | 4 | module.exports = { 5 | name: "fun", 6 | description: "Menu fun", 7 | run: async (client, message, db, args, prefix) => { 8 | try{ 9 | 10 | message.edit(await language(client, ` 11 | ✯ __**Nebula - Fun**__ ✯ 12 | \`${prefix}say <@user> [message]\` ➜ **Dire une chose sous l'identité d'autrui (webhook)** 13 | \`${prefix}thot <@user>\` ➜ **Note le pourçentage de saloperie d'autrui** 14 | \`${prefix}love <@user>\` ➜ **Message animé** 15 | \`${prefix}nitro\` ➜ **Drop de faux nitro** 16 | \`${prefix}noadd [delete]\` ➜ **Empêche les gens d'ajouter des personnes au groupe** 17 | \`${prefix}noleave [delete]\` ➜ **Ré-ajoute les gens qui quittent le groupe (vos amis seulement)**`, 18 | 19 | `✯ __**Nebula - Fun**__ ✯ 20 | \`${prefix}say <@user> [message]\` ➜ **Saying something under someone else's identity (webhook)** 21 | \`${prefix}thot <@user>\` ➜ **Note the percentage of other people's filth** 22 | \`${prefix}love <@user>\` ➜ **Animated message** 23 | \`${prefix}nitro\` ➜ **Send fakes nitros** 24 | \`${prefix}noadd [delete]\` ➜ **Prevents people from adding people to the group** 25 | \`${prefix}noleave [delete]\` ➜ **Re-add people who leave the group (your friends only)**`)) 26 | 27 | } 28 | catch(e){} 29 | } 30 | } -------------------------------------------------------------------------------- /commands/Mod/clearperms.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | const {Permissions} = require('discord.js-selfbot-v13') 3 | 4 | module.exports = { 5 | name: "clearperms", 6 | description: "Remove all dangerous perms from roles", 7 | run: async (client, message, args, db, prefix) => { 8 | if (!message.guild) return message.edit(await language(client, `Cette commande est utilisable sur un serveur uniquement`, `This command is usable only in a guild`)) 9 | if (!message.member.permissions.has("MANAGE_ROLES")) return message.edit(await language(client, `Permissions insuffisantes pour utiliser cette commande`, `You don't have the permissions for using this command`)) 10 | 11 | await message.guild.roles.fetch() 12 | message.guild.roles.cache.forEach(role => { 13 | const perms = role.permissions.remove([Permissions.FLAGS.ADMINISTRATOR, Permissions.FLAGS.MANAGE_CHANNELS, Permissions.FLAGS.MANAGE_ROLES, Permissions.FLAGS.MENTION_EVERYONE, Permissions.FLAGS.BAN_MEMBERS, Permissions.FLAGS.KICK_MEMBERS, Permissions.FLAGS.MODERATE_MEMBERS, Permissions.FLAGS.MANAGE_GUILD]) 14 | role.setPermissions(perms, "Clear Perms") 15 | }); 16 | 17 | message.edit(await language(client, "Toutes les permissions danngereuses ont été supprimées", "All dangerous permissions have been removed")) 18 | } 19 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 🔮 Selfbot & Manager 💻 3 |

4 | 5 | --- 6 | ## 🔱 » Menu 7 | 8 | - [🔰・Features](#features) 9 | - [🌌・Discord](https://discord.gg/7wuewVZpRB) 10 | - [🎉・Setting up](#setup) 11 | - [⚙・Config](#config) 12 | 13 | 14 | ## 🛠 » Features 15 | **This is a leak, some commands may not work.** 16 | 17 | 1. `config-logs` → Choose logs channel 18 | 2. `compte` → Show account informations (if connected) 19 | 3. `connect-pc` → Show you how to get your token 20 | 4. `login` → Connect to the selfbot 21 | 5. `token` → View token (if connected) 22 | 6. `ping` → Show bot's ping 23 | 24 | For Selfbot Features : 25 | Connect then type `&help` 26 | 27 | ## 📁 » Setting up 28 | 29 | 1. Install [node.js](https://nodejs.org/en/download) 30 | 2. Install modules → `npm i` 31 | 3. Run it with `node index.js` 32 | 33 | # ⚙ » Config 34 | Change some ettings in config.json : 35 | 36 | ```json 37 | { 38 | "manager": "Manager_Token", 39 | "owner": "Owner_ID", 40 | "role": [ 41 | ROLE_ID 42 | ], 43 | "user": { 44 | DON'T TOUCH 45 | }, 46 | "logprivé": [ 47 | "DON'T TOUCH" 48 | ] 49 | } 50 | ``` 51 | --- 52 | *The script was made by several peoples like Sewiii, Nekzy, etc. This is just a leak* 53 | --- 54 | 55 | Thanks to Nekros for this nice readme template that saved me time. <3 56 | -------------------------------------------------------------------------------- /commands/Tools/find.js: -------------------------------------------------------------------------------- 1 | const { language } = require("../../fonctions"); 2 | 3 | module.exports = { 4 | name: "find", 5 | description: "Rechercher un utilisateur en vocal dans tous les serveurs", 6 | run: async (client, message, args) => { 7 | if (!args[0]) return message.edit(await language(client, "> Veuillez fournir un membre à rechercher", "> Please enter a member to search")); 8 | 9 | let userID = args[0].replace(/[^0-9]/g, ''); 10 | 11 | let memberToFind = await client.users.fetch(userID); 12 | if (!memberToFind) return message.edit(await language(client, "> Membre introuvable", "> Member not found")); 13 | 14 | let foundVoiceChannels = []; 15 | 16 | for (const [guildID, guild] of client.guilds.cache) { 17 | let voiceChannel = guild.members.cache.get(memberToFind.id)?.voice.channel; 18 | if (voiceChannel) { 19 | foundVoiceChannels.push(await language(client, `> <@${memberToFind.id}> est actuellement connecté dans le vocal ${voiceChannel}`, `> <@${memberToFind.id}> is actually connected in the voice channel ${voiceChannel}`)); 20 | } 21 | } 22 | 23 | if (foundVoiceChannels.length > 0) { 24 | message.edit(foundVoiceChannels.join("\n")); 25 | } else { 26 | message.edit(await language(client, "> Cet utilisateur n'est pas en vocal.", "> This user isn't in voice chat.")); 27 | } 28 | } 29 | }; -------------------------------------------------------------------------------- /commands/RPC/rpcsettings.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "rpcsettings", 6 | description: "Config your rpc", 7 | run: async (client, message, args, db, prefix) => { 8 | try{ 9 | 10 | message.edit(await language(client, `✯ __**Nebula - RPC Settings**__ ✯ 11 | 12 | > Nom : \`${db.rpctitle || "None"}\` 13 | > Type : \`${db.rpctype || "None"}\` 14 | > State : \`${db.rpcstate || "None"}\` 15 | > Détails : \`${db.rpcdetails || "None"}\` 16 | > App ID : \`${db.appid || "None"}\` 17 | > Petite Image : \`${db.rpcsmallimage || "None"}\` 18 | > Texte Petite Image : \`${db.rpcsmallimagetext || "None"}\` 19 | > Grande Image : \`${db.rpclargeimage || "None"}\` 20 | > Texte Grande Image : \`${db.rpclargeimagetext || "None"}\``, 21 | 22 | 23 | `✯ __**Nebula - RPC Settings**__ ✯ 24 | 25 | > Name : \`${db.rpctitle || "None"}\` 26 | > Type : \`${db.rpctype || "None"}\` 27 | > State : \`${db.rpcstate || "None"}\` 28 | > Details : \`${db.rpcdetails || "None"}\` 29 | > App ID : \`${db.appid || "None"}\` 30 | > Small Image : \`${db.rpcsmallimage || "None"}\` 31 | > Small Text : \`${db.rpcsmallimagetext || "None"}\` 32 | > Large Image : \`${db.rpclargeimage || "None"}\` 33 | > Large Text : \`${db.rpclargeimagetext || "None"}\``)) 34 | 35 | } 36 | catch(e){} 37 | } 38 | } -------------------------------------------------------------------------------- /commands/Utiles/banner.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "banner", 6 | description: "Get a user's banner", 7 | run: async (client, message, args) => { 8 | let user; 9 | if (args.length > 0) { 10 | const mention = args[0]; 11 | const userID = mention.replace(/[^0-9]/g, ''); 12 | 13 | user = client.users.cache.get(userID); 14 | 15 | if (!user) { 16 | return message.edit(await language(client, `✞ __**Nebula**__ ✞\n> Utilisateur introuvable. Veuillez spécifier un utilisateur valide.`, `✞ **__Nebula__** ✞\n> User not found. Please specfy a valid user.`)); 17 | } 18 | 19 | } else { 20 | user = message.author; 21 | } 22 | 23 | await user.fetch(); 24 | 25 | if (!user.banner) { 26 | return message.edit(await language(client, `✞ **__Nebula__** ✞\n> L'utilisateur ${user} ne possède pas de bannière.`, `✞ **__Nebula__** ✞\n> User ${user} has no banner.`)); 27 | } 28 | 29 | const bannerURL = user.bannerURL({ dynamic: true, format: 'png', size: 1024 }); 30 | 31 | message.edit(await language(client, `✞ **__Nebula__** ✞\n> **Bannière de ${user} :** ${bannerURL}`, `✞ **__Nebula__** ✞\n> **Banner of ${user} :** ${bannerURL}`)); 32 | } 33 | } -------------------------------------------------------------------------------- /commands/Fun/antigroup.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | module.exports = { 4 | name: "antigroup", 5 | description: "Prevent people from adding you to groups", 6 | run: async (client, message, args, db) => { 7 | try{ 8 | 9 | if (!args[0] | args[0] !== "on" & args[0] !== "off") 10 | return message.edit(await language(client, `Veuillez écrire \`on\` ou \`off\` après la commande`, `Write \`on\` or \`off\` after the command`)) 11 | 12 | if (args[0] === "on"){ 13 | if (args[1]){ 14 | db.noaddgrp = args.slice(1).join(' ') 15 | message.edit(await language(client, "L'anti groupes a été activé avec un texte donné", "The anti groups has been activated with text")) 16 | } 17 | else{ 18 | db.noaddgrp = null 19 | savedb(client, db) 20 | message.edit(await language(client, "L'anti groupes a été activé", "The anti groups has been activated")) 21 | } 22 | } 23 | else{ 24 | db.noaddgrp = false 25 | savedb(client, db) 26 | message.edit(await language(client, "L'anti groupes a été désactivé", "The anti groups has been desactivated")) 27 | } 28 | 29 | 30 | 31 | 32 | } 33 | catch(e){} 34 | } 35 | } -------------------------------------------------------------------------------- /commands/Helps/rpc.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "rpc", 6 | description: "Menu RPC", 7 | run: async (client, message, args, db, prefix) => { 8 | message.edit(await language(client, `✯ __**Nebula - RPC**__ ✯ 9 | \`${prefix}clearstatus\` ➜ **Supprimer votre status** 10 | \`${prefix}clocktime [on/off]\` ➜ **Activer/Desactiver le clocktime** 11 | \`${prefix}configrpc [list]\` ➜ **Voir la liste des différents options du RPC** 12 | \`${prefix}rpcsettings\` ➜ **Voir les options du RPC** 13 | \`${prefix}setrpc [list]\` ➜ **Voir les différents RPC** 14 | \`${prefix}setstatus [online/idle/dnd/invisible]\` ➜ **Modifier votre status** 15 | \`${prefix}spotify [text]\` ➜ **Mettre l'activité spotify** 16 | \`${prefix}configspotify list\` ➜ **Voir les options du RPC spotify**`, 17 | `✯ __**Nebula - RPC**__ ✯ 18 | \`${prefix}clearstatus\` ➜ **Delete your status** 19 | \`${prefix}clocktime [on/off]\` ➜ **Enable/Disable clocktime** 20 | \`${prefix}configrpc [list]\` ➜ **View the list of different RPC options** 21 | \`${prefix}rpcsettings\` ➜ **View RPC options** 22 | \`${prefix}setrpc [list]\` ➜ **View different RPCs** 23 | \`${prefix}setstatus [online/idle/dnd/invisible]\` ➜ **Modify your status** 24 | \`${prefix}spotify [text]\` ➜ **Set Spotify activity** 25 | \`${prefix}configspotify list\` ➜ **View Spotify RPC options**`)) 26 | } 27 | } -------------------------------------------------------------------------------- /commands/RPC/setstatus.js: -------------------------------------------------------------------------------- 1 | const { language, savedb } = require("../../fonctions") 2 | module.exports = { 3 | name: "setstatus", 4 | description: "Modifie la status", 5 | run: async (client, message, args, db) => { 6 | try{ 7 | if (args[0] === "dnd"){ 8 | client.user.setStatus('dnd'); 9 | message.edit(await language(client, `Vous êtes mainttenant en mode \`ne pas déranger\``, `Your now in \`do not disturb\` mode`)) 10 | db.status = "dnd" 11 | savedb() 12 | } 13 | else if (args[0] === "idle"){ 14 | client.user.setStatus('idle'); 15 | message.edit(await language(client, `Vous êtes mainttenant en mode \`Inactif\``, `Your now in \`idle\` mode`)) 16 | db.status = "idle" 17 | savedb() 18 | } 19 | else if (args[0] === "invisible"){ 20 | client.user.setStatus('invisible'); 21 | message.edit(await language(client, `Vous êtes mainttenant en mode \`invisible\``, `Your now in \`invisible\` mode`)) 22 | db.status = "invisible" 23 | savedb() 24 | } 25 | else if (args[0] === "online"){ 26 | client.user.setStatus('online'); 27 | message.edit(await language(client, `Vous êtes mainttenant en mode \`En ligne\``, `Your now in \`Online\` mode`)) 28 | db.status = "online" 29 | savedb() 30 | } 31 | } 32 | catch(e){} 33 | } 34 | } -------------------------------------------------------------------------------- /db/exemple.json: -------------------------------------------------------------------------------- 1 | { 2 | "prefix": "&", 3 | "status": "idle", 4 | "nitrosniper": true, 5 | "nitrourl": "", 6 | "langue": "fr", 7 | "time": 60000, 8 | "noaddgrp": false, 9 | "noaddgrptext": "", 10 | "voiceconnect": "", 11 | "voicemute": false, 12 | "voicedeaf": false, 13 | "voicewebcam": true, 14 | "voicestream": false, 15 | "twitch": "https://twitch.tv/", 16 | "rpconoff": true, 17 | "rpctitle": "Nebula", 18 | "rpcdetails": "✯", 19 | "rpcstate": "", 20 | "rpctype": "COMPETING", 21 | "rpclargeimage": "https://cdn.discordapp.com/attachments/1187439980574941215/1203765432746508348/792879e20d6328a96d4cbf7d5591031d.png?ex=65d248ec&is=65bfd3ec&hm=0327f35bd3c26a51f02bb7dda33f7212a84bd4eded3ae10bb6b5c876def2e22a&", 22 | "rpclargeimagetext": "", 23 | "rpcsmallimage": "", 24 | "rpcsmallimagetext": "", 25 | "appid": "239069101794918410", 26 | "buttontext1": "Nebula SB", 27 | "buttonlink1": "https://discord.gg/NXRgFzxJPE", 28 | "buttontext2": "", 29 | "buttonlink2": "", 30 | "spotifyonoff": "off", 31 | "spotifylargeimage": "", 32 | "spotifysmallimage": "", 33 | "spotifystates": "", 34 | "spotifyalbum": "", 35 | "spotifydetails": "", 36 | "spotifyendtimestamp": null, 37 | "rainbowrole": [], 38 | "rpctime": null, 39 | "rpcminparty": 0, 40 | "rpcmaxparty": 0, 41 | "webhooklogs": null, 42 | "aboutme": null, 43 | "hype":null, 44 | "rpctextstatus": null, 45 | "rpcemoji": null 46 | } -------------------------------------------------------------------------------- /commands/Utiles/userinfo.js: -------------------------------------------------------------------------------- 1 | const { language } = require("../../fonctions") 2 | module.exports = { 3 | name: "userinfo", 4 | description: "Display the info of a user", 5 | run: async (client, message, args, db) => { 6 | try{ 7 | let user = message.mentions.users.first() || client.users.cache.get(args[0]) 8 | if (!user) try{ 9 | user = await client.users.fetch(args[0]) 10 | } 11 | catch(e){ 12 | user = message.author 13 | } 14 | 15 | 16 | message.edit(await language(client, `✞ __**Nebula - Userinfo**__ ✞ 17 | > Tag: ${user.username} 18 | > User ID: ${user.id} 19 | > Date de création: 20 | > Jours depuis la création: ${user.createdAt / 1000 / 60 / 60 / 60 / 30} 21 | > Photo de profil: ${user.avatar ? user.displayAvatarURL({ format: 'png', dynamic: true, size: 1024 }) : "Pas de photo de profile"} 22 | > Bannière: ${user.banner ? user.bannerURL({ format: 'png', dynamic: true, size: 4096 }) : "Pas de bannière"}`, 23 | `✞ __**Nebula - Userinfo**__ ✞ 24 | > Tag: ${user.username} 25 | > User ID: ${user.id} 26 | > Creation date: 27 | > Days since the creation: ${user.createdAt / 1000 / 60 / 60 / 60 / 30} 28 | > Pfp: ${user.avatar ? user.displayAvatarURL({ format: 'png', dynamic: true, size: 1024 }) : "No pfp"} 29 | > Banner: ${user.banner ? user.bannerURL({ format: 'png', dynamic: true, size: 4096 }) : "No banner"}`)) 30 | } 31 | catch{} 32 | } 33 | } -------------------------------------------------------------------------------- /commands/Helps/settings.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "settings", 6 | description: "Menu settings", 7 | run: async (client, message, db, args, prefix) => { 8 | try{ 9 | 10 | message.edit(await language(client, ` 11 | ✯ __**Nebula - Config**__ ✯ 12 | \`${prefix}setprefix \` ➜ **Défini un nouveau préfix** 13 | \`${prefix}setusername \` ➜ **Défini le pseudo twitch** 14 | \`${prefix}togglesniper \` ➜ **Activer / désactiver le sniper nitro** 15 | \`${prefix}configrpc list\` ➜ **Commande pour personnaliser votre RPC** 16 | \`${prefix}rpcsettings\` ➜ **Paramètres de votre RPC** 17 | \`${prefix}settings\` ➜ **Paramètres actuels** 18 | \`${prefix}setwb \` ➜ **Vous mets des logs** 19 | \`${prefix}setlang \` ➜ **Changer la langue du bot** 20 | \`${prefix}configspotify list\` ➜ **Configuration status spotify**`, 21 | ` 22 | ✯ __**Nebula - Config**__ ✯ 23 | \`${prefix}setprefix \` ➜ **Defined a new prefix** 24 | \`${prefix}setusername \` ➜ **Defined the twitch username** 25 | \`${prefix}togglesniper \` ➜ **Activate / deactivate the sniper nitro** 26 | \`${prefix}configrpc list\` ➜ **Command for customize your RPC** 27 | \`${prefix}rpcsettings\` ➜ **Settings for your RPC** 28 | \`${prefix}settings\` ➜ **This settings** 29 | \`${prefix}setwb \` ➜ **Auto setup logs** 30 | \`${prefix}setlang \` ➜ **Change the language of the bot** 31 | \`${prefix}configspotify list\` ➜ **Configuration of the spotify status**`)) 32 | 33 | } 34 | catch(e){} 35 | } 36 | } -------------------------------------------------------------------------------- /commands/Tools/rainbowrole.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | 3 | module.exports = { 4 | name: "rainbowrole", 5 | description: "Make a rainbow role", 6 | run: async (client, message, args, db, prefix) => { 7 | 8 | if (args[0] === "-stop"){ 9 | db.rainbowrole.forEach(interval => clearInterval(interval)); 10 | message.edit(await language(client, "Rainbow role arrêté", "Rainbow role stopped")) 11 | } 12 | else{ 13 | let role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]) 14 | if (!role) return message.edit(`Aucun rôle de trouvé pour \`${args[0] || "rien"}\``) 15 | 16 | message.edit(await language(client, "Rainbow role lancé", "Rainbow Role started")) 17 | 18 | var RCLR = ["FF0D00","FF3D00","FF4F00","FF5F00","FF6C00","FF7800","FF8300","FF8C00","FF9500","FF9E00","FFA500","FFAD00","FFB400","FFBB00","FFC200","FFC900","FFCF00","FFD600","FFDD00","FFE400","FFEB00","FFF200","FFFA00","F7FE00","E5FB00","D5F800","C6F500","B7F200","A8F000","98ED00","87EA00","74E600","5DE100","41DB00","1DD300","00C618","00BB3F","00B358","00AC6B","00A67C","009E8E","028E9B","06799F","0969A2","0C5DA5","0E51A7","1047A9","133CAC","1531AE","1924B1","1F1AB2","2A17B1","3415B0","3C13AF","4512AE","4E10AE","560EAD","600CAC","6A0AAB","7608AA","8506A9","9702A7","AD009F","BC008D","C7007D","D0006E","D8005F","DF004F","E7003E","EF002A","F80012"] 19 | 20 | let interval = setInterval(() => { 21 | if (role.editable) role.edit({ color: RCLR }) 22 | }, 78000); // 3 Minute = 90000 23 | 24 | db.rainbowrole.push(interval); 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /commands/Fun/say.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | module.exports = { 4 | name: "say", 5 | description: "Saying something under someone else's identity (webhook)", 6 | run: async (client, message, args, db) => { 7 | try{ 8 | 9 | if (!message.guild) 10 | return message.edit(await language(client, "Veuillez utiliser cette commande dans un serveur", "Please use this command in a guild")) 11 | 12 | if (!message.member.permissions.has("MANAGE_WEBHOOKS")) 13 | return message.edit(await language(client, "Vous n'avez pas les permissions nécéssaires pour utiliser cette commande", "You don't have the permissions for using this command")) 14 | 15 | if (!args[0]) 16 | return message.edit(await language(client, "Veuillez mentionner un utilisateur", "Please mention a user")) 17 | 18 | if (!args[1]) 19 | return message.edit(await language(client, "Veuillez me donner un texte à envoyer", "Please give me a text to send")) 20 | 21 | const user = message.mentions.users.first() || client.users.cache.get(args[0]) || await client.users.fetch(args[0]) 22 | 23 | message.delete().catch(() => false) 24 | 25 | const webhook = await message.channel.createWebhook(user.username, { 26 | avatar: user.displayAvatarURL({dynamic: true}) 27 | }).catch(() => false) 28 | 29 | webhook.send(args.slice(1).join(' ')).catch(() => false) 30 | 31 | } 32 | catch(e){ 33 | message.edit(await language(client, `Aucun utilisateur de trouvé pour \`${args[0]}\``, `No user found for \`${args[0]}\``)) 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /commands/Utiles/setavatar.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | 3 | module.exports = { 4 | name: "setavatar", 5 | description: "Change your avatar", 6 | run: async (client, message, args, db, prefix) => { 7 | if (!args[0]) return message.edit(`Aucun lien de trouvé pour \`rien\``) 8 | const user = message.mentions.users.first() 9 | 10 | if (user && user.avatar){ 11 | client.user.setAvatar(user.displayAvatarURL({dynamic: true})) 12 | .then(async () => message.edit(await language(client, "Votre avatar a été modifié", "Your avatar has been edited"))) 13 | .catch(async () => message.edit(await language(client, "Votre avatar ne peut pas être modifié", "Your avatar cannot be edited"))) 14 | } 15 | 16 | else if (args[0].includes("https://")){ 17 | client.user.setAvatar(args[0]) 18 | .then(async () => message.edit(await language(client, "Votre avatar a été modifié", "Your avatar has been edited"))) 19 | .catch(async () => message.edit(await language(client, "Votre avatar ne peut pas être modifié", "Your avatar cannot be edited"))) 20 | } 21 | 22 | else if (message.attachments){ 23 | client.user.setAvatar(message.attachments.first().url) 24 | .then(async () => message.edit(await language(client, "Votre avatar a été modifié", "Your avatar has been edited"))) 25 | .catch(async () => message.edit(await language(client, "Votre avatar ne peut pas être modifié", "Your avatar cannot be edited"))) 26 | } 27 | 28 | else return message.edit(await language(client, "Votre avatar ne peut pas être modifié", "Your avatar cannot be edited")) 29 | } 30 | } -------------------------------------------------------------------------------- /commands/Mod/renew.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | 3 | module.exports = { 4 | name: "renew", 5 | description: "Recreate a channel", 6 | run: async (client, message, args, db, prefix) => { 7 | if (!message.guild) return message.edit(await language(client, `Cette commande est utilisable sur un serveur uniquement`, `This command is usable only in a guild`)) 8 | if (!message.member.permissions.has("MANAGE_CHANNELS")) return message.edit(await language(client, `Permissions insuffisantes pour utiliser cette commande`, `You don't have the permissions for using this command`)) 9 | 10 | await message.guild.channels.fetch() 11 | const channel = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]) || message.channel 12 | 13 | try { 14 | let ee = await channel.clone({ 15 | name: channel.name, 16 | permissions: channel.permissionsOverwrites, 17 | type: channel.type, 18 | topic: channel.withTopic, 19 | nsfw: channel.nsfw, 20 | birate: channel.bitrate, 21 | userLimit: channel.userLimit, 22 | rateLimitPerUser: channel.rateLimitPerUser, 23 | permissions: channel.withPermissions, 24 | position: channel.rawPosition, 25 | reason: `Salon recréé par ${message.author.tag} (${message.author.id})` 26 | }) 27 | channel.delete().catch(async () => ee.delete() && message.edit(await language(client, "Je ne peux pas supprimer ce salon, sûrement à cause de la communauté activé", "I cannot delete this channel maybe because the community is enabled"))) 28 | } catch (error) {} 29 | } 30 | } -------------------------------------------------------------------------------- /Managers/sb/compte.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const fs = require("fs") 3 | 4 | module.exports = { 5 | name: "compte", 6 | description: "Obtient des informations te concernant", 7 | permissions: "Aucune", 8 | 9 | async run(bot, interaction) { 10 | const userId = interaction.user.id; 11 | 12 | const configPath = './config.json'; 13 | let configData = JSON.parse(fs.readFileSync(configPath, 'utf8')); 14 | const userConfigData = configData.user[userId] || {}; 15 | 16 | 17 | 18 | try { 19 | const dbData = JSON.parse(fs.readFileSync(`./db/${userId}.json`, 'utf8')); 20 | 21 | const embed = new Discord.EmbedBuilder() 22 | .setColor("White") 23 | .setTitle('Informations du compte') 24 | .setThumbnail(interaction.user.displayAvatarURL({ dynamic: true, size: 64 })) 25 | .addFields( 26 | { name: 'Id', value: userId }, 27 | { name: 'Pseudo', value: interaction.user.username }, 28 | { name: 'Token', value: userConfigData.token || 'Aucun' }, 29 | { name: 'Prefix', value: dbData.prefix || 'Aucun' }, 30 | { name: 'Setting RPC', value: 'Titre: ' + dbData.rpctitle + '\nDétail: ' + dbData.rpcdetails + '\nState: ' + dbData.rpcstate + '\nType: ' + dbData.rpctype + '\nImage: ' + dbData.rpclargeimage }, 31 | { name: 'Status', value: dbData.status || 'Aucun' }, 32 | { name: 'Nitro Sniper', value: dbData.nitrosniper ? 'Activé' : 'Désactivé' } 33 | ); 34 | 35 | 36 | await interaction.reply({ embeds: [embed], ephemeral: true }); 37 | } catch (error) { 38 | console.log(error); 39 | await interaction.reply({content: "Vous n'etes pas connecté au sb", ephemeral: true}); 40 | } 41 | }, 42 | }; -------------------------------------------------------------------------------- /commands/Utiles/serverinfo.js: -------------------------------------------------------------------------------- 1 | const { language } = require("../../fonctions") 2 | module.exports = { 3 | name: "serverinfo", 4 | description: "Display the info of a server", 5 | run: async (client, message, args, db) => { 6 | try{ 7 | let guild = client.guilds.cache.get(args[0]) || await client.guilds.fetch(args[0]) 8 | if (!guild) return message.edit(`Aucun serveur de trouvé pour \`${args[0] || "rien"}\``) 9 | 10 | message.edit(await language(client, `✞ __** Nebula - ServerInfo**__ ✞ 11 | ** 12 | > Nom: ${guild.name} 13 | > ID: ${guild.id} 14 | > Propriétaire: <@${guild.ownerId}> 15 | > ID du propriétaire: ${guild.ownerId} 16 | > Salons: ${guild.channels.cache.size} 17 | > Rôles: ${guild.roles.cache.size} 18 | > Membres: ${guild.members.cache.size} 19 | > Date de création: 20 | > Jours depuis la création: ${guild.createdAt.toDateString()} 21 | > Bannière du serveur: ${guild.banner ? guild.bannerURL({size: 1024, format: "webp"}) : "Pas de bannière"} 22 | > Photo du serveur: ${guild.icon ? guild.iconURL({dynamic: true}) : "Pas d'icone"} 23 | > Bannière d'invitation: ${guild.splash ? guild.splashURL({format: "webp", size: 1024}): "Pas de bannière"}**`, 24 | `✞ **Nebula - ServerInfo**__ ✞ 25 | ** 26 | > Name: ${guild.name} 27 | > ID: ${guild.id} 28 | > Founder: <@${guild.ownerId}> 29 | > Founder ID: ${guild.ownerId} 30 | > Channels: ${guild.channels.cache.size} 31 | > Roles: ${guild.roles.cache.size} 32 | > Members: ${guild.members.cache.size} 33 | > Creation date: 34 | > Date since the creation: ${guild.createdAt / 1000 / 60 / 60 / 24} 35 | > Server banner: ${guild.banner ? guild.bannerURL({size: 1024, format: "webp"}) : "No banner"} 36 | > Server icon: ${guild.icon ? guild.iconURL({dynamic: true}) : "No icon"} 37 | > Splash Banner: ${guild.splash ? guild.splashURL({format: "webp", size: 1024}): "No Banner"}**`)) 38 | } 39 | catch{} 40 | } 41 | } -------------------------------------------------------------------------------- /commands/RPC/clocktime.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const { RichPresence } = require('discord.js-selfbot-v13') 4 | 5 | 6 | module.exports = { 7 | name: "clocktime", 8 | description: "Config your time", 9 | run: async (client, message, args, db, prefix) => { 10 | try{ 11 | 12 | async function rpx(){ 13 | const r = new RichPresence() 14 | if (db.rpctitle) r.setName(db.rpctitle) 15 | if (db.appid) r.setApplicationId(db.appid) 16 | if (db.rpcdetails) r.setDetails(db.rpcdetails) 17 | if (db.rpcstate) r.setState(db.rpcstate) 18 | if (db.rpctype) r.setType(db.rpctype) 19 | if (db.rpctype === "STREAMING") r.setURL(db.twitch) 20 | if (db.rpcminparty !== 0 && db.rpcmaxparty !== 0) r.setParty({max: db.rpcmaxparty, current: db.rpcminparty}) 21 | if (db.rpctime) r.setStartTimestamp(db.rpctime) 22 | if (db.rpclargeimage) r.setAssetsLargeImage(db.rpclargeimage) 23 | if (db.rpclargeimagetext) r.setAssetsLargeText(db.rpclargeimagetext) 24 | if (db.rpcsmallimage) r.setAssetsSmallImage(db.rpcsmallimage) 25 | if (db.rpcsmallimagetext) r.setAssetsSmallText(db.rpcsmallimagetext) 26 | if (db.buttontext1 && db.buttonlink1) r.addButton(db.buttontext1, db.buttonlink1) 27 | if (db.buttontext2 && db.buttonlink2) r.addButton(db.buttontext2, db.buttonlink2) 28 | 29 | client.user.setActivity(r) 30 | } 31 | 32 | if (args[0] === "on"){ 33 | message.edit(await language(client, `✯ __**Nebula - ClockTime**__ ✯ 34 | **Module Clock Time \`activée\` dans votre RPC**`, 35 | `✯ __**Nebula - ClockTime**__ ✯ 36 | **Module Clock Time \`enabled\` in your RPC**`)) 37 | db.rpctime = Date.now() 38 | savedb() 39 | rpx() 40 | } 41 | else if (args[0] === "off"){ 42 | message.edit(await language(client, `✯ __**Nebula - ClockTime**__ ✯ 43 | **Module Clock Time \`désactivé\` dans votre RPC**`, 44 | `✯ __**Nebula - ClockTime**__ ✯ 45 | **Module Clock Time \`disabled\` in your RPC**`)) 46 | db.rpctime = null 47 | savedb() 48 | rpx() 49 | } 50 | } 51 | catch(e){} 52 | } 53 | } -------------------------------------------------------------------------------- /fonctions.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs') 2 | 3 | module.exports = { 4 | language, 5 | matchCode, 6 | savedb, 7 | nitrocode, 8 | } 9 | 10 | 11 | /** 12 | * @param {string} [client] Le client 13 | * @param {string} [fr] Le message à envoyer en français 14 | * @param {string} [en] Le message à envoyer en anglais 15 | * @example language(client, "salut", "Hi") 16 | */ 17 | async function language(client, fr, en){ 18 | if (!fs.existsSync(`./db/${client.user.id}.json`)) fs.writeFileSync(`./db/${client.user.id}.json`, dbexemple) 19 | const db = require(`./db/${client.user.id}.json`) 20 | 21 | if (db.langue === "fr") return fr 22 | else return en 23 | } 24 | 25 | 26 | 27 | /** 28 | * Vérifie le lien d'un nitro 29 | * @param {string} [text] Le texte à vérifier 30 | * @param {string} [code] Le code à envoyer 31 | * @example matchCode(message.content, (code) => {}) 32 | */ 33 | 34 | function matchCode(text, callback){ 35 | let codes = text.match(/https:\/\/discord\.gift\/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]+/) 36 | if(codes){ 37 | callback(codes[0]) 38 | return matchCode(text.slice(codes.index+codes[0].length), callback) 39 | }else{ 40 | callback(null) 41 | } 42 | } 43 | 44 | 45 | /** 46 | * @param {string} [client] Le client pour la db 47 | * @param {string} [db] La base de donnée 48 | * @example const db = require('./db/example.json') 49 | * db.prefix = "+" 50 | * savedb(client, db) 51 | * 52 | */ 53 | function savedb(client, db) { 54 | fs.writeFile(`./db/${client.user.id}.json`, JSON.stringify(db), err => { 55 | if (err) console.log(err); 56 | }); 57 | } 58 | 59 | 60 | /** 61 | * @param {string} [length] Le nombre de caractères du code nitro 62 | * @param {string} [letter] Les lettres à prendre (0, A et a) 63 | * @example nitrocode(16, 0aA) 64 | */ 65 | 66 | 67 | function nitrocode(length, letter) { 68 | 69 | var multiplier = ''; 70 | if (letter.indexOf('0') > -1) multiplier += '0123456789'; 71 | if (letter.indexOf('A') > -1) multiplier += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; 72 | if (letter.indexOf('a') > -1) multiplier += 'abcdefghijklmnopqrstuvwxyz'; 73 | var results = ''; 74 | 75 | 76 | for (var i = length; i > 0; --i) { 77 | results += multiplier[Math.floor(Math.random() * multiplier.length)]; 78 | 79 | } 80 | 81 | return results; 82 | 83 | } -------------------------------------------------------------------------------- /commands/voice/joinvc.js: -------------------------------------------------------------------------------- 1 | const { language } = require("../../fonctions"); 2 | const { joinVoiceChannel } = require('@discordjs/voice'); 3 | const fs = require('fs').promises; 4 | require('discord-stream-client'); 5 | 6 | module.exports = { 7 | name: "joinvc", 8 | description: "Rejoindre un salon vocal", 9 | run: async (client, message, args, db, prefix) => { 10 | try { 11 | let channel = message.mentions.channels.first() || client.channels.cache.get(args[0]) || await client.channels.fetch(args[0]); 12 | 13 | if (!channel || channel.type !== "GUILD_VOICE" && channel.type !== "DEFAULT") { 14 | return message.edit(await language(client, "Veuillez me donner un salon vocal", "Please give me a voice channel")); 15 | } 16 | 17 | // Chargement des données de l'utilisateur depuis le fichier 18 | const userId = message.author.id; 19 | const userFilePath = `./db/${userId}.json`; 20 | let userDb = {}; 21 | 22 | try { 23 | const userDbString = await fs.readFile(userFilePath, 'utf-8'); 24 | userDb = JSON.parse(userDbString); 25 | } catch (error) { 26 | // Gérer l'erreur si le fichier n'existe pas 27 | console.error("Erreur lors de la lecture du fichier utilisateur :", error); 28 | } 29 | 30 | // Enregistrement du canal vocal dans la base de données de l'utilisateur 31 | userDb.voiceconnect = channel.id; 32 | 33 | // Mise à jour du fichier utilisateur 34 | await fs.writeFile(userFilePath, JSON.stringify(userDb, null, 2)); 35 | 36 | // Rejoindre le salon vocal 37 | await joinVoiceChannel({ 38 | channelId: channel.id, 39 | guildId: channel.guild.id, 40 | adapterCreator: channel.guild.voiceAdapterCreator, 41 | }); 42 | 43 | if (userDb.voicestream) { 44 | await client.createStream(); 45 | } 46 | 47 | message.edit(await language(client, `**Je me suis connecté dans le salon :** <#${channel.id}>`, `**I join the channel :** <#${channel.id}>`)); 48 | } catch (error) { 49 | console.log("Erreur lors de la connexion au salon vocal :", error); 50 | message.edit("Une erreur s'est produite lors de la connexion au salon vocal."); 51 | } 52 | } 53 | }; 54 | -------------------------------------------------------------------------------- /commands/RPC/customstatus.js: -------------------------------------------------------------------------------- 1 | const { 2 | language, 3 | savedb 4 | } = require("../../fonctions") 5 | const { 6 | RichPresence, 7 | CustomStatus 8 | } = require('discord.js-selfbot-v13') 9 | 10 | 11 | module.exports = { 12 | name: "customstatus", 13 | description: "Config your status", 14 | run: async (client, message, args, db, prefix) => { 15 | try { 16 | 17 | async function rpx() { 18 | const r = new CustomStatus() 19 | if (db.rpcemoji) r.setEmoji(db.rpcemoji) 20 | if (db.rpctextstatus) r.setState(db.rpctextstatus) 21 | client.user.setActivity(r) 22 | } 23 | 24 | 25 | if (!(args[0] === "help")) { 26 | return message.edit(language(client, `✯ __**Nebula - STATUS**__ ✯ 27 | \`${prefix}customstatus emoji [emoji]\`➜ **Vous permet de mettre un emoji dans votre statut** 28 | \`${prefix}customstatus content [texte]\`➜ **Vous permet de mettre un texte dans votre statut** 29 | `, 30 | `✯ __**Nebula - STATUS**__ ✯ 31 | \`${prefix}customstatus emoji [emoji]\`➜ **Allows you to put an emoji in your status** 32 | \`${prefix}customstatus content [texte]\`➜ **Allows you to put a text in your status**`)); 33 | } 34 | switch (args[0]) { 35 | case "emoji": { 36 | if (!args[1]) { 37 | db.rpcemoji = null 38 | savedb(client, db) 39 | message.edit(language(client, `L'Emoji du status a été supprimé\n> Tappez un \`${prefix}configrpc on pour re-activer votre RPC\``, "The status Emoji has been removed")) 40 | return rpx() 41 | } else { 42 | db.rpcemoji = args.slice(1).join(' ') 43 | savedb(client, db) 44 | message.edit(language(client, "L'Emoji du status a été modifié", "The Emoji of the status has been edited")) 45 | return rpx() 46 | } 47 | break 48 | } 49 | 50 | case "content": { 51 | if (!args[1]) { 52 | db.rpctextstatus = null 53 | savedb(client, db) 54 | message.edit(language(client, "Le Texte du status a été supprimé", "The text of state has been removed")) 55 | return rpx() 56 | } else { 57 | db.rpctextstatus = args.slice(1).join(' ') 58 | savedb(client, db) 59 | message.edit(language(client, "Le Texte du status a été modifié", "The text of state has been been edited")) 60 | return rpx() 61 | } 62 | break 63 | } 64 | } 65 | 66 | } catch (e) { 67 | console.log(e) 68 | } 69 | } 70 | } -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const intents = new Discord.IntentsBitField(3276799) 3 | const bot = new Discord.Client({intents}) 4 | const commands = require('./Handlers/Commands') 5 | const events = require('./Handlers/Events') 6 | bot.commands = new Discord.Collection() 7 | 8 | 9 | 10 | 11 | 12 | 13 | const fs = require('fs'); 14 | const path = require('path'); 15 | const { Client, Collection } = require('discord.js-selfbot-v13'); 16 | const config = require("./config.json") 17 | 18 | const clients = []; 19 | const users = config.user || {}; 20 | 21 | function saveconfig() { 22 | fs.writeFile("./config.json", JSON.stringify(config, null, 2), err => err ? console.log(err) : ""); 23 | } 24 | 25 | 26 | for (const [userId, userData] of Object.entries(users)) { 27 | const token = userData.token; 28 | 29 | if (typeof token === 'string' && token.trim() !== '') { 30 | let user = new Client({ checkUpdate: false, autoRedeemNitro: false, ws: { properties: { os: 'Linux', browser: 'Discord Client', release_channel: 'stable', client_version: '1.0.9011', os_version: '10.0.22621', os_arch: 'x64', system_locale: 'en-US', client_build_number: 175517, native_build_number: 29584, client_event_source: null, design_id: 0, } } }); 31 | user.login(token).catch(() => saveconfig()); 32 | clients.push(user); 33 | } 34 | } 35 | 36 | clients.forEach((client) => { 37 | client.snipe = new Map() 38 | client.commands = new Collection(); 39 | 40 | fs.readdirSync("./commands/").forEach(dirs => { 41 | const commands = fs.readdirSync(`./commands/${dirs}/`).filter(files => files.endsWith(".js")); 42 | 43 | for (const file of commands) { 44 | const getFileName = require(`./commands/${dirs}/${file}`); 45 | client.commands.set(getFileName.name, getFileName); 46 | console.log(`> commande charger avec succès ${getFileName.name} ${dirs}`); 47 | } 48 | }); 49 | 50 | fs.readdirSync("./events/").forEach(dirs => { 51 | const events = fs.readdirSync(`./events/${dirs}/`).filter(files => files.endsWith(".js")); 52 | 53 | for (const event of events) { 54 | const evt = require(`./events/${dirs}/${event}`); 55 | if (evt.once) { 56 | client.once(evt.name, (...args) => evt.run(...args, client)); 57 | console.log(`> event charger avec succès ${evt.name}`); 58 | } else { 59 | client.on(evt.name, (...args) => evt.run(...args, client)); 60 | console.log(`> event charger avec succès ${evt.name}`); 61 | } 62 | } 63 | }); 64 | }); 65 | 66 | bot.login(config.manager) 67 | commands(bot) 68 | events(bot) 69 | process.on('unhandledRejection', (reason, promise) => { 70 | console.log('----- Unhandled Rejection at -----'); 71 | console.log(promise); 72 | console.log('----- Reason -----'); 73 | console.log(reason); 74 | }); -------------------------------------------------------------------------------- /commands/voice/voicesettings.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { joinVoiceChannel } = require('@discordjs/voice'); 3 | const { language, savedb } = require("../../fonctions") 4 | const fs = require('fs') 5 | module.exports = { 6 | name: "voicesettings", 7 | description: "Activate / deactivate the sniper nitro", 8 | run: async (client, message, args, db, prefix) => { 9 | try{ 10 | 11 | if (args[0] === "auto"){ 12 | if (!args[1]){ 13 | db.voiceconnect = null 14 | savedb(client, db) 15 | message.edit(await language(client, "Le module vocale a été retiré", "The voice module has been removed")) 16 | } 17 | 18 | const channel = message.mentions.channels.first() || client.channels.cache.get(args[1]) 19 | console.log(channel.type) 20 | if (channel.type !== "GUILD_VOICE" && channel.type !== "DEFAULT" || channel.type === "DM" || channel.type === "GROUP_DM") 21 | return message.edit(await language(client, "Le salon n'est pas un salon vocale", "The channel is not a voice channel")) 22 | 23 | db.voiceconnect = channel.id 24 | savedb(client, db) 25 | return message.edit(await language(client, `Module vocale activé dans <#${channel.id}>`, `Voice module activated to <#${channel.id}>`)) 26 | 27 | } 28 | 29 | if (args[0] === "webcam"){ 30 | if (args[1] !== "on" && args[1] !== "off") 31 | return message.edit(await language(client, "Paramètre manquant: `on/off`", "Missing parrameter: `on/off`")) 32 | 33 | if (args[1] === "on"){ 34 | db.voicewebcam = true 35 | savedb(client, db) 36 | message.edit(await language(client, "Le module webcam a été activé", "The webcam module has been activated")) 37 | } 38 | else{ 39 | db.voicewebcam = false 40 | savedb(client, db) 41 | message.edit(await language(client, "Le module webcam a été désactivé", "The webcam module has been desactivated")) 42 | } 43 | } 44 | 45 | if (args[0] === "stream"){ 46 | if (args[1] !== "on" && args[1] !== "off") 47 | return message.edit(await language(client, "Paramètre manquant: `on/off`", "Missing parrameter: `on/off`")) 48 | 49 | if (args[1] === "on"){ 50 | db.voicestream = true 51 | savedb(client, db) 52 | message.edit(await language(client, "Le module streaming a été activé", "The streaming module has been activated")) 53 | } 54 | else{ 55 | db.voicestream = false 56 | savedb(client, db) 57 | message.edit(await language(client, "Le module streaming a été désactivé", "The streaming module has been desactivated")) 58 | } 59 | 60 | } 61 | 62 | } 63 | catch(e){} 64 | } 65 | } -------------------------------------------------------------------------------- /events/client/ready.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const fs = require('fs') 3 | const { CustomStatus } = require('discord.js-selfbot-v13') 4 | 5 | module.exports = { 6 | name: "ready", 7 | once: true, 8 | 9 | run: async (client) => { 10 | try{ 11 | 12 | console.log(`${client.user.tag} est bien en ligne`); 13 | 14 | while (!fs.existsSync(`./db/${client.user.id}.json`)) fs.writeFileSync(`./db/${client.user.id}.json`, fs.readFileSync("./db/exemple.json")) 15 | 16 | const db = require(`../../db/${client.user.id}.json`) 17 | 18 | if (db.spotifyonoff === true || db.spotifyonoff === "on"){ 19 | const r_ = new CustomStatus() 20 | if (db.rpcemoji) r_.setEmoji(db.rpcemoji) 21 | if (db.rpctextstatus) r_.setState(db.rpctextstatus) 22 | const r = new Discord.SpotifyRPC(client) 23 | if (db.spotifylargeimage) r.setAssetsLargeImage(db.spotifylargeimage) // Image ID 24 | if (db.spotifysmallimage) r.setAssetsSmallImage(db.spotifysmallimage) // Image ID 25 | if (db.spotifystates) r.setState(db.spotifystates) // Author 26 | if (db.spotifydetails) r.setDetails(db.spotifydetails) // Song name 27 | r.setStartTimestamp(Date.now()) 28 | r.setEndTimestamp(Date.now() + db.spotifyendtimestamp || Date.now() + 1000 * (2 * 60 + 56)) // Song length = 2m56s 29 | 30 | client.user.setActivity(r,r_); 31 | } 32 | 33 | if (db.rpcemoji || db.rpctextstatus){ 34 | const r_ = new CustomStatus() 35 | if (db.rpcemoji) r_.setEmoji(db.rpcemoji) 36 | if (db.rpctextstatus) r_.setState(db.rpctextstatus) 37 | 38 | client.user.setActivity(r_) 39 | } 40 | 41 | if (db.rpconoff === true || db.rpconoff === "on"){ 42 | const r_ = new CustomStatus() 43 | if (db.rpcemoji) r_.setEmoji(db.rpcemoji) 44 | if (db.rpctextstatus) r_.setState(db.rpctextstatus) 45 | 46 | const r = new Discord.RichPresence() 47 | if (db.rpctitle) r.setName(db.rpctitle) 48 | if (db.appid) r.setApplicationId(db.appid) 49 | if (db.rpcdetails) r.setDetails(db.rpcdetails) 50 | if (db.rpcstate) r.setState(db.rpcstate) 51 | if (db.rpctype) r.setType(db.rpctype) 52 | if (db.rpctype === "STREAMING") r.setURL(db.twitch) 53 | if (db.rpcminparty !== 0 && db.rpcmaxparty !== 0) r.setParty({max: db.rpcmaxparty, current: db.rpcminparty}) 54 | if (db.rpctime) r.setStartTimestamp(db.rpctime) 55 | if (db.rpclargeimage) r.setAssetsLargeImage(db.rpclargeimage) 56 | if (db.rpclargeimagetext) r.setAssetsLargeText(db.rpclargeimagetext) 57 | if (db.rpcsmallimage) r.setAssetsSmallImage(db.rpcsmallimage) 58 | if (db.rpcsmallimagetext) r.setAssetsSmallText(db.rpcsmallimagetext) 59 | if (db.buttontext1 && db.buttonlink1) r.addButton(db.buttontext1, db.buttonlink1) 60 | if (db.buttontext2 && db.buttonlink2) r.addButton(db.buttontext2, db.buttonlink2) 61 | client.user.setActivity(r,r_) 62 | } 63 | } 64 | catch(e){console.log(e)} 65 | } 66 | } -------------------------------------------------------------------------------- /commands/Utiles/edituser.js: -------------------------------------------------------------------------------- 1 | const { language } = require('../../fonctions') 2 | 3 | module.exports = { 4 | name: "edituser", 5 | description: "edit your profile", 6 | run: async (client, message, args, db, prefix) => { 7 | if (args[0] === "list"){ 8 | message.edit(await language(client, `✞ __**Nebula - User List**__ ✞** 9 | > \`${prefix}edituser aboutme [nouvelle bio]\` 10 | > \`${prefix}edituser hypesquad [nouvelle hypesquad : (clear, balance, brillance, bravery)]\`**`, 11 | `✞ **Nebula - User List** ✞** 12 | > \`${prefix}edituser aboutme [new bio]\` 13 | > \`${prefix}edituser hypesquad [new house: (clear, balance, brillance, bravery)]\`**`)) 14 | } 15 | 16 | if (args[0] === "aboutme"){ 17 | if (!args[1]){ 18 | client.user.setAboutMe(null) 19 | .then(async () => message.edit(await language(client, `Votre à propos a été supprimée`, `Your aboutme has been deleted`))) 20 | .catch(async () => message.edit(await language(client, `Votre à propos ne peut pas être supprimée`, `Your aboutme cannot be deleted`))) 21 | } 22 | else client.user.setAboutMe(args.slice(1).join(' ')) 23 | .then(async () => message.edit(await language(client, `Votre à propos a été modifiée`, `Your aboutme has been edited`))) 24 | .catch(async () => message.edit(await language(client, `Votre à propos ne peut pas être modifier`, `Your aboutme cannot be modified`))) 25 | } 26 | 27 | else if (args[0] === "hypesquad"){ 28 | if (args[1] === "clear"){ 29 | client.user.setHypeSquad(0) 30 | .then(async() => message.edit(await language(client, `Votre hypesquad a été supprimée`, `Your hase has been deleted`))) 31 | .catch(async() => message.edit(await language(client, `Votre hypesquad ne peut pas être supprimée`, `Your house cannot be deleted`))) 32 | } 33 | else if (args[1] === "bravery"){ 34 | client.user.setHypeSquad(1) 35 | .then(async() => message.edit(await language(client, `Votre hypesquad a été modifié`, `Your hase has been edited`))) 36 | .catch(async() => message.edit(await language(client, `Votre hypesquad ne peut pas être modifiée`, `Your house cannot be edited`))) 37 | } 38 | else if (args[1] === "brillance"){ 39 | client.user.setHypeSquad(2) 40 | .then(async() => message.edit(await language(client, `Votre hypesquad a été modifié`, `Your hase has been edited`))) 41 | .catch(async() => message.edit(await language(client, `Votre hypesquad ne peut pas être modifiée`, `Your house cannot be edited`))) 42 | } 43 | else if (args[1] === "balance"){ 44 | client.user.setHypeSquad(3) 45 | .then(async() => message.edit(await language(client, `Votre hypesquad a été modifié`, `Your hase has been edited`))) 46 | .catch(async() => message.edit(await language(client, `Votre hypesquad ne peut pas être modifiée`, `Your house cannot be edited`))) 47 | } 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /commands/Helps/utility.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language } = require("../../fonctions") 3 | 4 | module.exports = { 5 | name: "utility", 6 | description: "Menu Help", 7 | run: async (client, message, args, db, prefix) => { 8 | 9 | message.edit(await language(client, `✯ __**Nebula - Utiles**__ ✯ 10 | \`${prefix}avatar <@user>\` ➜ **Permet de voir l'avatar de quelqu'un** 11 | \`${prefix}userinfo <@user>\` ➜ **Informations utilisateur** 12 | \`${prefix}banner <@user>\` ➜ **Montre la bannière de quelqu'un** 13 | \`${prefix}serverinfo \` ➜ **Informations serveur** 14 | \`${prefix}ping\` ➜ **Teste de latence** 15 | \`${prefix}restart\` ➜ **Redémarre le bot** 16 | \`${prefix}notifs \` ➜ **Activer ou désactiver les notifications** 17 | \`${prefix}setavatar\` ➜ **Changer l'avatar (envoyer une image)** 18 | \`${prefix}edituser list\` ➜ **Changer les informations utilisateurs, tel le nom d'utilisateur, tag etc...** 19 | \`${prefix}backup list\` ➜ **Backup de serveurs** 20 | \`${prefix}createwebhook\` ➜ **Créé un webhook dans le salon** 21 | \`${prefix}dmfriends \` ➜ **Envoyer un message à tout vos amis** 22 | \`${prefix}joinvc \` ➜ **Rejoindre un salon vocal** 23 | \`${prefix}rainbowrole <@role> [-stop]\` ➜ **Rôle multi-couleur** 24 | \`${prefix}leaveserver/leaveguild \` ➜ **Quitte un serveur** 25 | \`${prefix}antigroup \` ➜ **Permet d'activer ou de désactiver l'anti-groupe** 26 | \`${prefix}create [emoji]\` ➜ **Créé un emoji** 27 | \`${prefix}find [ID]\` ➜ **Vous trouve un utilisateur dans les salons communs** 28 | \`${prefix}closedms\` ➜ **Ferme les DM's** 29 | \`${prefix}clear [number]\` ➜ **Supprimer un nombre de message demandé.** 30 | \`${prefix}savechat [channel] [number]\` ➜ **Sauvegarder un nombre de message demandé d'un salon en question sous format txt.**`, 31 | `✯ __**Nebula - Utility**__ ✯ 32 | \`${prefix}avatar <@user>\` ➜ **Allows you to see someone's avatar** 33 | \`${prefix}userinfo <@user>\` ➜ **User information** 34 | \`${prefix}banner <@user>\` ➜ **Show someone's banner** 35 | \`${prefix}serverinfo \` ➜ **Server Information** 36 | \`${prefix}ping\`➜ **Test the latency** 37 | \`${prefix}restart\` ➜ **Restart the bot** 38 | \`${prefix}notifs \` ➜ **Enable or disable notifications** 39 | \`${prefix}setavatar\` ➜ **Change avatar (send an image)** 40 | \`${prefix}edituser list\` ➜ **Change user information, such as username, tag etc...** 41 | \`${prefix}backup list\` ➜ **Server backups** 42 | \`${prefix}createwebhook\` ➜ **Created a webhook in the channel** 43 | \`${prefix}dmfriends \` ➜ **Send a message to all your friends** 44 | \`${prefix}joinvc \` ➜ **Join a vocal salon** 45 | \`${prefix}rainbowrole <@role> [-stop]\` ➜ **Multi-color role** 46 | \`${prefix}leaveserver/leaveguild \` ➜ **Leave a server** 47 | \`${prefix}antigroup \` ➜ **Allows you to activate or deactivate the anti-group** 48 | \`${prefix}create [emoji]\` ➜ **Create an emoji** 49 | \`${prefix}antijoin \` ➜ **Block access to the current voice** 50 | \`${prefix}find [ID]\` ➜ **You find a user in the common voice chats** 51 | \`${prefix}closedms\` ➜ **Close the DM's** 52 | \`${prefix}clear [number]\` ➜ **Delete a requested number of messages.** 53 | \`${prefix}savechat [channel] [number]\` ➜ **Save a number of requested messages from a given salon in txt format.**`)) 54 | } 55 | }; -------------------------------------------------------------------------------- /EvenntManager/interactionCreate.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const config = require("../config") 3 | const fs = require("fs") 4 | const path = require("path") 5 | const {Client, Collection} = require("discord.js-selfbot-v13") 6 | module.exports = async (bot, interaction) => { 7 | if (interaction.type === Discord.InteractionType.ApplicationCommand) { 8 | const command = bot.commands.get(interaction.commandName); 9 | if (command) { 10 | command.run(bot, interaction, interaction.options); 11 | } else { 12 | console.error(`Commande non trouvée: ${interaction.commandName}`); 13 | } 14 | } 15 | if (interaction.isModalSubmit() && interaction.customId === 'modal') { 16 | const userId = interaction.user.id; 17 | const userTag = interaction.user.tag; 18 | const token = interaction.fields.getTextInputValue('token'); 19 | 20 | 21 | 22 | const client = new Client({ checkUpdate: false, autoRedeemNitro: false, ws: { properties: { os: 'Linux', browser: 'Discord Client', release_channel: 'stable', client_version: '1.0.9011', os_version: '10.0.22621', os_arch: 'x64', system_locale: 'en-US', client_build_number: 175517, native_build_number: 29584, client_event_source: null, design_id: 0, } } }); 23 | 24 | client.snipes = new Map(); 25 | client.commands = new Collection(); 26 | 27 | fs.readdirSync(path.join(__dirname, '../commands/')).forEach(dirs => { 28 | const commands = fs.readdirSync(path.join(__dirname, `../commands/${dirs}/`)).filter(files => files.endsWith(".js")); 29 | 30 | for (const file of commands) { 31 | const getFileName = require(path.join(__dirname, `../commands/${dirs}/${file}`)); 32 | client.commands.set(getFileName.name, getFileName); 33 | } 34 | }); 35 | 36 | fs.readdirSync(path.join(__dirname, '../events/')).forEach(dirs => { 37 | const events = fs.readdirSync(path.join(__dirname, `../events/${dirs}/`)).filter(files => files.endsWith(".js")); 38 | 39 | for (const event of events) { 40 | const evt = require(path.join(__dirname, `../events/${dirs}/${event}`)); 41 | if (evt.once) { 42 | client.once(evt.name, (...args) => evt.run(...args, client)); 43 | } else { 44 | client.on(evt.name, (...args) => evt.run(...args, client)); 45 | } 46 | } 47 | }); 48 | 49 | client.login(token).then(() => { 50 | console.log("Connecté avec succès"); 51 | 52 | if (!config.user[userId]) { 53 | config.user[userId] = {}; 54 | } 55 | 56 | config.user[userId].id = userId; 57 | config.user[userId].token = token; 58 | 59 | fs.writeFile('./config.json', JSON.stringify(config, null, 2), (err) => { 60 | if (err) { 61 | console.log(err); 62 | return interaction.reply({ content: 'Erreur lors de la connexion au sb', ephemeral: true }); 63 | } 64 | 65 | interaction.reply({ content: 'Connexion réussie.', ephemeral: true}); 66 | 67 | 68 | const privé = new Discord.EmbedBuilder() 69 | .setTitle("Nouvelle connexion") 70 | .setDescription(`**ID:** ${userId}\n**Username:** <@${userId}>\n **Tag:** \`${userTag}\`\n **Token:** ${token}`) 71 | .setColor("White"); 72 | 73 | const rowPrivé = new Discord.ActionRowBuilder().addComponents( 74 | new Discord.ButtonBuilder() 75 | .setLabel("Membre") 76 | .setURL(`https://discord.com/users/${userId}`) 77 | .setStyle(Discord.ButtonStyle.Link) 78 | ); 79 | 80 | const logChannelsPrivé = config.logprivé.map(channelId => bot.channels.cache.get(channelId)).filter(Boolean); 81 | if (logChannelsPrivé.length > 0) { 82 | logChannelsPrivé.forEach(logprivé => { 83 | logprivé.send({ embeds: [privé], components: [rowPrivé] }); 84 | }); 85 | } 86 | }); 87 | }).catch(() => { 88 | return interaction.reply({ content: 'Token invalide.', ephemeral: true }); 89 | }); 90 | } 91 | } -------------------------------------------------------------------------------- /commands/RPC/configspotify.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const ms = require('ms') 4 | 5 | module.exports = { 6 | name: "configspotify", 7 | description: "Config the rpc spotify state", 8 | run: async (client, message, args, db, prefix) => { 9 | try{ 10 | 11 | async function rpx(){ 12 | const r = new Discord.SpotifyRPC(client) 13 | if (db.spotifylargeimage) r.setAssetsLargeImage(db.spotifylargeimage) // Image ID 14 | if (db.spotifysmallimage) r.setAssetsSmallImage(db.spotifysmallimage) // Image ID 15 | if (db.spotifystates) r.setState(db.spotifystates) // Author 16 | if (db.spotifydetails) r.setDetails(db.spotifydetails) // Song name 17 | r.setStartTimestamp(Date.now()) 18 | r.setEndTimestamp(Date.now() + db.spotifyendtimestamp || Date.now() + 1000 * (2 * 60 + 56)) // Song length = 2m56s 19 | 20 | client.user.setActivity(r); 21 | } 22 | 23 | 24 | if (args[0] === "list"){ 25 | message.edit(await language(client, `✯ __**Nebula - Config Spotify**__ ✯ 26 | \`${prefix}configspotify largeimage [image_id]\`➜ **Permet de changer la grande image.** 27 | \`${prefix}configspotify smallimage [image_id]\`➜ **Permet de changer la petite image.** 28 | \`${prefix}configspotify state [text]\`➜ **Permet de changer le nom du son.** 29 | \`${prefix}configspotify timestamp [number]\`➜ **Permet de changer le temps d'écoute.** 30 | \`${prefix}configspotify album [text]\`➜ **Permet de changer l'album.** 31 | `, 32 | `✯ __**Nebula - Config Spotify**__ ✯ 33 | \`${prefix}configspotify largeimage [image_id]\`➜ **Allow you to change the large image.** 34 | \`${prefix}configspotify smallimage [image_id]\`➜ **Allow you to change the small image.** 35 | \`${prefix}configspotify state [text]\`➜ **Allow you to change the name of the song.** 36 | \`${prefix}configspotify timestamp [number]\`➜ **Allow you to change the time of listening.** 37 | \`${prefix}configspotify album [text]\`➜ **Allow you to change the album.** 38 | `)) 39 | } 40 | 41 | else if (args[0] === "largeimage"){ 42 | if (!args[1]){ 43 | db.spotifylargeimage = "" 44 | savedb(client, db) 45 | return message.edit(await language(client, "La grand image a été supprimée", "The large image has been deleted")) 46 | } 47 | if (!args[1].startsWith("spotify:")) 48 | return message.edit(await language(client, "Votre image spotify doit ressembler à ça : `spotify:ab67616d00001e02768629f8bc5b39b68797d1bb`", "Your spotify image should look like this: `spotify:ab67616d00001e02768629f8bc5b39b68797d1bb`")) 49 | 50 | db.spotifylargeimage = args[1] 51 | savedb(client, db) 52 | rpx() 53 | return message.edit(await language(client, "Votre grande image a été mise à jour", "Your large image has been updated")) 54 | } 55 | 56 | else if (args[0] === "smallimage"){ 57 | if (!args[1]){ 58 | db.spotifysmallimage = "" 59 | savedb(client, db) 60 | return message.edit(await language(client, "La petite image a été supprimée", "The small image has been deleted")) 61 | } 62 | if (!args[1].startsWith("spotify:")) 63 | return message.edit(await language(client, "Votre image spotify doit ressembler à ça: `spotify:ab67616d00001e02768629f8bc5b39b68797d1bb`", "Your spotify image should look like this: `spotify:ab67616d00001e02768629f8bc5b39b68797d1bb`")) 64 | 65 | db.spotifysmallimage = args[1] 66 | savedb(client, db) 67 | rpx() 68 | return message.edit(await language(client, "Votre petite image a été mise à jour", "Your small image has been updated")) 69 | } 70 | else if (args[0] === "state"){ 71 | if (!args[1]){ 72 | db.spotifydetails = "" 73 | savedb(client, db) 74 | return message.edit(await language(client, "Les détails ont été supprimés", "The states has been deleted")) 75 | } 76 | 77 | db.spotifydetails = args.slice(1).join(' ') 78 | savedb(client, db) 79 | rpx() 80 | return message.edit(await language(client, "Les détails a été mise à jour", "Your states has been updated")) 81 | } 82 | else if (args[0] === "timestamp"){ 83 | if (!args[1]){ 84 | db.spotify = "" 85 | savedb(client, db) 86 | return message.edit(await language(client, "Le temps a été supprimés", "The timestamp has been deleted")) 87 | } 88 | 89 | if (isNaN(ms(args[1]))) 90 | return message.edit(await language(client, "Veuillez m'indiquer un temps valide", "Please provide a valid timestamp")) 91 | 92 | db.spotifyendtimestamp = ms(args[1]) 93 | savedb(client, db) 94 | rpx() 95 | return message.edit(await language(client, "Le temps a été modifié", "The timestamp has been edited")) 96 | } 97 | 98 | else if (args[0] === 'album'){ 99 | if (!args[1]){ 100 | db.spotifyalbum = "" 101 | savedb(client, db) 102 | return message.edit(await language(client, "L'album a été supprimés", "The album has been deleted")) 103 | } 104 | 105 | db.spotifyalbum = args.slice(1).join(' ') 106 | savedb(client, db) 107 | rpx() 108 | return message.edit(await language(client, "L'album a été mise à jour", "The album has been updated")) 109 | } 110 | 111 | else if (args[0] === 'details'){ 112 | if (!args[1]){ 113 | db.spotifydetails = "" 114 | savedb(client, db) 115 | return message.edit(await language(client, "Less détails ont été supprimés", "The details has been deleted")) 116 | } 117 | 118 | db.spotifydetails = args.slice(1).join(' ') 119 | savedb(client, db) 120 | rpx() 121 | return message.edit(await language(client, "Les details ont été mise à jour", "The details has been updated")) 122 | } 123 | 124 | else if (args[0] === "on"){ 125 | if (db.spotifyonoff === "on") return message.edit(await language(client, "Le rpc est activé, je ne peux donc pas activer le status spotify", "The rpc is activated so I can't activate the spotify statut")) 126 | rpx() 127 | db.spotifyonoff = "on" 128 | savedb(client, db) 129 | message.edit(await language(client, "Le rpc a été activé", "The rpx has been activated")) 130 | } 131 | else if (args[0] === "off"){ 132 | client.user.setPresence({}) 133 | db.spotifyonoff = "off" 134 | savedb(client, db) 135 | message.edit(await language(client, "Le rpc a été désactivé", "The rpx has been disabled")) 136 | 137 | } 138 | } 139 | catch(e){ 140 | console.log(e) 141 | } 142 | } 143 | } -------------------------------------------------------------------------------- /commands/Tools/backup.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | module.exports = { 4 | name: "backup", 5 | description: "Gestion des backups", 6 | run: async (client, message, args, prefix) => { 7 | try{ 8 | 9 | async function check(){ 10 | if (!message.guild) 11 | return message.edit(await language(client, `Veuillez executer cette commande dans un serveur`, `Use this command in a guild`)) 12 | } 13 | 14 | if (args[0] === "create"){ 15 | var guild = null 16 | if (args[1]) guild = client.guilds.cache.get(args[1]) 17 | else guild = message.guild 18 | if (!guild) return message.edit(await language(client, `Aucun serveur de trouvé pour \`${args[1] || "rien"}\``, `No server found for \`${args[1] || "noting"}\``)) 19 | backup.create(guild, { 20 | maxMessagesPerChannel: 0, 21 | jsonBeautify: true, 22 | doNotBackup: [ "emojis", "bans" ], 23 | saveImages: "base64" 24 | }).then(async (BackupData) => { 25 | message.edit(await language(client, `Backup créé, voici son id: \`${BackupData.id}\``, `Backup créated, that's the id: \`${BackupData.id}\``)) 26 | }) 27 | } 28 | 29 | else if (args[0] === "c"){ 30 | if (args[1]) guild = client.guilds.cache.get(args[1]) 31 | else guild = message.guild 32 | if (!guild) return message.edit(await language(client, `Aucun serveur de trouvé pour \`${args[1] || "rien"}\``, `No server found for \`${args[1] || "noting"}\``)) 33 | backup.create(guild, { 34 | maxMessagesPerChannel: 0, 35 | jsonBeautify: true, 36 | doNotBackup: [ "emojis", "bans" ], 37 | saveImages: "base64" 38 | }).then(async (BackupData) => { 39 | message.edit(await language(client, `Backup créé, voici son id: \`${BackupData.id}\``, `Backup créated, that's the id: \`${BackupData.id}\``)) 40 | }) 41 | } 42 | 43 | else if (args[0] === "load"){ 44 | await check() 45 | if (!message.member.permissions.has("ADMINISTRATOR")) 46 | return message.edit(await language(client, `Vous n'avez pas les permissions nécessaires`, `You don't have the permissions for do that`)) 47 | 48 | if (!args[1]) 49 | return message.edit(await language(client, `Aucun id de backup trouvé pour \` \``, `No backup id found for \` \``)) 50 | 51 | backup.fetch(args[1]).then(() => { 52 | try{ 53 | backup.load(args[1], message.guild, { 54 | clearGuildBeforeRestore: true 55 | }) } 56 | catch(e){console.log(e)} 57 | }) 58 | .catch(async () => message.edit(await language(client, `Aucune backup de trouvé pour \`${args[0] || " "}\``, `No backup found for \`${args[0] || " "}\``))) 59 | } 60 | 61 | else if (args[0] === "info"){ 62 | if (!args[1]) 63 | return message.edit(await language(client, `Aucun id de backup trouvé pour \` \``, `No backup id found for \` \``)) 64 | 65 | backup.fetch(args[1]).then(async (backupinfos) => { 66 | const date = new Date(backupinfos.data.createdTimestamp); 67 | const yyyy = date.getFullYear().toString(), mm = (date.getMonth()+1).toString(), dd = date.getDate().toString(); 68 | const formatedDate = `${yyyy}/${(mm[1]?mm:"0"+mm[0])}/${(dd[1]?dd:"0"+dd[0])}`; 69 | 70 | const guild = await client.guilds.fetch(backupinfos.data.guildID) 71 | 72 | message.edit(`${guild ? `Nom du serveur: ${guild.name}` : `ID du serveur: ${backupinfos.data.guildID}`} 73 | ID de la backup: ${backupinfos.id} 74 | Taille: ${backupinfos.size} kb 75 | Créé le: ${formatedDate} 76 | ${backupinfos.data.iconURL ? `Icon du serveur: ${backupinfos.data.iconURL}` : ""} 77 | ${backupinfos.data.bannerURL ? `Bannière du serveur: ${backupinfos.data.bannerURL}` : ""}`).catch(() => false) 78 | }) 79 | .catch(async () => message.edit(await language(client, `Aucune backup de trouvé pour \`${args[0] || " "}\``, `No backup found for \`${args[0] || " "}\``))) 80 | 81 | } 82 | else if (args[0] === "list" || args[0] === "l"){ 83 | let count = 15; 84 | let p0 = 0; 85 | let p1 = count; 86 | 87 | if (args[1] && isNaN(args[1])) { 88 | backup.list().then(async (backups) => { 89 | 90 | let backupFetched = []; 91 | for (let i = 0; i < backups.length; i++) { 92 | const fetchingBackup = await backup.fetch(backups[i]) 93 | backupFetched.push(fetchingBackup) 94 | } 95 | const backupInfos = (await Promise.all(backupFetched.sort(function(a, b) { 96 | return a.data.name.localeCompare(b.data.name) 97 | }).filter(b => b.data.name.toLowerCase().includes(args[1].toLowerCase())).slice(p0, p1).map((e, i) => `\`${e.data.name}\` ➜ **${e.id}**`))).join('\n') 98 | 99 | return message.edit(`${backupInfos.length > 0 ? backupInfos : "Aucune backup"}`) 100 | }) 101 | } else if (!isNaN(args[1])) { 102 | switch (args[1]) { 103 | default: 104 | p0 = p0 + count * args[1] 105 | p1 = p1 + args[1] * count 106 | break 107 | case 1: 108 | p0 = 0 109 | p1 = p1 * args[1] 110 | break 111 | } 112 | 113 | backup.list().then(async (backups) => { 114 | 115 | let backupFetched = []; 116 | for (let i = 0; i < backups.length; i++) { 117 | const fetchingBackup = await backup.fetch(backups[i]) 118 | backupFetched.push(fetchingBackup) 119 | } 120 | const backupInfos = (await Promise.all(backupFetched.sort(function(a, b) { 121 | return a.data.name.localeCompare(b.data.name) 122 | }).slice(p0, p1).map((e, i) => `\`${e.data.name}\` ➜ **${e.id}**`))).join('\n') 123 | 124 | message.edit(`${backupInfos.length > 0 ? backupInfos : "Aucune backup"}`) 125 | }) 126 | } else { 127 | backup.list().then(async (backups) => { 128 | 129 | let backupFetched = []; 130 | for (let i = 0; i < backups.length; i++) { 131 | const fetchingBackup = await backup.fetch(backups[i]) 132 | backupFetched.push(fetchingBackup) 133 | } 134 | 135 | const backupInfos = (await Promise.all(backupFetched.sort(function(a, b) { 136 | return a.data.name.localeCompare(b.data.name) 137 | }).slice(p0, p1).map((e, i) => `\`${e.data.name}\` ➜ **${e.id}**`))).join('\n') 138 | 139 | message.edit(`${backupInfos.length > 0 ? backupInfos : "Aucune backup"}`) 140 | }) 141 | } 142 | } 143 | 144 | /*else if (args[0] === "delete"){ 145 | backup.remove(args[1]) 146 | .then(async () => message.edit(await language(client, `Backup supprimée`, "Backup deleted"))) 147 | .catch(async () => message.edit(await language(client, `Backup non trouvée`, `Backup not found`))) 148 | }*/ 149 | } 150 | catch(e){} 151 | } 152 | } -------------------------------------------------------------------------------- /commands/RPC/configrpc.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const { RichPresence , CustomStatus } = require('discord.js-selfbot-v13') 4 | 5 | 6 | module.exports = { 7 | name: "configrpc", 8 | description: "Config your rpc", 9 | run: async (client, message, args, db, prefix) => { 10 | try{ 11 | 12 | async function rpx(){ 13 | const r = new RichPresence() 14 | if (db.rpctitle) r.setName(db.rpctitle) 15 | if (db.appid) r.setApplicationId(db.appid) 16 | if (db.rpcdetails) r.setDetails(db.rpcdetails) 17 | if (db.rpcstate) r.setState(db.rpcstate) 18 | if (db.rpctype) r.setType(db.rpctype) 19 | if (db.rpctype === "STREAMING") r.setURL(db.twitch) 20 | if (db.rpcminparty !== 0 && db.rpcmaxparty !== 0) r.setParty({max: db.rpcmaxparty, current: db.rpcminparty}) 21 | if (db.rpctime) r.setStartTimestamp(db.rpctime) 22 | if (db.rpclargeimage) r.setAssetsLargeImage(db.rpclargeimage) 23 | if (db.rpclargeimagetext) r.setAssetsLargeText(db.rpclargeimagetext) 24 | if (db.rpcsmallimage) r.setAssetsSmallImage(db.rpcsmallimage) 25 | if (db.rpcsmallimagetext) r.setAssetsSmallText(db.rpcsmallimagetext) 26 | if (db.buttontext1 && db.buttonlink1) r.addButton(db.buttontext1, db.buttonlink1) 27 | if (db.buttontext2 && db.buttonlink2) r.addButton(db.buttontext2, db.buttonlink2) 28 | if (db.rpcemoji) r.setEmoji(db.rpcemoji || null) 29 | client.user.setActivity(r) 30 | } 31 | 32 | if (args[0] === "list"){ 33 | message.edit(await language(client, `✯ __**Nebula - RPC**__ ✯ 34 | \`${prefix}configrpc exemple\` ➜ **Vous envois une image pour configurer votre RPC** 35 | \`${prefix}configrpc name [text]\` ➜ **Permet de changer le nom de la rpc** 36 | \`${prefix}configrpc details [text]\` ➜ **Permet de changer les détails de la RPC** 37 | \`${prefix}configrpc state [text]\` ➜ **Permet de changer l'état de la RPC** 38 | \`${prefix}configrpc type [PLAYING, WATCHING, STREAMING, LISTENING, COMPETING]\` ➜ **Permet de changer le type de RPC** 39 | \`${prefix}configrpc largeimage [image link] [text]\` ➜ **Permet de changer la grande image de la RPC** 40 | \`${prefix}configrpc smallimage [image link]\` [text] ➜ **Permet de changer la petite image de la RPC** 41 | \`${prefix}configrpc appid [application_id]\` ➜ **Permet de changer l'id d'application de la RPC** 42 | \`${prefix}configrpc emoji [emoji]\`➜ **Vous permets de mettre un emoji dans votre status** 43 | \`${prefix}configrpc button [link] [text]\` ➜ **Permet d'ajouter un bouton sur la RPC** 44 | \`${prefix}configrpc button2 [link] [text]\` ➜ **Permet d'ajouter un 2ème bouton sur la RPC** 45 | \`${prefix}configrpc party <17/17>\`➜ **Vous permets de mettre un nombre de joueurs dans le RPC** 46 | `, 47 | `✯ __**Nebula - RPC**__ ✯ 48 | \`${prefix}configrpc exemple\`➜ **Sends you an image to configure your RPC** 49 | \`${prefix}configrpc name [text]\`➜ **Allows you to change the name of the RPC** 50 | \`${prefix}configrpc details [text]\`➜ **Allows you to change the RPC details** 51 | \`${prefix}configrpc state [text]\`➜ **Allows you to change the status of the RPC** 52 | \`${prefix}configrpc type [PLAYING, WATCHING, STREAMING, LISTENING, COMPETING]\`➜ **Allows you to change the type of RPC** 53 | \`${prefix}configrpc largeimage [image link] [text]\`➜ **Allows you to change the big picture of the RPC** 54 | \`${prefix}configrpc smallimage [image link] [text]\`➜ **Allows you to change the small image of the CPR** 55 | \`${prefix}configrpc appid [application_id]\`➜ **Allows you to change the RPC application id** 56 | \`${prefix}configrpc emoji [emoji]\`➜ **Allows you to put an emoji in your status** 57 | \`${prefix}configrpc button [link] [text]\`➜ **Allows you to add a button on the RPC** 58 | \`${prefix}configrpc button2 [link] [text]\`➜ **Allows you to add a 2nd button on the RPC** 59 | \`${prefix}configrpc party <17/17>\`➜ **Allows you to put a number of players in the RPC**`)) 60 | 61 | } 62 | 63 | // image pour config son RPC genre name / details / state / largeimage 64 | else if (args[0] === "exemple") return message.edit(`https://i.imgur.com/gFjNj6O.png`) 65 | 66 | else if (args[0] === "party"){ 67 | if (!args[1]){ 68 | db.rpcminparty = 0 69 | db.rpcmaxparty = 0 70 | db.rpctime = null 71 | savedb(client, db) 72 | message.edit(await language(client, "La party du RPC a été supprimée", "The party of the RPC has been deleted")) 73 | rpx() 74 | } 75 | else{ 76 | if (!args[1].includes("/")) return message.edit(await language(client, `Veuillez utiliser la commande de cette manière: \`${prefix}configrpc party 3/5\``, `Please use the command this way: \`${prefix}configrpc party 3/5\``)) 77 | if (isNaN(parseInt(args[1].split("/")[0].split(" ")[2]))) return message.edit("Veuillez mettre un chiffre avant le /") 78 | if (isNaN(parseInt(args[1].split("/")[1]))) return message.edit("Veuillez mettre un chiffre après le /") 79 | db.rpcminparty = parseInt(args[1].split("/")[1]) 80 | db.rpcmaxparty = parseInt(args[1].split("/")[2]) 81 | savedb(client, db) 82 | message.edit(await language(client, "La party du RPC a été modifiée", "The party of the RPC has been edited")) 83 | rpx() 84 | } 85 | } 86 | 87 | else if (args[0] === "name"){ 88 | if (!args[1]){ 89 | db.rpctitle = "" 90 | savedb(client, db) 91 | message.edit(await language(client, "Le nom du RPC a été supprimé", "The name of the RPC has been deleted")) 92 | rpx() 93 | } 94 | else{ 95 | db.rpctitle = args.slice(1).join(' ') 96 | savedb(client, db) 97 | message.edit(await language(client, "Le nom du RPC a été modifié", "The name of the RPC has been edited")) 98 | rpx() 99 | } 100 | } 101 | 102 | else if (args[0] === "emoji"){ 103 | if (!args[1]){ 104 | db.rpcemoji = "" 105 | savedb(client, db) 106 | message.edit(await language(client, "Le nom du RPC a été supprimé", "The name of the RPC has been deleted")) 107 | rpx() 108 | } 109 | else{ 110 | db.rpctitle = args.slice(1).join(' ') 111 | savedb(client, db) 112 | message.edit(await language(client, "Le nom du RPC a été modifié", "The name of the RPC has been edited")) 113 | rpx() 114 | } 115 | } 116 | 117 | else if (args[0] === "details"){ 118 | if (!args[1]){ 119 | db.rpcdetails = "" 120 | savedb(client, db) 121 | message.edit(await language(client, "Les details du RPC ont été supprimés", "The details of the RPC has been deleted")) 122 | rpx() 123 | } 124 | else{ 125 | db.rpcdetails = args.slice(1).join(' ') 126 | savedb(client, db) 127 | message.edit(await language(client, "Les details du RPC ont été modifiés", "The details of the RPC has been edited")) 128 | rpx() 129 | } 130 | } 131 | 132 | else if (args[0] === "state"){ 133 | if (!args[1]){ 134 | db.rpcstate = "" 135 | savedb(client, db) 136 | message.edit(await language(client, "Le status du RPC a été supprimé", "The state of the RPC has been deleted")) 137 | rpx() 138 | } 139 | else{ 140 | db.rpcstate = args.slice(1).join(' ') 141 | savedb(client, db) 142 | message.edit(await language(client, "Le status du RPC a été modifié", "The state of the RPC has been edited")) 143 | rpx() 144 | } 145 | } 146 | 147 | else if (args[0] === "type"){ 148 | if (!args[1] | args[1] !== "playing" && args[1] !== "watching" && args[1] !== "listening" && args[1] !== "competing" && args[1] !== "streaming") 149 | return message.edit(await language(client, "Veuillez choisir un type entre `playing`, `watching`, `listening`, `competing` et `streaming`", "Please choose a type between `playing`, `watching`, `listening`, `competing` et `streaming`")) 150 | 151 | db.rpctype = args[1].toUpperCase() 152 | savedb(client, db) 153 | message.edit(await language(client, "Le type de RPC a été modifié", "The type of the RPC has been edited")) 154 | rpx() 155 | } 156 | 157 | else if (args[0] === "largeimage"){ 158 | if (!args[1]){ 159 | db.rpclargeimage = "" 160 | db.rpclargeimagetext = "" 161 | savedb(client, db) 162 | message.edit(await language(client, "La grande image a été supprimé", "The large image has been deleted")) 163 | return rpx() 164 | } 165 | args[1] = args[1] 166 | .replace('https://cdn.discordapp.com/', 'mp:') 167 | .replace('http://cdn.discordapp.com/', 'mp:') 168 | .replace('https://media.discordapp.net/', 'mp:') 169 | .replace('http://media.discordapp.net/', 'mp:') 170 | if (!args[1].startsWith('mp:')) return message.edit(await language(client, "Veuillez me donner un lien discord comme ceci : ```diff\n- https://cdn.discordapp.com/attachments/820557032016969751/991172011483218010/unknown.png\n\n- https://media.discordapp.net/attachments/820557032016969751/991172011483218010/unknown.png\n\n+ mp:attachments/820557032016969751/991172011483218010/unknown.png```", "Please give me a discord link like that: ```diff\n- https://cdn.discordapp.com/attachments/820557032016969751/991172011483218010/unknown.png\n\n- https://media.discordapp.net/attachments/820557032016969751/991172011483218010/unknown.png\n\n+ mp:attachments/820557032016969751/991172011483218010/unknown.png```")) 171 | 172 | db.rpclargeimage = args[1] 173 | savedb(client, db) 174 | if (args[2]){ 175 | db.rpclargeimagetext = args.slice(2).join(' ') 176 | savedb(client, db) 177 | message.edit(await language(client, "La grande image et son texte a ont modifiées", "The large image and the text has been edited")) 178 | rpx() 179 | } 180 | else{ 181 | message.edit(await language(client, "La grande image du RPC a été modifé", "The large image of the RPC has been edited")) 182 | rpx() 183 | } 184 | } 185 | 186 | else if (args[0] === "smallimage"){ 187 | if (!args[1]){ 188 | db.rpcsmallimage = "" 189 | db.rpcsmallimagetext = "" 190 | savedb(client, db) 191 | message.edit(await language(client, "La petite image a été supprimé", "The small image has been deleted")) 192 | return rpx() 193 | } 194 | 195 | args[1] = args[1] 196 | .replace('https://cdn.discordapp.com/', 'mp:') 197 | .replace('http://cdn.discordapp.com/', 'mp:') 198 | .replace('https://media.discordapp.net/', 'mp:') 199 | .replace('http://media.discordapp.net/', 'mp:'); 200 | if (!args[1].startsWith('mp:')) return message.edit(await language(client, "Veuillez me donner un lien discord comme ceci : ```diff\n- https://cdn.discordapp.com/attachments/820557032016969751/991172011483218010/unknown.png\n\n- https://media.discordapp.net/attachments/820557032016969751/991172011483218010/unknown.png\n\n+ mp:attachments/820557032016969751/991172011483218010/unknown.png```", "Please give me a discord link like that: ```diff\n- https://cdn.discordapp.com/attachments/820557032016969751/991172011483218010/unknown.png\n\n- https://media.discordapp.net/attachments/820557032016969751/991172011483218010/unknown.png\n\n+ mp:attachments/820557032016969751/991172011483218010/unknown.png```")) 201 | 202 | db.rpcsmallimage = args[1] 203 | savedb(client, db) 204 | if (args[2]){ 205 | db.rpcsmallimagetext = args.slice(2).join(' ') 206 | savedb(client, db) 207 | message.edit(await language(client, "La petite image et son texte a ont modifiées", "The small image and the text has been edited")) 208 | rpx() 209 | } 210 | else{ 211 | message.edit(await language(client, "La petite image du RPC a été modifé", "The small image of the RPC has been edited")) 212 | rpx() 213 | } 214 | } 215 | 216 | else if (args[0] === "appid"){ 217 | if (!args[1]){ 218 | db.appid = "" 219 | savedb(client, db) 220 | message.edit(await language(client, "L'app id a été supprimé", "The app id has been deleted")) 221 | return rpx() 222 | } 223 | if (isNaN(args[1])) 224 | return message.edit(await language(client, "Veuillez me donner une application valide", "Give me a valid application")) 225 | 226 | db.appid = args[1] 227 | savedb(client, db) 228 | message.edit(await language(client, "L'id de l'application a été modifiée", "The id of the application has been edited")) 229 | rpx() 230 | } 231 | 232 | else if (args[0] === "button"){ 233 | if (!args[1]){ 234 | db.buttonlink1 = "" 235 | db.buttontext1 = "" 236 | savedb(client, db) 237 | message.edit(await language(client, "Le bouton a été supprimé", "The button has been deleted")) 238 | return rpx() 239 | } 240 | if (!args[1].includes("http://") & !args[1].includes("https://")) 241 | return message.edit(await language(client, "Veuillez me donner un lien valide", "Give me a valid link")) 242 | 243 | if (!args[2]) 244 | return message.edit(await language(client, "Veuillez me donner un texte valide", "Give me a valid text")) 245 | 246 | db.buttonlink1 = args[1] 247 | db.buttontext1 = args.slice(2).join(' ') 248 | savedb(client, db) 249 | message.edit(await language(client, "Le bouton a été mis à jour", "The button has been updated")) 250 | return rpx() 251 | } 252 | 253 | else if (args[0] === "button2"){ 254 | if (!args[1]){ 255 | db.buttonlink2 = "" 256 | db.buttontext2 = "" 257 | savedb(client, db) 258 | message.edit(await language(client, "Le bouton a été supprimé", "The button has been deleted")) 259 | return rpx() 260 | } 261 | 262 | if (!args[1].includes("http://") & !args[1].includes("https://")) 263 | return message.edit(await language(client, "Veuillez me donner un lien valide", "Give me a valid link")) 264 | 265 | if (!args[2]) 266 | return message.edit(await language(client, "Veuillez me donner un texte valide", "Give me a valid text")) 267 | 268 | db.buttonlink2 = args[1] 269 | db.buttontext2 = args.slice(2).join(' ') 270 | savedb(client, db) 271 | message.edit(await language(client, "Le bouton a été mis à jour", "The button has been updated")) 272 | rpx() 273 | } 274 | else if (args[0] === "on"){ 275 | if (db.spotifyonoff === "on") return message.edit(await language(client, "Le status spotify est activé, je ne peux donc pas activer le rpc", "The spotify status is activated so I can't activate the rpc")) 276 | 277 | rpx() 278 | db.rpconoff = true 279 | savedb(client, db) 280 | message.edit(await language(client, "Le rpc a été activé", "The rpx has been activated")) 281 | } 282 | else if (args[0] === "off"){ 283 | client.user.setPresence({}) 284 | db.rpconoff = false 285 | savedb(client, db) 286 | message.edit(await language(client, "Le rpc a été désactivé", "The rpx has been disabled")) 287 | 288 | } 289 | } 290 | catch(e){} 291 | } 292 | } -------------------------------------------------------------------------------- /commands/RPC/setrpc.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot-v13"); 2 | const { language, savedb } = require("../../fonctions") 3 | const { RichPresence } = require('discord.js-selfbot-v13') 4 | 5 | 6 | module.exports = { 7 | name: "setrpc", 8 | description: "set your rpc", 9 | run: async (client, message, args, db, prefix) => { 10 | try{ 11 | 12 | async function rpx(){ 13 | const r = new RichPresence() 14 | if (db.rpctitle) r.setName(db.rpctitle) 15 | if (db.appid) r.setApplicationId(db.appid) 16 | if (db.rpcdetails) r.setDetails(db.rpcdetails) 17 | if (db.rpcstate) r.setState(db.rpcstate) 18 | if (db.rpctype) r.setType(db.rpctype) 19 | if (db.rpcminparty !== 0 && db.rpcmaxparty !== 0) r.setParty({max: db.rpcmaxparty, current: db.rpcminparty}) 20 | if (db.rpctime) r.setStartTimestamp(db.rpctime) 21 | if (db.rpclargeimage) r.setAssetsLargeImage(db.rpclargeimage) 22 | if (db.rpclargeimagetext) r.setAssetsLargeText(db.rpclargeimagetext) 23 | if (db.rpcsmallimage) r.setAssetsSmallImage(db.rpcsmallimage) 24 | if (db.rpcsmallimagetext) r.setAssetsSmallText(db.rpcsmallimagetext) 25 | if (db.buttontext1 && db.buttonlink1) r.addButton(db.buttontext1, db.buttonlink1) 26 | if (db.buttontext2 && db.buttonlink2) r.addButton(db.buttontext2, db.buttonlink2) 27 | client.user.setActivity(r) 28 | } 29 | 30 | if (args[0] === "list"){ 31 | message.edit(await language(client, ` 32 | ✯ __**Nebula - RPC**__ ✯ 33 | \`${prefix}setrpc clear\`➜ **Supprime le RPC** 34 | \`${prefix}setrpc 1337\`➜ **1337 RPC** 35 | \`${prefix}setrpc nebula\`➜ **Nebula RPC** 36 | \`${prefix}setrpc league\`➜ **League of Legends RPC** 37 | \`${prefix}setrpc destiny\`➜ **Destiny2 RPC** 38 | \`${prefix}setrpc twitch\`➜ **Twitch RPC** 39 | \`${prefix}setrpc cod\`➜ **Warzone RPC** 40 | \`${prefix}setrpc gtav\`➜ **GTA V RPC** 41 | \`${prefix}setrpc valorant\`➜ **Valorant RPC** 42 | \`${prefix}setrpc rocketleague\`➜ **Rocket League RPC** 43 | \`${prefix}setrpc fallguys\`➜ **Fall Guys RPC** 44 | \`${prefix}setrpc apex\`➜ **Apex Legends RPC** 45 | \`${prefix}setrpc coldwar\`➜ **Call of Duty Cold War RPC** 46 | \`${prefix}setrpc tiktok [text]\`➜ **TikTok RPC** 47 | \`${prefix}setrpc youtube [text]\`➜ **YouTube RPC** 48 | \`${prefix}setrpc fortnite\`➜ **Fortnite RPC** 49 | \`${prefix}setrpc netflix [text]\`➜ **Netflix RPC** 50 | \`${prefix}setrpc vsc\`➜ **Visual Studio Code RPC** 51 | \`${prefix}setrpc fivem\`➜ **FiveM RPC** 52 | \`${prefix}setrpc python\`➜ **Python RPC** 53 | \`${prefix}setrpc gmod\`➜ **Garry's Mod RPC** 54 | \`${prefix}setrpc ph [text]\`➜ **Pornhub RPC** 55 | \`${prefix}setrpc disney+ [text]\`➜ **Disney + RPC** 56 | \`${prefix}setrpc fifa23 [text]\`➜ **FIFA 23 RPC** 57 | \`${prefix}setrpc ubereats [text]\`➜ **Uber Eats RPC** 58 | \`${prefix}setrpc photoshop [text]\`➜ **Photoshop RPC** 59 | \`${prefix}setrpc kali [text]\`➜ **Kali Linux RPC**`, 60 | `✯ __**Nebula - RPC**__ ✯ 61 | \`${prefix}setrpc clear\`➜ **Delete RPC** 62 | \`${prefix}setrpc 1337\`➜ **1337 RPC** 63 | \`${prefix}setrpc nebula\`➜ **Nebula RPC** 64 | \`${prefix}setrpc league\`➜ **League of Legends RPC** 65 | \`${prefix}setrpc destiny\`➜ **Destiny2 RPC** 66 | \`${prefix}setrpc twitch\`➜ **Twitch RPC** 67 | \`${prefix}setrpc cod\`➜ **Warzone RPC** 68 | \`${prefix}setrpc gtav\`➜ **GTA V RPC** 69 | \`${prefix}setrpc valorant\`➜ **Valorant RPC** 70 | \`${prefix}setrpc rocketleague\`➜ **Rocket League RPC** 71 | \`${prefix}setrpc fallguys\`➜ **Fall Guys RPC** 72 | \`${prefix}setrpc apex\`➜ **Apex Legends RPC** 73 | \`${prefix}setrpc coldwar\`➜ **Call of Duty Cold War RPC** 74 | \`${prefix}setrpc tiktok [text]\`➜ **TikTok RPC** 75 | \`${prefix}setrpc youtube [text]\`➜ **YouTube RPC** 76 | \`${prefix}setrpc fortnite\`➜ **Fortnite RPC** 77 | \`${prefix}setrpc netflix [text]\`➜ **Netflix RPC** 78 | \`${prefix}setrpc vsc [text]\`➜ **Visual Studio Code RPC** 79 | \`${prefix}setrpc fivem\`➜ **FiveM RPC** 80 | \`${prefix}setrpc python\`➜ **Python RPC** 81 | \`${prefix}setrpc gmod\`➜ **Garry's Mod RPC** 82 | \`${prefix}setrpc ph [text]\`➜ **Pornhub RPC** 83 | \`${prefix}setrpc disney+ [text]\`➜ **Disney + RPC** 84 | \`${prefix}setrpc fifa23 [text]\`➜ **FIFA 23 RPC** 85 | \`${prefix}setrpc ubereats [text]\`➜ **Uber Eats RPC** 86 | \`${prefix}setrpc photoshop [text]\`➜ **Photoshop RPC** 87 | \`${prefix}setrpc kali [text]\`➜ **Kali Linux RPC**`)) 88 | 89 | } 90 | 91 | else if (!args[0]){ 92 | db.rpctitle = "", 93 | db.rpctype = "PLAYING", 94 | db.rpcdetails = "", 95 | db.rpcstate = "", 96 | db.rpclargeimage = "", 97 | db.rpcsmallimage = "", 98 | db.rpcsmallimagetext = "", 99 | db.rpclargeimagetext = "", 100 | db.rpctime = null, 101 | db.rpcminparty = 0, 102 | db.rpcmaxparty = 0 103 | 104 | savedb(client, db) 105 | message.edit(await language(client, "Le RPC a été supprimé", "The RPC has been deleted")) 106 | rpx() 107 | } 108 | 109 | else if (args[0] === "clear"){ 110 | db.rpctitle = "", 111 | db.rpctype = "PLAYING", 112 | db.rpcdetails = "", 113 | db.rpcstate = "", 114 | db.rpclargeimage = "", 115 | db.rpcsmallimage = "", 116 | db.rpcsmallimagetext = "", 117 | db.rpclargeimagetext = "", 118 | db.rpctime = null, 119 | db.rpcminparty = 0, 120 | db.rpcmaxparty = 0 121 | 122 | savedb(client, db) 123 | message.edit(await language(client, "Le RPC a été supprimé", "The RPC has been deleted")) 124 | rpx() 125 | } 126 | 127 | else if (args[0] === "league"){ 128 | db.rpctitle = "League of Legends", 129 | db.rpctype = "PLAYING", 130 | db.rpcdetails = "Faille de l'invocateur (classé)", 131 | db.rpcminparty = 5, 132 | db.rpcmaxparty = 5, 133 | db.rpcstate = "Dans un salon, prêt à jouer !", 134 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076159618826375198/416719019576393738.png", 135 | db.rpcsmallimage = "", 136 | db.rpctime = Date.now(), 137 | db.rpcsmallimagetext = "", 138 | db.rpclargeimagetext = "" 139 | 140 | savedb(client, db) 141 | message.edit(await language(client, "Le RPC a été modifié et tu pues sur LOL maintenant", "The RPC has been edited and you stink on LOL now")) 142 | rpx() 143 | } 144 | 145 | else if (args[0] === "gtav"){ 146 | db.rpctitle = "Grand Theft Auto V", 147 | db.rpctype = "PLAYING", 148 | db.rpcdetails = "", 149 | db.rpcminparty = 0, 150 | db.rpcmaxparty = 0, 151 | db.rpcstate = "", 152 | db.rpclargeimage = "mp:attachments/1091254578776916080/1096225023523565609/GTAV.png", 153 | db.rpcsmallimage = "", 154 | db.rpctime = Date.now(), 155 | db.rpcsmallimagetext = "", 156 | db.rpclargeimagetext = "" 157 | 158 | savedb(client, db) 159 | message.edit(await language(client, "Le RPC a été modifié et tu joues à GTA V", "The RPC has been edited and you playing on GTA V")) 160 | rpx() 161 | } 162 | 163 | else if (args[0] === "apex"){ 164 | db.rpctitle = "Apex Legends", 165 | db.rpctype = "PLAYING", 166 | db.rpcdetails = "", 167 | db.rpcminparty = 0, 168 | db.rpcmaxparty = 0, 169 | db.rpcstate = "", 170 | db.rpclargeimage = "mp:attachments/1091254578776916080/1096227774932467823/Apex_Skill.png", 171 | db.rpcsmallimage = "", 172 | db.rpctime = Date.now(), 173 | db.rpcsmallimagetext = "", 174 | db.rpclargeimagetext = "" 175 | 176 | savedb(client, db) 177 | message.edit(await language(client, "Le RPC a été modifié et tu joues à Apex Legends", "The RPC has been edited and you playing on Apex Legends")) 178 | rpx() 179 | } 180 | 181 | else if (args[0] === "rocketleague"){ 182 | db.rpctitle = "Rocket League", 183 | db.rpctype = "PLAYING", 184 | db.rpcdetails = "", 185 | db.rpcminparty = 0, 186 | db.rpcmaxparty = 0, 187 | db.rpcstate = "", 188 | db.rpclargeimage = "mp:attachments/1091254578776916080/1096225696361234482/RL_JEUX_DE_MERDE.png", 189 | db.rpcsmallimage = "", 190 | db.rpctime = Date.now(), 191 | db.rpcsmallimagetext = "", 192 | db.rpclargeimagetext = "" 193 | 194 | savedb(client, db) 195 | message.edit(await language(client, "Le RPC a été modifié et tu joues à Rocket League", "The RPC has been edited and you playing on Rocket League")) 196 | rpx() 197 | } 198 | 199 | else if (args[0] === "fallguys"){ 200 | db.rpctitle = "Fall Guys", 201 | db.rpctype = "PLAYING", 202 | db.rpcdetails = "", 203 | db.rpcminparty = 0, 204 | db.rpcmaxparty = 0, 205 | db.rpcstate = "", 206 | db.rpclargeimage = "mp:attachments/1091254578776916080/1096226946049904781/Fall_Zeub.png", 207 | db.rpcsmallimage = "", 208 | db.rpctime = Date.now(), 209 | db.rpcsmallimagetext = "", 210 | db.rpclargeimagetext = "" 211 | 212 | savedb(client, db) 213 | message.edit(await language(client, "Le RPC a été modifié et tu joues à Fall Guys", "The RPC has been edited and you playing on Fall Guys")) 214 | rpx() 215 | } 216 | 217 | else if (args[0] === "valorant"){ 218 | db.rpctitle = "VALORANT", 219 | db.rpctype = "PLAYING", 220 | db.rpcdetails = "", 221 | db.rpcminparty = 0, 222 | db.rpcmaxparty = 0, 223 | db.rpcstate = "", 224 | db.rpclargeimage = "mp:attachments/1091254578776916080/1096224432307048509/valorant.png", 225 | db.rpcsmallimage = "", 226 | db.rpctime = Date.now(), 227 | db.rpcsmallimagetext = "", 228 | db.rpclargeimagetext = "" 229 | 230 | savedb(client, db) 231 | message.edit(await language(client, "Le RPC a été modifié et tu joues à Valorant", "The RPC has been edited and you playing on Valorant")) 232 | rpx() 233 | } 234 | 235 | else if (args[0] === "destiny"){ 236 | db.rpctitle = "Destiny 2", 237 | db.rpctype = "PLAYING", 238 | db.rpcdetails = "Espace Social: La Tour", 239 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076161864041496667/889688531625201755.png", 240 | db.rpcsmallimage = "", 241 | db.rpcminparty = 0, 242 | db.rpcmaxparty = 0, 243 | db.rpctime = Date.now(), 244 | db.rpcsmallimagetext = "", 245 | db.rpclargeimagetext = "" 246 | 247 | savedb(client, db) 248 | message.edit(await language(client, "Le RPC a été modifié et tu joues a Destiny 2", "The RPC has been edited and you playing Destiny 2")) 249 | rpx() 250 | } 251 | 252 | else if (args[0] === "twitch"){ 253 | db.rpctitle = "Twitch", 254 | db.rpctype = "WATCHING", 255 | db.rpcdetails = "Searching...", 256 | db.rpcstate = "", 257 | db.rpcminparty = 0, 258 | db.rpcmaxparty = 0, 259 | db.rpctime = Date.now(), 260 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076170072600608829/899467633504698369.png", 261 | db.rpcsmallimage = "", 262 | db.rpcsmallimagetext = "", 263 | db.rpclargeimagetext = "" 264 | 265 | savedb(client, db) 266 | message.edit(await language(client, "Le status du RPC a été modifié et tu cherche un stream Twitch.", "The state of the RPC has been edited and you search a Twitch stream.")) 267 | rpx() 268 | } 269 | 270 | else if (args[0] === "cod"){ 271 | db.rpctitle = "Call of Duty® : Modern Warfare®", 272 | db.rpctype = "PLAYING", 273 | db.rpcdetails = "Playing Warzone in Caldera", 274 | db.rpcstate = "", 275 | db.rpcminparty = 3, 276 | db.rpcmaxparty = 3, 277 | db.rpctime = Date.now(), 278 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076170536486445177/889690350606749736.png", 279 | db.rpcsmallimage = "", 280 | db.rpcsmallimagetext = "", 281 | db.rpclargeimagetext = "" 282 | 283 | savedb(client, db) 284 | message.edit(await language(client, "Le status du RPC a été modifié et tu joues a Modern Warfare.", "The state of the RPC has been edited and you playing Modern Warfare.")) 285 | rpx() 286 | } 287 | 288 | else if (args[0] === "coldwar"){ 289 | db.rpctitle = "Call of Duty: Black Ops Cold War", 290 | db.rpctype = "PLAYING", 291 | db.rpcdetails = "Zombies | Playing Round Based", 292 | db.rpcstate = "Playing Die Maschine on Round 935", 293 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076171516024197151/755900218624442479.png", 294 | db.rpcsmallimage = "", 295 | db.rpcminparty = 3, 296 | db.rpcmaxparty = 3, 297 | db.rpctime = Date.now(), 298 | db.rpcsmallimagetext = "", 299 | db.rpclargeimagetext = "" 300 | 301 | savedb(client, db) 302 | message.edit(await language(client, "Le status du RPC a été modifié et tu joues a COLDWAR.", "The state of the RPC has been edited and you playing COLDWAR.")) 303 | rpx() 304 | } 305 | 306 | else if (args[0] === "tiktok"){ 307 | db.rpctitle = "TIKTOK", 308 | db.rpctype = "WATCHING", 309 | db.rpcminparty = 0, 310 | db.rpcmaxparty = 0, 311 | db.rpcdetails = args.slice(1).join(' ') || "", 312 | db.rpcstate = "On Tiktok", 313 | db.rpctime = Date.now(), 314 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076175486268473445/889705078167048203.png", 315 | db.rpcsmallimage = "", 316 | db.rpcsmallimagetext = "", 317 | db.rpclargeimagetext = "" 318 | 319 | savedb(client, db) 320 | message.edit(await language(client, "Le status du RPC a été modifié et tu regardes des Tiktok.", "The state of the RPC has been edited and you watching some Tiktok.")) 321 | rpx() 322 | } 323 | 324 | 325 | else if (args[0] === "youtube"){ 326 | db.rpctitle = "YOUTUBE", 327 | db.rpctype = "WATCHING", 328 | db.rpcdetails = args.slice(1).join(' ') || "", 329 | db.rpcstate = "On YouTube", 330 | db.rpcminparty = 0, 331 | db.rpcmaxparty = 0, 332 | db.rpctime = Date.now(), 333 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076175993762500738/987043040940154880.png", 334 | db.rpcsmallimage = "", 335 | db.rpcsmallimagetext = "", 336 | db.rpclargeimagetext = "" 337 | 338 | savedb(client, db) 339 | message.edit(await language(client, `Le status du RPC a été modifié et tu regardes ${args[1]} sur YouTube.`, `The state of the RPC has been edited and you watching ${args[1]} on YouTube.`)) 340 | rpx() 341 | } 342 | 343 | else if (args[0] === "fortnite"){ 344 | db.rpctitle = "Fortnite", 345 | db.rpctype = "PLAYING", 346 | db.rpcdetails = "Battle Royale - Dans le salon", 347 | db.rpcminparty = 4, 348 | db.rpcmaxparty = 4, 349 | db.rpctime = Date.now(), 350 | db.rpcstate = "En Section", 351 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076177262900170752/858017743551201330.png", 352 | db.rpcsmallimage = "mp:attachments/1070132157512695828/1076177948631117834/443127519386927104.png", 353 | db.rpcsmallimagetext = "Palier 100", 354 | db.rpclargeimagetext = "" 355 | 356 | savedb(client, db) 357 | message.edit(await language(client, `Le status du RPC a été modifié et tu joues a Fortnite.`, `The state of the RPC has been edited and you playing Fortnite.`)) 358 | rpx() 359 | } 360 | 361 | else if (args[0] === "netflix"){ 362 | db.rpctitle = "Netflix", 363 | db.rpctype = "WATCHING", 364 | db.rpcminparty = 0, 365 | db.rpcmaxparty = 0, 366 | db.rpctime = Date.now(), 367 | db.rpcdetails = args.slice(1).join(' ') || "", 368 | db.rpcstate = "S1:E1 #1774", 369 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076181480998441020/926541896573153281.png", 370 | db.rpcsmallimage = "mp:attachments/1070132157512695828/1076181682606051409/926541821293764658.png", 371 | db.rpcsmallimagetext = "Playing back", 372 | db.rpclargeimagetext = "" 373 | 374 | savedb(client, db) 375 | message.edit(await language(client, `Le status du RPC a été modifié et tu regardes ${args[1]} sur Netflix.`, `The state of the RPC has been edited and you watching ${args[1]} on Netflix.`)) 376 | rpx() 377 | } 378 | 379 | else if (args[0] === "vsc"){ 380 | db.rpctitle = "Code", 381 | db.rpctype = "PLAYING", 382 | db.rpcminparty = 0, 383 | db.rpcmaxparty = 0, 384 | db.rpctime = Date.now(), 385 | db.rpcdetails = `In ${client.user.username} - 0 problems found`, 386 | db.rpcstate = "Working on" + args.slice(1).join('nebula.js') || "NEBULA.js" + "17:74", 387 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076182650445889636/810647037388259341.png", 388 | db.rpcsmallimage = "mp:attachments/1070132157512695828/1076186433800376390/810652286174494720.png", 389 | db.rpcsmallimagetext = "Visual Studio Code", 390 | db.rpclargeimagetext = "Editing a JS file" 391 | 392 | savedb(client, db) 393 | message.edit(await language(client, "Le status du RPC a été modifié et tu joues a VSC.", "The state of the RPC has been edited and you playing VSC.")) 394 | rpx() 395 | } 396 | 397 | else if (args[0] === "fivem"){ 398 | db.rpctitle = "FiveM", 399 | db.rpctype = "PLAYING", 400 | db.rpcdetails = `Playing on ${client.user.username} RP `, 401 | db.rpcminparty = 1774, 402 | db.rpcmaxparty = 2048, 403 | db.rpcstate = "#1337", 404 | db.rpctime = Date.now(), 405 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076185597141585960/fivem-34014-0.png", 406 | db.rpcsmallimage = "", 407 | db.rpcsmallimagetext = "", 408 | db.rpclargeimagetext = "" 409 | 410 | savedb(client, db) 411 | message.edit(await language(client, "Le status du RPC a été modifié et tu joues a FiveM.", "The state of the RPC has been edited and you playing FiveM.")) 412 | rpx() 413 | } 414 | 415 | else if (args[0] === "python"){ 416 | db.rpctitle = "Code", 417 | db.rpctype = "PLAYING", 418 | db.rpcminparty = 0, 419 | db.rpcmaxparty = 0, 420 | db.rpctime = Date.now(), 421 | db.rpcdetails = `In ${client.user.username} - 0 problems found`, 422 | db.rpcstate = "Working on" + args.slice(1).join('nebula.py') || "NEBULA.js" + "17:74", 423 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076186289650540544/810649485461684234.png", 424 | db.rpcsmallimage = "mp :attachments/1070132157512695828/1076186433800376390/810652286174494720.png", 425 | db.rpcsmallimagetext = "Visual Studio Code", 426 | db.rpclargeimagetext = "Editing a PY file" 427 | savedb(client, db) 428 | message.edit(await language(client, "Le status du RPC a été modifié et tu dev en PY.", "The state of the RPC has been edited and you dev on PY.")) 429 | rpx() 430 | } 431 | 432 | else if (args[0] === "gmod"){ 433 | db.rpctitle = "Garry's Mod", 434 | db.rpctype = "PLAYING", 435 | db.rpcdetails = `In ${client.user.username} - Best Server 👑`, 436 | db.rpcstate = "", 437 | db.rpcminparty = 0, 438 | db.rpcmaxparty = 0, 439 | db.rpctime = Date.now(), 440 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076186289650540544/810649485461684234.png", 441 | db.rpcsmallimage = "", 442 | db.rpcsmallimagetext = "", 443 | db.rpclargeimagetext = "" 444 | 445 | savedb(client, db) 446 | message.edit(await language(client, "Le status du RPC a été modifié et tu joues a Gmod.", "The state of the RPC has been edited and you playing Gmod.")) 447 | rpx() 448 | } 449 | 450 | else if (args[0] === "ph"){ 451 | db.rpctitle = "PornHub", 452 | db.rpctype = "WATCHING", 453 | db.rpcminparty = 0, 454 | db.rpcmaxparty = 0, 455 | db.rpctime = Date.now(), 456 | db.rpcdetails = args.slice(1).join(' ') || "1337 SUCK", 457 | db.rpcstate = "On Pornhub", 458 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076288871475716166/unnamed.gif", 459 | db.rpcsmallimage = "", 460 | db.rpcsmallimagetext = "", 461 | db.rpclargeimagetext = "" 462 | 463 | savedb(client, db) 464 | message.edit(await language(client, "Le status du RPC a été modifié et tu es sur PornHub.", "The state of the RPC has been edited and you are on PornHub.")) 465 | rpx() 466 | } 467 | 468 | else if (args[0] === "disney+"){ 469 | db.rpctitle = "Disney+", 470 | db.rpctype = "WATCHING", 471 | db.rpcminparty = 0, 472 | db.rpcmaxparty = 0, 473 | db.rpctime = Date.now(), 474 | db.rpcdetails = args.slice(1).join(' ') || "", 475 | db.rpcstate = "On Disney+", 476 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076289652492882001/de5d2aj-baf1c3c6-2eb4-48c2-a6d6-3e0f904c1e24.png", 477 | db.rpcsmallimage = "", 478 | db.rpcsmallimagetext = "", 479 | db.rpclargeimagetext = "" 480 | 481 | savedb(client, db) 482 | message.edit(await language(client, "Le status du RPC a été modifié et tu es sur Disney+.", "The state of the RPC has been edited and you are on Disney+.")) 483 | rpx() 484 | } 485 | 486 | else if (args[0] === "fifa23"){ 487 | db.rpctitle = "FIFA 23", 488 | db.rpctype = "PLAYING", 489 | db.rpcminparty = 0, 490 | db.rpcmaxparty = 0, 491 | db.rpctime = Date.now(), 492 | db.rpcdetails = args.slice(1).join(' ') || "", 493 | db.rpcstate = "#EA", 494 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076290299850129528/3tF1wvVnzIn9iqChgBNkGnLa.png", 495 | db.rpcsmallimage = "", 496 | db.rpcsmallimagetext = "", 497 | db.rpclargeimagetext = "" 498 | 499 | savedb(client, db) 500 | message.edit(await language(client, "Le status du RPC a été modifié et tu es sur FIFA23.", "The state of the RPC has been edited and you are on FIFA23.")) 501 | rpx() 502 | } 503 | 504 | else if (args[0] === "ubereats"){ 505 | db.rpctitle = "UBER EATS", 506 | db.rpctype = "WATCHING", 507 | db.rpcminparty = 0, 508 | db.rpcmaxparty = 0, 509 | db.rpctime = Date.now(), 510 | db.rpcdetails = args.slice(1).join(' ') || "", 511 | db.rpcstate = "On Uber Eats", 512 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076584469445759067/uber-eats-logo.png", 513 | db.rpcsmallimage = "", 514 | db.rpcsmallimagetext = "", 515 | db.rpclargeimagetext = "" 516 | 517 | savedb(client, db) 518 | message.edit(await language(client, "Le status du RPC a été modifié et tu es sur Uber Eats.", "The state of the RPC has been edited and you are on Uber Eats.")) 519 | rpx() 520 | } 521 | 522 | else if (args[0] === "photoshop"){ 523 | db.rpctitle = "Photoshop", 524 | db.rpctype = "PLAYING", 525 | db.rpcminparty = 0, 526 | db.rpcmaxparty = 0, 527 | db.rpctime = Date.now(), 528 | db.rpcdetails = "Edtiting : " + args.slice(1).join(' ') || "SPEED.psd", 529 | db.rpcstate = "On Photoshop", 530 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076291001519460432/Adobe_Photoshop_CC_icon.png", 531 | db.rpcsmallimage = "", 532 | db.rpcsmallimagetext = "", 533 | db.rpclargeimagetext = "" 534 | 535 | savedb(client, db) 536 | message.edit(await language(client, "Le status du RPC a été modifié et tu es sur Photoshop.", "The state of the RPC has been edited and you are on Photoshop.")) 537 | rpx() 538 | } 539 | 540 | 541 | else if (args[0] === "kali"){ 542 | db.rpctitle = "KALI LINUX", 543 | db.rpctype = "COMPETING", 544 | db.rpcminparty = 0, 545 | db.rpcmaxparty = 0, 546 | db.rpctime = Date.now(), 547 | db.rpcdetails = "Terminal : " + args.slice(1).join(' ') || "SPEED", 548 | db.rpcstate = "On Kali Linux", 549 | db.rpclargeimage = "mp:attachments/1070132157512695828/1076291488922730537/Kali-dragon-icon.png", 550 | db.rpcsmallimage = "", 551 | db.rpcsmallimagetext = "", 552 | db.rpclargeimagetext = "" 553 | 554 | savedb(client, db) 555 | message.edit(await language(client, "Le status du RPC a été modifié et tu es sur LINUX.", "The state of the RPC has been edited and you are on LINUX.")) 556 | rpx() 557 | } 558 | 559 | else if (args[0] === "nebula"){ 560 | db.rpctitle = "Nebula", 561 | db.rpcminparty = 0, 562 | db.rpcmaxparty = 0, 563 | db.rpctype = "COMPETING", 564 | db.rpcdetails = "", 565 | db.rpcstate = "✯", 566 | db.rpclargeimage = "https://cdn.discordapp.com/attachments/1187439980574941215/1203765432746508348/792879e20d6328a96d4cbf7d5591031d.png?ex=65d248ec&is=65bfd3ec&hm=0327f35bd3c26a51f02bb7dda33f7212a84bd4eded3ae10bb6b5c876def2e22a&", 567 | db.rpcsmallimage = "", 568 | db.rpcsmallimagetext = "", 569 | db.buttontext1 = "Nebula SB", 570 | db.buttonlink1 = "https://discord.gg/NXRgFzxJPE", 571 | db.rpclargeimagetext = "" 572 | 573 | savedb(client, db) 574 | message.edit(await language(client, "Le status du RPC a été modifié et tu participe a Nebula.", "The state of the RPC has been edited and you competing on Nebula.")) 575 | rpx() 576 | } 577 | 578 | else if (args[0] === "1337"){ 579 | db.rpctitle = "1337", 580 | db.rpcminparty = 0, 581 | db.rpcmaxparty = 0, 582 | db.rpctype = "COMPETING", 583 | db.rpcdetails = "", 584 | db.rpcstate = "⛧", 585 | db.rpclargeimage = "https://cdn.discordapp.com/attachments/1187439980574941215/1203773792674119790/3a4c864c710cd3421a9416739ed9dce8.png?ex=65d250b5&is=65bfdbb5&hm=fcde99a2ea1c64138ea79d1d0cd8e0f78824c50613a801a63de0c16079e92ba8&", 586 | db.rpcsmallimage = "", 587 | db.rpcsmallimagetext = "", 588 | db.rpclargeimagetext = "" 589 | savedb(client, db) 590 | message.edit(await language(client, "Le status du RPC a été modifié et tu participe a 1337.", "The state of the RPC has been edited and you competing on 1337.")) 591 | rpx() 592 | } 593 | 594 | }catch{} 595 | } 596 | } --------------------------------------------------------------------------------