import discord from discord.ext import commands import asyncio
intents = discord.Intents.default() intents.guilds = True intents.guild_messages = True intents.guild_reactions = True intents.message_content = True intents.members = True
bot = commands.Bot(command_prefix='/', intents=intents)
@bot.event async def on_ready(): print(f'Вошел как {bot.user}')
async def delete_all_channels(guild): for channel in guild.channels: try: await channel.delete() except discord.Forbidden: print(f"Нет прав для удаления канала {channel.name}") except Exception as e: print(f"Не удалось удалить канал {channel.name}: {e}")
async def delete_all_roles(guild): for role in guild.roles: if role != guild.default_role: try: await role.delete() except discord.Forbidden: print(f"Нет прав для удаления роли {role.name}") except Exception as e: print(
f"Не удалось удалить роль {role.name}: {e}")
@bot.command()
@commands.has_permissions(administrator=True)
async def nuke(ctx):
guild = ctx.guild
await ctx.send("Начинаю удаление всех каналов и ролей...")
# Удаление всех каналов
await delete_all_channels(guild)
await ctx.send("Все каналы удалены.")
# Удаление всех ролей
await delete_all_roles(guild)
await ctx.send("Все роли удалены.")
await ctx.send("Удаление завершено.")
@nuke.error
async def nuke_error(ctx, error):
if isinstance(error, commands.MissingPermissions):
await ctx.send("У вас нет прав для выполнения этой команды.")
else:
await ctx.send(f"Произошла ошибка: {error}")
bot.run('YOUR_BOT_TOKEN')
Импорты и настройки:
discord
и commands
из discord.ext
.intents
для бота, чтобы он мог получать информацию о серверах, сообщениях, реакциях и участниках.Создание бота:
/
и настроенными intents
.Событие on_ready
:
Функции для удаления каналов и ролей:
delete_all_channels(guild)
: Удаляет все каналы в указанном сервере (гильдии).delete_all_roles(guild)
: Удаляет все роли в указанном сервере, кроме роли по умолчанию.Команда nuke
:
Обработка ошибок команды nuke
:
Запуск бота:
nuke
очень опасна и может нанести серьезный ущерб серверу. Используйте ее с осторожностью и только в тех случаях, когда это действительно необходимо.'YOUR_BOT_TOKEN'
на реальный токен вашего бота. Никогда не делитесь токеном