Помогите с кодом, чуть чуть его поменял и он перестал работать. В питоне разбираюсь плохо поэтому прошу
# -*- coding: utf-8 -*-
import disnake
from disnake.ext import commands
from disnake import TextInputStyle
TOKEN=''
bot = commands.Bot(
command_prefix='/',
sync_commands_debug=True
)
class RecruitementModal(disnake.ui.Modal):
def init(self, arg):
self.arg = arg # arg - это аргумент, который передается в конструкторе класса RecruitementSelect
components = [
disnake.ui.TextInput(label="Ваше имя айди и ранг", placeholder="Введите ваше имя и ранг", custom_id="name"),
disnake.ui.TextInput(label="С кем взаимодействуете", placeholder="Введите имя и айди работника ", custom_id="age"),
disnake.ui.TextInput(label="Причина", placeholder="Введите причину действия ", custom_id="age")
]
if self.arg == "moderator":
title = "Повышение сотрудника"
if self.arg == "eventsmod":
title = "понижение сотрудника"
if self.arg == "принятие сотрудника":
title = "принятие сотрдника во фракцию"
if self.arg == "увольнение сотрдника":
title = "Уволнение сотрудника из фракции"
if self.arg == "Выдача выговора":
title = "Выдача выговора сотруднику"
if self.arg == "Удаление выговора":
title = "удаление выговора сотруднику"
super().init(title=title, components=components, custom_id="recruitementModal")
async def callback(self, interaction: disnake.ModalInteraction) -> None:
name = interaction.text_values["name"]
age = interaction.text_values["age"]
embed = disnake.Embed(color=0x2F3136, title="Журнал обновлён!")
embed.description = f"{interaction.author.mention}, Вы успешно отредактировали журнал аудита! "
embed.set_thumbnail(url=interaction.author.display_avatar.url)
await interaction.response.send_message(embed=embed, ephemeral=True)
channel = interaction.guild.get_channel(1083668696460955718) # Вставить ID канала куда будут отправляться заявки
await channel.send(f"{name} {interaction.author.mention}Обновил кадровый аудит. {self.arg} {age}")
class RecruitementSelect(disnake.ui.Select):
def init(self):
options = [
disnake.SelectOption(label="Повышениe сотрудника", value="moderator", description=""),
disnake.SelectOption(label="Понижение сотрудника", value="eventsmod", description=""),
disnake.SelectOption(label="Принятие сотрдника во фракцию", value="принятие сотрудника", description=""),
disnake.SelectOption(label="Увольнение сотрудника из фракции", value="увольнение сотрдника", description=""),
disnake.SelectOption(label="⛔️Выдача варна сотрднику", value="+varn", description=""),
disnake.SelectOption(label="⛔️Снятие варна сотруднику", value="-varn", description=""),
disnake.SelectOption(label="⛔️Выдача предупреждения сотрднику", value="+pred", description=""),
disnake.SelectOption(label="⛔️Снятие предупреждения сотруднику", value="-pred", description=""),
]
super().init(
placeholder="выберите действие", options=options, min_values=0, max_values=1, custom_id="recruitement"
)
async def callback(self, interaction: disnake.MessageInteraction):
if not interaction.values:
await interaction.response.defer()
else:
await interaction.response.send_modal(RecruitementModal(interaction.values[0]))
class Recruitement(commands.Cog):
def init(self, bot):
self.bot = bot
self.persistents_views_added = False
@bot.slash_command()
async def recruit(self, ctx):
view = disnake.ui.View()
view.add_item(RecruitementSelect())
# Тут можно добавть эмбед с описанием ролей
await ctx.send('Выбери желаемое действие', view=view)
@commands.Cog.listener()
async def on_connect(self):
if self.persistents_views_added:
return
view = disnake.ui.View(timeout=None)
view.add_item(RecruitementSelect())
self.bot.add_view(view,
message_id='1096439296434655232') # Вставить ID сообщения, которое отправится после использования с команда !recruit
bot.run(TOKEN)
Ошибка:
Ignoring exception in slash command 'recruit':
Traceback (most recent call last):
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/ext/commands/slash_core.py", line 732, in invoke
await call_param_func(self.callback, inter, self.cog, **kwargs)
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/ext/commands/params.py", line 1022, in call_param_func
return await maybe_coroutine(safe_call, function, **kwargs)
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/utils.py", line 600, in maybe_coroutine
return await value
File "main.py", line 96, in recruit
await ctx.send('Выбери желаемое действие', view=view)
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/interactions/base.py", line 672, in send
await sender(
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/interactions/base.py", line 985, in send_message
await adapter.create_interaction_response(
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/webhook/async_.py", line 210, in request
raise HTTPException(response, data)
disnake.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In data.components.0.components.0.options: Must be between 1 and 25 in length.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/ext/commands/interaction_bot_base.py", line 1377, in process_application_commands
await app_command.invoke(interaction)
File "/home/runner/test/venv/lib/python3.10/site-packages/disnake/ext/commands/slash_core.py", line 741, in invoke
raise CommandInvokeError(exc) from exc
disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In data.components.0.components.0.options: Must be between 1 and 25 in length.