├── .github └── dependabot.yml ├── LICENSE ├── README.md ├── commands ├── addy.js ├── avatar.js ├── bal.js ├── ban.js ├── banner.js ├── c2i.js ├── clear.js ├── gayrate.js ├── gitsearch.js ├── gituser.js ├── guildicon.js ├── hack.js ├── help.js ├── i2c.js ├── iplookup.js ├── kick.js ├── loverate.js ├── ltcprice.js ├── math.js ├── nickname.js ├── ping.js ├── serverinfo.js ├── spam.js ├── status.js ├── status2.js ├── status3.js └── upi.js ├── config.js ├── images └── add your qr code here.txt ├── index.js ├── information.txt ├── package-lock.json └── package.json /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [2024] [rock-selfbot] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rock-Selfbot 1.0 2 | 3 | This project demonstrates the usage of a Discord selfbot using discord.js-selfbot-v13 library. It includes various commands such as fetching cryptocurrency prices, checking user balances, sending messages with custom styles, and more. 4 | # I am not responsible for any harm or damage caused by the usage of this Discord selfbot. 5 | Setup Instructions: 6 | 1. Clone the repository to your local machine. 7 | 2. Install the required dependencies using npm install. 8 | 3. Update the config.js file with your Discord bot token and prefix. 9 | 4. Run the bot using node index.js. 10 | 11 | 🚀 **Help - Available Commands** 🚀 12 | 13 | - **addy**: 🔑 Sends your Litecoin (LTC) wallet address in a styled message with emojis. 14 | - **avatar**: Displays the avatar of the mentioned user. 15 | - **bal**: 🔍 Checks the balance of a Litecoin (LTC) wallet address and its equivalent in USD and INR. 16 | - **ban**: Bans a user from the server. 17 | - **banner**: Displays the banner of the user. 18 | - **c2i**: Converts an amount from USD to INR. 19 | - **clear**: Delete messages off a channel 20 | - **gayrate**: Rates how gay a user is. 21 | - **gitsearch**: Searches GitHub for repositories. 22 | - **gituser**: Retrieves information about a GitHub user. 23 | - **guildicon**: Displays the guild icon. 24 | - **hack**: Simulates a prank hack. 25 | - **help**: Displays a list of available commands. 26 | - **i2c**: Converts an amount from INR to USD. 27 | - **iplookup**: Lookup information about an IP address. 28 | - **kick**: Kicks a user from the server. 29 | - **loverate**: Rates the compatibility of two mentioned users as lovers. 30 | - **ltcprice**: 📈 Fetches the current price of Litecoin (LTC). 31 | - **math**: Evaluates a mathematical expression. 32 | - **setnickname**: Changes your own nickname. 33 | - **ping**: Checks the bot's latency. 34 | - **serverinfo**: Displays information about the server. 35 | - **spam**: Spams a message multiple times. 36 | - **status**: Sets the bot's status. 37 | - **upi**: 💳 Pay Here (UPI) ID along with an image in a styled message with emojis. 38 | 39 | # 👨‍💻 *Created by devrock* 40 | 41 | # Feel free to contribute to this project by submitting pull requests or reporting issues. 42 | 43 | 44 | # This project is licensed under the MIT License. See the LICENSE file for details. 45 | -------------------------------------------------------------------------------- /commands/addy.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'addy', 3 | description: '🔑 Sends your Litecoin (LTC) wallet address in a styled message with emojis.', 4 | /** 5 | * Executes the ltcaddress command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Replace 'YOUR_LTC_ADDRESS' with your actual Litecoin wallet address 14 | const ltcAddress = 'LcPnFkTa5UTav5Ue3dM6GdLh7LpTm47JZx'; 15 | 16 | // Styled message with emojis 17 | const addressMessage = `🔒 **Pay Here (LTC) Wallet Address:**\n\n` + 18 | `||${ltcAddress}||`; 19 | 20 | // Send the styled message to the channel 21 | message.channel.send(addressMessage); 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /commands/avatar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'avatar', 3 | description: 'Displays the avatar of the mentioned user.', 4 | /** 5 | * Executes the avatar command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Delete the command message 14 | message.delete().catch(console.error); 15 | 16 | // Check if a user is mentioned 17 | if (!message.mentions.users.size) { 18 | return message.channel.send('Please mention a user to get their avatar.').catch(console.error); 19 | } 20 | 21 | // Get the mentioned user 22 | const mentionedUser = message.mentions.users.first(); 23 | 24 | // Get the mentioned user's avatar URL 25 | const userAvatarURL = mentionedUser.displayAvatarURL({ format: 'png', dynamic: true, size: 1024 }); 26 | 27 | // Send the mentioned user's avatar 28 | message.channel.send(`${mentionedUser.username}'s avatar: ${userAvatarURL}`).catch(console.error); 29 | } 30 | }; 31 | -------------------------------------------------------------------------------- /commands/bal.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | 3 | module.exports = { 4 | name: 'bal', 5 | description: '🔍 Checks the balance of a Litecoin (LTC) wallet address and its equivalent in USD and INR.', 6 | /** 7 | * Executes the bal command. 8 | * 9 | * @param {Channel} channel The channel where the command was executed. 10 | * @param {Message} message The message object for the command. 11 | * @param {Client} client The client or bot instance. 12 | * @param {String[]} args The arguments passed with the command. 13 | */ 14 | async execute(channel, message, client, args) { 15 | // Check if the user provided a Litecoin address 16 | if (args.length !== 1) { 17 | return message.channel.send('❌ Please provide a Litecoin (LTC) wallet address.'); 18 | } 19 | 20 | // Get the Litecoin address from the command arguments 21 | const ltcAddress = args[0]; 22 | 23 | try { 24 | // Delete the command message 25 | message.delete(); 26 | 27 | // Fetch Litecoin address details from BlockCypher API 28 | const response = await axios.get(`https://api.blockcypher.com/v1/ltc/main/addrs/${ltcAddress}`); 29 | const data = response.data; 30 | 31 | // Extract balance and other details 32 | const balanceLTC = data.balance / 100000000; // Convert satoshis to LTC 33 | const balanceUSD = balanceLTC * 176.29; // Assuming 1 LTC = 176.29 USD (can be adjusted) 34 | const balanceINR = balanceLTC * 13068.90; // Assuming 1 LTC = 13068.90 INR (can be adjusted) 35 | const totalReceived = data.total_received / 100000000; 36 | const totalSent = data.total_sent / 100000000; 37 | const transactionCount = data.n_tx; 38 | 39 | // Construct the message with balance and other details 40 | const balanceMessage = `📈 **Litecoin (LTC) Wallet Address:** ${ltcAddress}\n` + 41 | `💰 **Balance (LTC):** ${balanceLTC} LTC\n` + 42 | `💵 **Balance (USD):** $${balanceUSD.toFixed(2)}\n` + 43 | `🇮🇳 **Balance (INR):** ₹${balanceINR.toFixed(2)}\n` + 44 | `📥 **Total Received:** ${totalReceived} LTC\n` + 45 | `📤 **Total Sent:** ${totalSent} LTC\n` + 46 | `🔢 **Number of Transactions:** ${transactionCount}`; 47 | 48 | // Send the balance message to the channel 49 | message.channel.send(balanceMessage); 50 | } catch (error) { 51 | console.error('Error fetching Litecoin balance:', error.response.data); 52 | message.channel.send('❌ Error fetching Litecoin balance. Please check the provided address.'); 53 | } 54 | } 55 | }; 56 | -------------------------------------------------------------------------------- /commands/ban.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'ban', 3 | description: 'Bans a user from the server.', 4 | usage: '@user', 5 | cooldown: 5, 6 | /** 7 | * Executes the ban command. 8 | * 9 | * @param {Channel} channel The channel where the command was executed. 10 | * @param {Message} message The message object for the command. 11 | * @param {Client} client The client or bot instance. 12 | * @param {String[]} args The arguments passed with the command. 13 | */ 14 | execute(channel, message, client, args) { 15 | // Check if the user has permission to ban members 16 | if (!message.member.permissions.has('BAN_MEMBERS')) { 17 | return message.channel.send('You do not have permission to ban members.'); 18 | } 19 | 20 | // Check if a user was mentioned 21 | const targetUser = message.mentions.members.first(); 22 | if (!targetUser) { 23 | return message.channel.send('Please mention a user to ban.'); 24 | } 25 | 26 | // Check if the bot has permission to ban members 27 | if (!message.guild.members.me.permissions.has('BAN_MEMBERS')) { 28 | return message.channel.send('I do not have permission to ban members.'); 29 | } 30 | 31 | // Attempt to ban the user 32 | targetUser.ban({ reason: 'Banned by command' }) 33 | .then(() => { 34 | message.channel.send(`Successfully banned ${targetUser.user.tag}.`); 35 | }) 36 | .catch(error => { 37 | console.error('Error banning user:', error); 38 | message.channel.send('Failed to ban user. Please check permissions and try again.'); 39 | }); 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /commands/banner.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'banner', 3 | description: 'Displays the banner of the user.', 4 | /** 5 | * Executes the banner command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Get the user's avatar URL 14 | const userAvatarURL = message.author.displayAvatarURL({ dynamic: true, format: 'png', size: 1024 }); 15 | 16 | // Extract the user's banner URL from the avatar URL 17 | const userBannerURL = userAvatarURL.split('?')[0] + '.png?size=4096'; 18 | 19 | // Send the user's banner if available 20 | message.channel.send(userBannerURL ? `Here is your banner: ${userBannerURL}` : 'Sorry, unable to fetch your banner.'); 21 | } 22 | }; 23 | -------------------------------------------------------------------------------- /commands/c2i.js: -------------------------------------------------------------------------------- 1 | // Define the conversion rate from USD to INR 2 | const C2I_Rate = 87; // Example: 1 USD = 87 INR 3 | 4 | module.exports = { 5 | name: 'c2i', 6 | description: 'Converts an amount from USD to INR.', 7 | cooldown: 3, 8 | /** 9 | * Executes the c2i command. 10 | * 11 | * @param {Channel} channel The channel where the command was executed. 12 | * @param {Message} message The message object for the command. 13 | * @param {Client} client The client or bot instance. 14 | * @param {String[]} args The arguments passed with the command. 15 | */ 16 | async execute(channel, message, client, args) { 17 | const amountStr = args[0]; // Assuming the amount is passed as the first argument 18 | 19 | // Check if amount is provided 20 | if (!amountStr) { 21 | return message.channel.send('Please provide an amount in Ltc to convert to INR.'); 22 | } 23 | 24 | // Convert the amount to float and remove the '$' symbol if present 25 | const amount = parseFloat(amountStr.replace('$', '')); 26 | 27 | // Check if the amount is a valid number 28 | if (isNaN(amount)) { 29 | return message.channel.send('Invalid amount provided.'); 30 | } 31 | 32 | // Calculate the amount in INR using the conversion rate 33 | const usdAmount = amount * C2I_Rate; 34 | 35 | // Send the result to the channel 36 | message.channel.send(`Amount in Ltc: $${amount.toFixed(2)}\nAmount in INR: ₹${usdAmount.toFixed(2)}`); 37 | } 38 | }; 39 | -------------------------------------------------------------------------------- /commands/clear.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: "clear", 3 | description: "Delete messages off a channel", 4 | /** 5 | * 6 | * @param {Channel} channel The channel where the command was executed. 7 | * @param {Message} message The message object for the command. 8 | * @param {Client} client The client or bot instance. 9 | */ 10 | async execute(channel, message, client) { 11 | // Assuming args are contained within the message content 12 | // Splitting message content to extract command arguments 13 | const args = message.content.split(/\s+/).slice(1); // This removes the command keyword itself and leaves just the arguments 14 | 15 | const config = client.config || { interval: 1000 }; 16 | const number = !isNaN(parseInt(args[0], 10)) ? parseInt(args[0], 10) : 99; 17 | 18 | // Delete the command message 19 | message.delete().catch(err => {}); 20 | 21 | // Adjusted for correct use 22 | setTimeout(() => { 23 | message.delete().catch((err) => {}); 24 | }, config.interval); 25 | 26 | const messages = await channel.messages.fetch({ limit: Math.min(number, 100) }); 27 | const filteredMessages = messages.filter(x => x.author.id === client.user.id); 28 | 29 | let deletedCount = 0; 30 | 31 | for (let msg of filteredMessages.values()) { 32 | if (deletedCount >= number) break; 33 | await msg.delete().catch(err => {}); 34 | deletedCount++; 35 | } 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /commands/gayrate.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'gayrate', 3 | description: 'Rates how gay a user is.', 4 | execute(channel, message, client, args) { 5 | // Check if a user is mentioned 6 | const member = message.mentions.members.first(); 7 | 8 | if (!member) { 9 | return message.channel.send('Please mention a user to rate their gayness.'); 10 | } 11 | 12 | // Generate a random gayness rating between 0 and 100 13 | const gayness = Math.floor(Math.random() * 101); 14 | 15 | // Send the gayness rating to the channel 16 | message.channel.send(`${member.user.username} is ${gayness}% gay.`); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /commands/gitsearch.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | 3 | module.exports = { 4 | name: 'gitsearch', 5 | description: 'Searches GitHub for repositories.', 6 | usage: '', 7 | cooldown: 5, 8 | /** 9 | * Executes the gitsearch command. 10 | * 11 | * @param {Channel} channel The channel where the command was executed. 12 | * @param {Message} message The message object for the command. 13 | * @param {Client} client The client or bot instance. 14 | * @param {String[]} args The arguments passed with the command. 15 | */ 16 | async execute(channel, message, client, args) { 17 | const query = args.join(' '); 18 | 19 | try { 20 | const response = await axios.get(`https://api.github.com/search/repositories?q=${query}`); 21 | const { items } = response.data; 22 | 23 | if (items.length === 0) { 24 | return message.channel.send('No repositories found for the given query.'); 25 | } 26 | 27 | const repositories = items.slice(0, 5).map(repo => { 28 | return `[${repo.full_name}](${repo.html_url}) - ${repo.description || 'No description available'}`; 29 | }).join('\n'); 30 | 31 | message.channel.send(`**Top 5 repositories for "${query}":**\n${repositories}`); 32 | } catch (error) { 33 | console.error('Error searching GitHub:', error); 34 | message.channel.send('An error occurred while searching GitHub. Please try again later.'); 35 | } 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /commands/gituser.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | 3 | module.exports = { 4 | name: 'gituser', 5 | description: 'Retrieves information about a GitHub user.', 6 | usage: '', 7 | cooldown: 5, 8 | /** 9 | * Executes the gituser command. 10 | * 11 | * @param {Channel} channel The channel where the command was executed. 12 | * @param {Message} message The message object for the command. 13 | * @param {Client} client The client or bot instance. 14 | * @param {String[]} args The arguments passed with the command. 15 | */ 16 | async execute(channel, message, client, args) { 17 | const username = args[0]; 18 | 19 | try { 20 | const response = await axios.get(`https://api.github.com/users/${username}`); 21 | const userData = response.data; 22 | 23 | const userInfo = `**Username:** ${userData.login}\n` + 24 | `**Name:** ${userData.name || 'Not available'}\n` + 25 | `**Bio:** ${userData.bio || 'Not available'}\n` + 26 | `**Followers:** ${userData.followers}\n` + 27 | `**Following:** ${userData.following}\n` + 28 | `**Public Repositories:** ${userData.public_repos}\n` + 29 | `**URL:** [Profile](${userData.html_url})`; 30 | 31 | message.channel.send(userInfo); 32 | } catch (error) { 33 | if (error.response && error.response.status === 404) { 34 | message.channel.send('User not found.'); 35 | } else { 36 | console.error('Error retrieving GitHub user information:', error); 37 | message.channel.send('An error occurred while retrieving user information. Please try again later.'); 38 | } 39 | } 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /commands/guildicon.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'guildicon', 3 | description: 'Displays the guild icon.', 4 | /** 5 | * Executes the guildicon command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Delete the command message 14 | message.delete().catch(console.error); 15 | 16 | // Check if the guild has an icon 17 | if (!message.guild || !message.guild.icon) { 18 | return message.channel.send('This guild does not have an icon.').catch(console.error); 19 | } 20 | 21 | // Get the guild icon URL 22 | const iconURL = message.guild.iconURL({ dynamic: true }); 23 | 24 | // Send the guild icon to the channel 25 | message.channel.send(`Guild Icon: ${iconURL}`).catch(console.error); 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /commands/hack.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'hack', 3 | description: 'Simulates a prank hack.', 4 | cooldown: 5, 5 | /** 6 | * Executes the prankhack command. 7 | * 8 | * @param {Channel} channel The channel where the command was executed. 9 | * @param {Message} message The message object for the command. 10 | * @param {Client} client The client or bot instance. 11 | * @param {String[]} args The arguments passed with the command. 12 | */ 13 | execute(channel, message, client, args) { 14 | // Send a prank hack message 15 | message.channel.send('Prank hack initiated... Accessing mainframe... Bypassing firewalls...'); 16 | // Simulate hack process 17 | setTimeout(() => { 18 | message.channel.send('Hack successful! You are now the supreme ruler of the server! (Just kidding)'); 19 | }, 3000); // Wait for 3 seconds before sending the final message 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /commands/help.js: -------------------------------------------------------------------------------- 1 | const _0x5d81f3=_0x3103;function _0x3103(_0x30faae,_0x22bd25){const _0x428ac2=_0xe149();return _0x3103=function(_0x3a7f4a,_0x590a3a){_0x3a7f4a=_0x3a7f4a-(0x270c+-0x4c3*0x2+-0x6ed*0x4);let _0x59a3f7=_0x428ac2[_0x3a7f4a];return _0x59a3f7;},_0x3103(_0x30faae,_0x22bd25);}(function(_0x5ccf4e,_0x19f599){const _0x45697d=_0x3103,_0x434569=_0x5ccf4e();while(!![]){try{const _0x3fe85b=-parseInt(_0x45697d(0x1f4))/(-0x1239+0x1f15+-0xcdb)+parseInt(_0x45697d(0x1db))/(0x133d*-0x1+0x1bd0+0x1*-0x891)*(parseInt(_0x45697d(0x1dd))/(-0x7fc*-0x2+0x613+-0x1608))+-parseInt(_0x45697d(0x1d9))/(0x40a+-0x153d+0x1137)+parseInt(_0x45697d(0x1ef))/(-0x13*0x1b8+0x4b0+-0x599*-0x5)*(-parseInt(_0x45697d(0x201))/(0xe09+-0x13de+0x5db))+parseInt(_0x45697d(0x1df))/(0x1eec+-0x1db0+-0x135)+parseInt(_0x45697d(0x1fb))/(0xa*-0xa3+0x1ac3+-0x145d)*(-parseInt(_0x45697d(0x1e5))/(0x2*0x185+0x207*-0x7+0xb30))+-parseInt(_0x45697d(0x1e8))/(-0x74b+-0x498+-0xbed*-0x1)*(-parseInt(_0x45697d(0x1f9))/(0x4d*-0x39+0x984*-0x2+0x2438));if(_0x3fe85b===_0x19f599)break;else _0x434569['push'](_0x434569['shift']());}catch(_0x5ef86b){_0x434569['push'](_0x434569['shift']());}}}(_0xe149,0xa2aa+-0x5a7de+-0x17*-0x7f65));function _0xe149(){const _0xb7960d=['Error\x20load','FopIN','d\x20file:\x20','579758yJWbse','Displays\x20a','delete','send','forEach','66gvvoLO','cuDQY','304344eNdYSw','name',':small_ora','catch','ommands.','path','3125784kgGajY','Failed\x20to\x20','ing\x20comman','YhLUJ','*\x20🚀\x0a\x0a','send\x20help\x20','.js','error','\x20list\x20of\x20a','nge_diamon','*Created\x20b','exports','help','../config','message:','2136640XxrfMA','**:\x20','82FvGOcT','../command','11619gfkdNr','filter','819441fJlGOk','readdirSyn','MaRKe','match','d:\x20**','🚀\x20**Help\x20-','81AcQByU','nologist:\x20','endsWith','3537500ROQUET','\x20Commands*','vailable\x20c','descriptio','y\x20devrock*','\x0a:man_tech','resolve','5GbemjY','\x20Available'];_0xe149=function(){return _0xb7960d;};return _0xe149();}const fs=require('fs'),path=require(_0x5d81f3(0x200));module[_0x5d81f3(0x1d5)]={'name':_0x5d81f3(0x1d6),'description':_0x5d81f3(0x1f5)+_0x5d81f3(0x1d2)+_0x5d81f3(0x1ea)+_0x5d81f3(0x1ff),'execute'(_0x163b7b,_0x2db231,_0x366f1d,_0x5bcdc8){const _0x30adc8=_0x5d81f3,_0xb51f42={'FopIN':function(_0x2f58ea,_0x330512){return _0x2f58ea(_0x330512);},'MaRKe':function(_0x58a2dd,_0x491b03){return _0x58a2dd(_0x491b03);},'cuDQY':_0x30adc8(0x1d7),'YhLUJ':_0x30adc8(0x1dc)+'s'};_0x2db231[_0x30adc8(0x1f6)]()[_0x30adc8(0x1fe)](_0x543cce=>{});const {prefix:_0x55c55c}=_0xb51f42[_0x30adc8(0x1e1)](require,_0xb51f42[_0x30adc8(0x1fa)]),_0x37c857=fs[_0x30adc8(0x1e0)+'c'](path[_0x30adc8(0x1ee)](__dirname,_0xb51f42[_0x30adc8(0x204)]))[_0x30adc8(0x1de)](_0xcad7db=>_0xcad7db[_0x30adc8(0x1e7)](_0x30adc8(0x207)));let _0x1d492d=_0x30adc8(0x1e4)+_0x30adc8(0x1f0)+_0x30adc8(0x1e9)+_0x30adc8(0x205);_0x37c857[_0x30adc8(0x1f8)](_0x5e3038=>{const _0x4247a6=_0x30adc8;try{const _0x4cdb7e=_0xb51f42[_0x4247a6(0x1f2)](require,_0x4247a6(0x1dc)+'s/'+_0x5e3038);_0x1d492d+=_0x4247a6(0x1fd)+_0x4247a6(0x1d3)+_0x4247a6(0x1e3)+_0x55c55c+_0x4cdb7e[_0x4247a6(0x1fc)]+_0x4247a6(0x1da)+_0x4cdb7e[_0x4247a6(0x1eb)+'n']+'\x0a';}catch(_0x3be729){console[_0x4247a6(0x208)](_0x4247a6(0x1f1)+_0x4247a6(0x203)+_0x4247a6(0x1f3)+_0x5e3038,_0x3be729);}}),_0x1d492d+=_0x30adc8(0x1ed)+_0x30adc8(0x1e6)+_0x30adc8(0x1d4)+_0x30adc8(0x1ec);const _0x59c94d=_0x1d492d[_0x30adc8(0x1e2)](/[\s\S]{1,2000}/g);_0x59c94d[_0x30adc8(0x1f8)](_0x4154c4=>{const _0x581ab4=_0x30adc8;_0x163b7b[_0x581ab4(0x1f7)](_0x4154c4)[_0x581ab4(0x1fe)](_0x11c634=>console[_0x581ab4(0x208)](_0x581ab4(0x202)+_0x581ab4(0x206)+_0x581ab4(0x1d8),_0x11c634));});}}; 2 | -------------------------------------------------------------------------------- /commands/i2c.js: -------------------------------------------------------------------------------- 1 | // Define the conversion rate from INR to USD 2 | const INR_TO_USD_RATE = 1 / 91; // Example: 1 INR = 0.014 USD 3 | 4 | module.exports = { 5 | name: 'i2c', 6 | description: 'Converts an amount from INR to USD.', 7 | cooldown: 3, 8 | /** 9 | * Executes the inr2usd command. 10 | * 11 | * @param {Channel} channel The channel where the command was executed. 12 | * @param {Message} message The message object for the command. 13 | * @param {Client} client The client or bot instance. 14 | * @param {String[]} args The arguments passed with the command. 15 | */ 16 | async execute(channel, message, client, args) { 17 | const amountStr = args[0]; // Assuming the amount is passed as the first argument 18 | 19 | // Check if amount is provided 20 | if (!amountStr) { 21 | return message.channel.send('Please provide an amount in INR to convert to Ltc.'); 22 | } 23 | 24 | // Convert the amount to float 25 | const amount = parseFloat(amountStr); 26 | 27 | // Check if the amount is a valid number 28 | if (isNaN(amount)) { 29 | return message.channel.send('Invalid amount provided.'); 30 | } 31 | 32 | // Calculate the amount in USD using the conversion rate 33 | const usdAmount = amount * INR_TO_USD_RATE; 34 | 35 | // Send the result to the channel 36 | message.channel.send(`Amount in INR: ₹${amount.toFixed(2)}\nAmount in Ltc: $${usdAmount.toFixed(2)}`); 37 | } 38 | }; 39 | -------------------------------------------------------------------------------- /commands/iplookup.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | 3 | module.exports = { 4 | name: 'iplookup', 5 | description: 'Lookup information about an IP address.', 6 | /** 7 | * Executes the iplookup command. 8 | * 9 | * @param {Channel} channel The channel where the command was executed. 10 | * @param {Message} message The message object for the command. 11 | * @param {Client} client The client or bot instance. 12 | * @param {String[]} args The arguments passed with the command. 13 | */ 14 | async execute(channel, message, client, args) { 15 | // Delete the command message 16 | message.delete().catch(console.error); 17 | 18 | // Check if an IP address is provided 19 | if (args.length === 0) { 20 | return message.channel.send('Please provide an IP address to lookup.').catch(console.error); 21 | } 22 | 23 | // Get the IP address from the command arguments 24 | const ipAddress = args[0]; 25 | 26 | try { 27 | // Fetch IP information from ip-api.com 28 | const response = await axios.get(`http://ip-api.com/json/${ipAddress}`); 29 | const data = response.data; 30 | 31 | // Construct the IP information message 32 | const ipInfoMessage = `IP Address: ${data.query}\n` + 33 | `Country: ${data.country}\n` + 34 | `Region: ${data.regionName}\n` + 35 | `City: ${data.city}\n` + 36 | `ISP: ${data.isp}`; 37 | 38 | // Send the IP information to the channel 39 | message.channel.send(ipInfoMessage).catch(console.error); 40 | } catch (error) { 41 | console.error('Error looking up IP address:', error); 42 | message.channel.send('Error looking up IP address. Please try again later.').catch(console.error); 43 | } 44 | } 45 | }; 46 | -------------------------------------------------------------------------------- /commands/kick.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'kick', 3 | description: 'Kicks a user from the server.', 4 | usage: '@user', 5 | cooldown: 5, 6 | /** 7 | * Executes the kick command. 8 | * 9 | * @param {Channel} channel The channel where the command was executed. 10 | * @param {Message} message The message object for the command. 11 | * @param {Client} client The client or bot instance. 12 | * @param {String[]} args The arguments passed with the command. 13 | */ 14 | execute(channel, message, client, args) { 15 | // Check if the user has permission to kick members 16 | if (!message.member.permissions.has('KICK_MEMBERS')) { 17 | return message.channel.send('You do not have permission to kick members.'); 18 | } 19 | 20 | // Check if a user was mentioned 21 | const targetUser = message.mentions.members.first(); 22 | if (!targetUser) { 23 | return message.channel.send('Please mention a user to kick.'); 24 | } 25 | 26 | // Check if the bot has permission to kick members 27 | if (!message.guild.members.me.permissions.has('KICK_MEMBERS')) { 28 | return message.channel.send('I do not have permission to kick members.'); 29 | } 30 | 31 | // Attempt to kick the user 32 | targetUser.kick({ reason: 'Kicked by command' }) 33 | .then(() => { 34 | message.channel.send(`Successfully kicked ${targetUser.user.tag}.`); 35 | }) 36 | .catch(error => { 37 | console.error('Error kicking user:', error); 38 | message.channel.send('Failed to kick user. Please check permissions and try again.'); 39 | }); 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /commands/loverate.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'loverate', 3 | description: 'Rates the compatibility of two mentioned users as lovers.', 4 | execute(channel, message, client, args) { 5 | // Check if two users are mentioned 6 | const mentionedMembers = message.mentions.members; 7 | 8 | if (mentionedMembers.size !== 2) { 9 | return message.channel.send('Please mention exactly two users to rate their compatibility as lovers.'); 10 | } 11 | 12 | // Generate a random compatibility rating between 0 and 100 13 | const compatibility = Math.floor(Math.random() * 101); 14 | 15 | // Extract usernames of mentioned users 16 | const [user1, user2] = mentionedMembers.map(member => member.user.username); 17 | 18 | // Send the compatibility rating to the channel 19 | message.channel.send(`The compatibility rating between ${user1} and ${user2} as lovers is ${compatibility}%.`); 20 | } 21 | }; 22 | -------------------------------------------------------------------------------- /commands/ltcprice.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | 3 | module.exports = { 4 | name: 'ltcprice', 5 | description: '📈 Fetches the current price of Litecoin (LTC).', 6 | /** 7 | * Executes the ltcprice command. 8 | * 9 | * @param {Channel} channel The channel where the command was executed. 10 | * @param {Message} message The message object for the command. 11 | * @param {Client} client The client or bot instance. 12 | * @param {String[]} args The arguments passed with the command. 13 | */ 14 | async execute(channel, message, client, args) { 15 | try { 16 | // Fetch Litecoin price data from CoinGecko API 17 | const response = await axios.get('https://api.coingecko.com/api/v3/simple/price?ids=litecoin&vs_currencies=usd'); 18 | const ltcPrice = response.data.litecoin.usd; 19 | 20 | // Send the current Litecoin price to the channel with style 21 | message.channel.send(`📈 The current price of **Litecoin (LTC)** is: **$${ltcPrice}** 💰`); 22 | message.channel.send(`┃┃│${ltcPrice} USD┃┃`); 23 | } catch (error) { 24 | console.error('Error fetching Litecoin price:', error); 25 | message.channel.send('❌ Error fetching Litecoin price. Please try again later.'); 26 | } 27 | } 28 | }; 29 | -------------------------------------------------------------------------------- /commands/math.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'math', 3 | description: 'Evaluates a mathematical expression.', 4 | /** 5 | * Executes the math command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Delete the command message 14 | message.delete().catch(console.error); 15 | 16 | // Check if there is an expression to evaluate 17 | if (args.length === 0) { 18 | return message.channel.send('Please provide a mathematical expression to evaluate.').catch(console.error); 19 | } 20 | 21 | try { 22 | // Evaluate the mathematical expression 23 | const result = eval(args.join(' ')); 24 | 25 | // Send the result to the channel 26 | message.channel.send(`Result: ${result}`).catch(console.error); 27 | } catch (error) { 28 | console.error('Error evaluating mathematical expression:', error); 29 | message.channel.send('Error evaluating mathematical expression. Please check your input.').catch(console.error); 30 | } 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /commands/nickname.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'setnickname', 3 | description: 'Changes your own nickname.', 4 | cooldown: 5, 5 | /** 6 | * Executes the setnickname command. 7 | * 8 | * @param {Channel} channel The channel where the command was executed. 9 | * @param {Message} message The message object for the command. 10 | * @param {Client} client The client or bot instance. 11 | * @param {String[]} args The arguments passed with the command. 12 | */ 13 | execute(channel, message, client, args) { 14 | // Check if the bot has permission to change nicknames 15 | if (!message.guild.me.permissions.has('CHANGE_NICKNAME')) { 16 | return message.channel.send('I do not have permission to change nicknames.'); 17 | } 18 | 19 | // Extract the new nickname from the command arguments 20 | const newNickname = args.join(' '); 21 | 22 | // Check if a new nickname is provided 23 | if (!newNickname) { 24 | return message.channel.send('Please provide a new nickname.'); 25 | } 26 | 27 | // Change the user's nickname 28 | message.member.setNickname(newNickname) 29 | .then(() => { 30 | message.channel.send(`Your nickname has been changed to "${newNickname}".`); 31 | }) 32 | .catch(error => { 33 | console.error('Error changing nickname:', error); 34 | message.channel.send('Failed to change nickname. Please check permissions and try again.'); 35 | }); 36 | } 37 | }; 38 | -------------------------------------------------------------------------------- /commands/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'ping', 3 | description: 'Checks the bot\'s latency.', 4 | /** 5 | * Executes the ping command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Delete the command message 14 | message.delete().catch(err => {}); 15 | 16 | // Send a message indicating that the bot is pinging 17 | message.channel.send('Pinging...').then(sentMessage => { 18 | // Calculate the latency (ping) by subtracting the time when the message was sent from the time when it was received 19 | const latency = sentMessage.createdTimestamp - message.createdTimestamp; 20 | 21 | // Edit the sent message to display the ping 22 | sentMessage.edit(`:ping_pong: Pong! Latency is ${latency}ms. API Latency is ${Math.round(client.ws.ping)}ms`); 23 | }).catch(console.error); 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /commands/serverinfo.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'serverinfo', 3 | description: 'Displays information about the server.', 4 | /** 5 | * Executes the serverinfo command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Delete the command message 14 | message.delete().catch(err => {}); 15 | 16 | // Get the server information 17 | const guild = message.guild; 18 | 19 | // Check if guild is available 20 | if (!guild) { 21 | return message.channel.send('Unable to retrieve server information.'); 22 | } 23 | 24 | // Get the server banner URL 25 | const bannerURL = guild.bannerURL({ format: 'png', size: 4096 }); 26 | 27 | // Construct the server info message 28 | let serverInfoMessage = `**Server Name:** ${guild.name}\n` + 29 | `**Members:** ${guild.memberCount}\n` + 30 | `**Created At:** ${guild.createdAt.toDateString()}\n` + 31 | `**Roles:** ${guild.roles.cache.size}\n` + 32 | `**Channels:** ${guild.channels.cache.size}`; 33 | 34 | // Include server banner if available 35 | if (bannerURL) { 36 | serverInfoMessage += `\n**Server Banner:** ${bannerURL}`; 37 | } 38 | 39 | // Send the server info message to the channel 40 | message.channel.send(serverInfoMessage); 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /commands/spam.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'spam', 3 | description: 'Spams a message multiple times.', 4 | /** 5 | * Executes the spam command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Delete the command message 14 | message.delete().catch(console.error); 15 | 16 | // Extract spam message and count from arguments 17 | const spamMessage = args.slice(1).join(' '); 18 | let count = parseInt(args[0]); 19 | 20 | // Check if count is a valid number and within the limit 21 | if (isNaN(count) || count <= 0 || count > 100) { 22 | return message.channel.send('Please provide a valid number between 1 and 100 for the spam count.').catch(console.error); 23 | } 24 | 25 | // Limit count to 100 26 | count = Math.min(count, 100); 27 | 28 | // Send the spam message multiple times 29 | for (let i = 0; i < count; i++) { 30 | channel.send(spamMessage).catch(console.error); 31 | } 32 | } 33 | }; 34 | -------------------------------------------------------------------------------- /commands/status.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'status', 3 | description: 'Sets the bot\'s status.', 4 | /** 5 | * Executes the status command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | execute(channel, message, client, args) { 13 | // Check if the user has provided a status type and status message 14 | if (args.length < 2) { 15 | return message.channel.send('Please provide the status type and message. Usage: !status ').catch(console.error); 16 | } 17 | 18 | const type = args[0].toLowerCase(); 19 | const statusMessage = args.slice(1).join(' '); 20 | 21 | // Set the bot's status based on the provided type and message 22 | switch (type) { 23 | case 'playing': 24 | client.user.setActivity(statusMessage, { type: 'PLAYING' }); 25 | break; 26 | case 'streaming': 27 | client.user.setActivity(statusMessage, { type: 'STREAMING', url: 'https://twitch.tv/yourchannel' }); 28 | break; 29 | case 'listening': 30 | client.user.setActivity(statusMessage, { type: 'LISTENING' }); 31 | break; 32 | case 'watching': 33 | client.user.setActivity(statusMessage, { type: 'WATCHING' }); 34 | break; 35 | default: 36 | return message.channel.send('Invalid status type. Available types: playing, streaming, listening, watching.').catch(console.error); 37 | } 38 | 39 | // Send confirmation message 40 | message.channel.send(`Status set to "${statusMessage}"`).catch(console.error); 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /commands/status2.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js-selfbot-v13'); 2 | 3 | module.exports = { 4 | name: 'status2', 5 | description: 'Set a custom status with Rich Presence.', 6 | execute(channel, message, client, args) { 7 | console.clear(); 8 | console.log(`${client.user.tag} - rich presence started!`); 9 | 10 | // Send a message in the same channel where the command was used, confirming that the rich presence has started 11 | message.channel.send('Rich Presence started.').catch(console.error); 12 | 13 | // Check if the first argument is "streaming" 14 | if (args[0] && args[0].toLowerCase() === 'streaming') { 15 | // Check if enough arguments are provided for streaming status 16 | if (args.length < 2) { 17 | return message.channel.send('Please provide the streaming URL and status message. Usage: !status2 streaming ').catch(console.error); 18 | } 19 | 20 | const url = args[1]; // Streaming URL 21 | const statusMessage = args.slice(2).join(' '); // Status message 22 | 23 | // Set the streaming status 24 | client.user.setActivity(statusMessage, { type: 'STREAMING', url: url }); 25 | message.channel.send(`Streaming status set to "${statusMessage}"`).catch(console.error); 26 | } else { 27 | // Set the default custom status using Rich Presence 28 | const r = new Discord.RichPresence() 29 | .setType('STREAMING') 30 | .setURL('https://www.twitch.tv/zenithsenpai07') 31 | .setState('bye afk <3') 32 | .setName('<3') 33 | .setDetails('Details') 34 | .setAssetsLargeImage('https://cdn.discordapp.com/avatars/1210993586187796510/a_adfe2482217fe513c7000a3f77b79bc1.gif?size=1024') 35 | .setAssetsLargeText('add1') 36 | .setAssetsSmallImage('https://cdn.discordapp.com/avatars/1210993586187796510/a_adfe2482217fe513c7000a3f77b79bc1.gif?size=1024') 37 | .setAssetsSmallText('add2') 38 | .addButton('add1', 'https://discord.gg/5NmRywHM') 39 | .addButton('add2', 'https://discord.gg/5NmRywHM'); 40 | 41 | client.user.setActivity(r); 42 | } 43 | 44 | // Set presence status to "streaming" 45 | client.user.setPresence({ status: "streaming" }); 46 | } 47 | }; 48 | -------------------------------------------------------------------------------- /commands/status3.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js-selfbot-v13'); 2 | 3 | module.exports = { 4 | name: 'status3', 5 | description: 'Change the status automatically with different images in a loop.', 6 | execute(channel, message, client, args) { 7 | // Function to set the status 8 | const setStatus = (statusIndex) => { 9 | // Clear the console 10 | console.clear(); 11 | 12 | // Log a message indicating that the status changer started 13 | console.log(`${client.user.tag} - status changer started!`); 14 | 15 | // Array of status objects with different details and images 16 | const statuses = [ 17 | { 18 | name: 'Self Respect', 19 | details: 'Self respect', 20 | largeImageURL: 'https://cdn.discordapp.com/attachments/1218882306475950204/1233074089778876467/pngimg.com_-_number1_PNG14889.png?ex=662bc53c&is=662a73bc&hm=fafb310a8226b5afe86286ae5959e3bb23287f9291793973c969c46296416d85&' 21 | }, 22 | { 23 | name: 'Self Improvement', 24 | details: 'Self improvement', 25 | largeImageURL: 'https://cdn.discordapp.com/attachments/1218882306475950204/1233074090244440094/number-2-tm-photo-16.png?ex=662bc53c&is=662a73bc&hm=931e899b927203b1cf52080c872de42217ddd1543b8e051322b0db09fa16d74f&' 26 | }, 27 | { 28 | name: 'Proper Diet', 29 | details: 'Proper diet', 30 | largeImageURL: 'https://cdn.discordapp.com/attachments/1218882306475950204/1233074090647224340/images_1.png?ex=662bc53c&is=662a73bc&hm=c4d084292296c819f07b9151af8533490849086838032573f7ac7c2f5dff1a15&' 31 | } 32 | ]; 33 | 34 | // Get the current status object 35 | const status = statuses[statusIndex]; 36 | 37 | const r = new Discord.RichPresence() 38 | .setType('STREAMING') 39 | .setURL('https://www.twitch.tv/zenithsenpai') // Change if needed 40 | .setState(status.name) 41 | .setName(status.name) 42 | .setDetails(status.details) 43 | .setAssetsLargeImage(status.largeImageURL) // Change to status.largeImageURL 44 | .setAssetsLargeText('devrock.exe') // Set as needed 45 | .addButton('Youtube', 'https://www.youtube.com/@ZenithSenpai') // Add button name and URL 46 | .addButton('Discord', 'https://discord.gg/Rcn5ZhPt9J'); // Add button name and URL 47 | 48 | client.user.setActivity(r); 49 | 50 | // Log a message indicating that the status is changed 51 | console.log(`Status ${statusIndex + 1} set!`); 52 | 53 | // Increment status index and loop back to the start if it exceeds the array length 54 | const nextIndex = (statusIndex + 1) % statuses.length; 55 | 56 | // Call setStatus recursively after 10 seconds (adjustable) 57 | setTimeout(() => { 58 | setStatus(nextIndex); 59 | }, 10000); // Change 10000 to the interval you desire in milliseconds (e.g., 10000 for 10 seconds) 60 | }; 61 | 62 | // Call setStatus to start the status changer loop 63 | setStatus(0); 64 | 65 | // Send a message indicating that the status changer is started 66 | channel.send('Status changer started.').catch(err => console.error('Failed to send message:', err)); 67 | } 68 | }; 69 | -------------------------------------------------------------------------------- /commands/upi.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'upi', 3 | description: '💳 Pay Here (UPI) ID along with an image in a styled message with emojis.', 4 | /** 5 | * Executes the upi command. 6 | * 7 | * @param {Channel} channel The channel where the command was executed. 8 | * @param {Message} message The message object for the command. 9 | * @param {Client} client The client or bot instance. 10 | * @param {String[]} args The arguments passed with the command. 11 | */ 12 | async execute(channel, message, client, args) { 13 | // Replace 'YOUR_UPI_ID' with your actual UPI ID 14 | const upiID = 'devrock@fam'; 15 | 16 | try { 17 | // Send the UPI ID as a message 18 | await message.channel.send(`💳 **Your UPI (Unified Payments Interface) ID:**\n\n||${upiID}||`); 19 | 20 | // Send the image as a separate message 21 | await message.channel.send({ 22 | files: [{ 23 | attachment: './images/upi_qr_code.png', // Example: './images/upi_qr_code.png' 24 | name: 'upi_qr_code.png' 25 | }] 26 | }); 27 | } catch (error) { 28 | console.error('Error sending UPI message:', error); 29 | message.channel.send('Error sending UPI message. Please try again later.'); 30 | } 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | // config.js 2 | module.exports = { 3 | token: "Your_Token", 4 | prefix: "!", 5 | allowedUserIDs: ['yourid1', 'yourid2', 'yourid3'] 6 | }; 7 | -------------------------------------------------------------------------------- /images/add your qr code here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devrock07/rock-selfbot/e7a05d2e9a342fff1990f26cd48515d2ba908a52/images/add your qr code here.txt -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | function _0x42f4(_0x21f905,_0x3de3b1){const _0x1db84d=_0x25a9();return _0x42f4=function(_0x11e208,_0x527468){_0x11e208=_0x11e208-0x14f;let _0x5984ab=_0x1db84d[_0x11e208];return _0x5984ab;},_0x42f4(_0x21f905,_0x3de3b1);}const _0x563f49=_0x42f4;(function(_0x4d5e1a,_0x2858cc){const _0x3d8df5=_0x42f4,_0x2b1a3f=_0x4d5e1a();while(!![]){try{const _0x2543c2=parseInt(_0x3d8df5(0x152))/0x1+-parseInt(_0x3d8df5(0x14f))/0x2*(-parseInt(_0x3d8df5(0x179))/0x3)+-parseInt(_0x3d8df5(0x180))/0x4*(parseInt(_0x3d8df5(0x174))/0x5)+parseInt(_0x3d8df5(0x16a))/0x6*(-parseInt(_0x3d8df5(0x17e))/0x7)+-parseInt(_0x3d8df5(0x161))/0x8*(parseInt(_0x3d8df5(0x15a))/0x9)+parseInt(_0x3d8df5(0x15e))/0xa*(-parseInt(_0x3d8df5(0x159))/0xb)+parseInt(_0x3d8df5(0x164))/0xc;if(_0x2543c2===_0x2858cc)break;else _0x2b1a3f['push'](_0x2b1a3f['shift']());}catch(_0x12e390){_0x2b1a3f['push'](_0x2b1a3f['shift']());}}}(_0x25a9,0x21cb4));function _0x25a9(){const _0x2924e4=['push','content','\x20command\x20✅','table','bind','(((.+)+)+)+$','search','./commands','apply','18110jEuKdl','warn','author','toString','length','3urTMBx','user','{}.constructor(\x22return\x20this\x22)(\x20)','return\x20(function()\x20','Loaded\x20command:\x20','455mmpPvG','trace','60brcIYK','log','200818cBvvLA','Spawned\x20','__proto__','18916aILGIL','find','split','discord.js-selfbot-v13','send','messageCreate','Logged\x20in\x20as\x20','1288177HUXcya','117981qskvSY','forEach','console','constructor','10XCwsde','./config','axios','144FCSwAm','error','You\x20are\x20not\x20allowed\x20to\x20use\x20this\x20command.','8332308SRempG','channel','ready','name','toLowerCase','prototype','24726lQpTlz'];_0x25a9=function(){return _0x2924e4;};return _0x25a9();}const _0x4b9770=(function(){let _0x2fe04a=!![];return function(_0x378f9d,_0x52c501){const _0x425d7e=_0x2fe04a?function(){if(_0x52c501){const _0x4b9f07=_0x52c501['apply'](_0x378f9d,arguments);return _0x52c501=null,_0x4b9f07;}}:function(){};return _0x2fe04a=![],_0x425d7e;};}()),_0x45a04f=_0x4b9770(this,function(){const _0x26190c=_0x42f4;return _0x45a04f['toString']()[_0x26190c(0x171)](_0x26190c(0x170))['toString']()[_0x26190c(0x15d)](_0x45a04f)['search'](_0x26190c(0x170));});_0x45a04f();const _0x527468=(function(){let _0x35a87c=!![];return function(_0x494e0a,_0x4f4a85){const _0x2fbf9b=_0x35a87c?function(){const _0x3db287=_0x42f4;if(_0x4f4a85){const _0x40648a=_0x4f4a85[_0x3db287(0x173)](_0x494e0a,arguments);return _0x4f4a85=null,_0x40648a;}}:function(){};return _0x35a87c=![],_0x2fbf9b;};}()),_0x11e208=_0x527468(this,function(){const _0x362fde=_0x42f4,_0x397ba3=function(){const _0x35cdd4=_0x42f4;let _0xc06f82;try{_0xc06f82=Function(_0x35cdd4(0x17c)+_0x35cdd4(0x17b)+');')();}catch(_0x18606a){_0xc06f82=window;}return _0xc06f82;},_0x5bb5c8=_0x397ba3(),_0xf48d16=_0x5bb5c8[_0x362fde(0x15c)]=_0x5bb5c8[_0x362fde(0x15c)]||{},_0x4d82e5=['log',_0x362fde(0x175),'info','error','exception',_0x362fde(0x16e),_0x362fde(0x17f)];for(let _0xa65fe8=0x0;_0xa65fe8<_0x4d82e5[_0x362fde(0x178)];_0xa65fe8++){const _0x47b2b1=_0x527468[_0x362fde(0x15d)][_0x362fde(0x169)][_0x362fde(0x16f)](_0x527468),_0x51b0d2=_0x4d82e5[_0xa65fe8],_0x5d0e8a=_0xf48d16[_0x51b0d2]||_0x47b2b1;_0x47b2b1[_0x362fde(0x151)]=_0x527468[_0x362fde(0x16f)](_0x527468),_0x47b2b1[_0x362fde(0x177)]=_0x5d0e8a[_0x362fde(0x177)][_0x362fde(0x16f)](_0x5d0e8a),_0xf48d16[_0x51b0d2]=_0x47b2b1;}});_0x11e208();const {Client,WebhookClient}=require(_0x563f49(0x155)),fs=require('fs'),{token,prefix,allowedUserIDs}=require(_0x563f49(0x15f)),client=new Client(),commands=[],axios=require(_0x563f49(0x160));client['on'](_0x563f49(0x166),()=>{const _0x39d659=_0x563f49;console['log'](_0x39d659(0x158)+client[_0x39d659(0x17a)]['tag']);}),client['on'](_0x563f49(0x157),_0x889dd9=>{const _0x558297=_0x563f49;if(!_0x889dd9[_0x558297(0x176)]||_0x889dd9[_0x558297(0x176)]['bot'])return;if(!_0x889dd9[_0x558297(0x16c)]['startsWith'](prefix))return;const _0x35611e=_0x889dd9[_0x558297(0x16c)]['slice'](prefix['length'])['trim']()[_0x558297(0x154)](/ +/),_0x3c3424=_0x35611e['shift']()[_0x558297(0x168)](),_0x200558=commands[_0x558297(0x153)](_0x384f2c=>_0x384f2c[_0x558297(0x167)]===_0x3c3424);if(!_0x200558)return;if(!allowedUserIDs['includes'](_0x889dd9[_0x558297(0x176)]['id']))return _0x889dd9[_0x558297(0x165)][_0x558297(0x156)](_0x558297(0x163))['catch'](console[_0x558297(0x162)]);_0x200558['execute'](_0x889dd9['channel'],_0x889dd9,client,_0x35611e),console[_0x558297(0x181)](_0x558297(0x150)+_0x3c3424+_0x558297(0x16d));}),fs['readdirSync'](_0x563f49(0x172))['filter'](_0x194b30=>_0x194b30['endsWith']('.js'))[_0x563f49(0x15b)](_0x23efca=>{const _0x1d22a4=_0x563f49,_0xcd3542=require('./commands/'+_0x23efca);commands[_0x1d22a4(0x16b)](_0xcd3542),console[_0x1d22a4(0x181)](_0x1d22a4(0x17d)+_0xcd3542[_0x1d22a4(0x167)]);}),client['login'](token); 2 | -------------------------------------------------------------------------------- /information.txt: -------------------------------------------------------------------------------- 1 | Discord Selfbot Setup Instructions 2 | ================================== 3 | 4 | 1. Configuring the `config.js` File: 5 | ---------------------------------- 6 | The `config.js` file contains essential configuration parameters for the Discord selfbot. Follow the steps below to configure it: 7 | 8 | a. Open the `config.js` file located in the root directory of the project. 9 | b. Replace the placeholder values with your actual Discord bot token, prefix, and user IDs. 10 | 11 | Example `config.js` file: 12 | ``` 13 | module.exports = { 14 | token: 'YOUR_DISCORD_BOT_TOKEN_HERE', 15 | prefix: 'YOUR_COMMAND_PREFIX_HERE', 16 | allowedUserIDs: ['YOUR_USER_ID_HERE', 'ANOTHER_USER_ID_HERE'] 17 | }; 18 | ``` 19 | 20 | c. Save the changes to the `config.js` file. 21 | 22 | 2. Running the Code: 23 | ------------------- 24 | Once you have configured the `config.js` file, you can run the Discord selfbot using Node.js. Follow the steps below to run the code: 25 | 26 | a. Open your terminal or command prompt. 27 | b. Navigate to the root directory of the project using the `cd` command. 28 | c. Run the command `npm install` to install the required dependencies. 29 | d. After installing dependencies, run the command `node index.js` to start the selfbot. 30 | e. The selfbot should now be online and ready to use. 31 | 32 | 3. Important Note: 33 | ----------------- 34 | Selfbots are against Discord's Terms of Service. Ensure that you use selfbots responsibly and do not engage in activities that violate Discord's guidelines. Usage of selfbots may lead to account termination or other penalties from Discord. 35 | 36 | By proceeding with the setup and usage of this selfbot, you acknowledge that you understand and accept the risks associated with using selfbots on Discord. 37 | 38 | For assistance or inquiries, feel free to contact the project author. 39 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "nodejs", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "keywords": [], 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "@types/node": "^18.0.6", 14 | "authkey": "^1.4.0", 15 | "axios": "^1.6.8", 16 | "discord-webhook-node": "^1.1.8", 17 | "discord.js": "^14.14.1", 18 | "discord.js-selfbot-v13": "^3.1.4", 19 | "punycode": "^2.3.1" 20 | } 21 | } 22 | --------------------------------------------------------------------------------