Ответы пользователя по тегу Боты
  • Как сделать блокировку SelectMenu после выбора?

    @VickR0mE Автор вопроса
    Немного переписал код и он стал работать так, как нужно было мне. Вот код, если кому то пригодится:
    import disnake
    from disnake.ext import commands
    
    class Dropdown(disnake.ui.View):
    	options = [
    		disnake.SelectOption(label="Команды администрации", value="staff", description="Команды для модераторов и администрации.", emoji=""),
    		disnake.SelectOption(label="Команды экономики", value="eco", description="Экономические команды.", emoji="<:cristall:1096788943770501141>"),
    		disnake.SelectOption(label="Команды развлечений", value="fun", description="Команды для веселья.", emoji=""),
    		disnake.SelectOption(label="Утилиты", value="utilits", description="Командs утилит.", emoji=""),
    	]
    
    	@disnake.ui.select(
    		placeholder="Categories",
    		min_values=0,
    		max_values=1,
    		options=options
    	)
    
    
    	async def callback(self, select, interaction):
    		for child in self.children:
    			if select.values[0] == "staff":
    				child.disabled = True
    				emb = disnake.Embed(
    		 			title = f" Команды администрации.",
    		 			description = f"`v!ban`\n`v!unban`\n`v!kick`\n`v!mute`\n`v!unmute`",
    		 			color = 0x5a00b3
    		 		)
    			if select.values[0] == "eco":
    				child.disabled = True
    				emb = disnake.Embed(
    		 			title = f"<:cristall:1096788943770501141> Команды экономики.",
    		 			description = f"**Команды с особыми правами:**\n`v!award`\n`v!take`\n`v!add-shop`\n`v!remove-shop`\n\n**Общедоступные команды:**\n`v!balance`\n`v!shop`\n`v!buy`\n`v!reputation`\n`v!unreputation`",
    		 			color = 0x5a00b3
    		 		)
    			if select.values[0] == "utilits":
    				child.disabled = True
    				emb = disnake.Embed(
    		 			title = f" Утилиты.",
    		 			description = f"`v!help`\n`v!leaderboard`",
    		 			color = 0x5a00b3
    		 		)
    		await interaction.response.edit_message(view = self, embed = emb)
    
    
    class Hi(commands.Cog):
    	def __init__(self, bot):
    		self.bot = bot
    
    
    	@commands.command()
    	async def help(self, ctx):
    		await ctx.send(f"Выберите категорию команд:", view=Dropdown())
    
    
    	@commands.Cog.listener()
    	async def on_ready(self):
    		print(f"Модуль {self.__class__.__name__} загружен...")
    
    
    def setup(bot):
    	bot.add_cog(Hi(bot))
    Ответ написан
    Комментировать