Ошибка взаимодействия Bot Discord на Disnake
Сгенерировал код в чат гпт и возникла ошибка, так работает там /request_update там эмбед присылается и селект меню, но выбрав один из вариантов в селект меню в ПК версии дискорда пишет ошибка взаимодействия, а с телефона просто отступ вниз. А должно открываться модальное окно.
Ошибка:
<string>:9: MessageContentPrefixWarning: Message Content intent is not enabled and a prefix is configured. This may cause limited functionality for prefix commands. If you want prefix commands, pass an intents object with message_content set to True. If you don't need any prefix functionality, consider using InteractionBot. Alternatively, set prefix to disnake.ext.commands.when_mentioned to silence this warning.
Сам код:
from disnake.ext import commands
intents = disnake.Intents.default()
intents.members = True
intents.messages = True
intents.guilds = True
bot = commands.Bot(command_prefix="!", intents=intents)
# Настройте ID роли и канала
MOD_CHANNEL_ID = 1287377897287454783 # Замените на ID вашего канала модераторов
FBI_ROLE_ID = 1287377431425978409 # Замените на ID роли Federal Bureau of Investigation
LSPD_ROLE_ID = 1287377432399052822 # Замените на ID роли LSPD
GROVE_ROLE_ID = 1287377459469357099 # Замените на ID роли Grove Street
VAGOS_ROLE_ID = 1287377461620904050 # Замените на ID роли Vagos Gang
@bot.slash_command(name="request_setup", description="[DEV] Создание выдачи ролей", default_member_permissions=disnake.Permissions(administrator=True))
async def request_setup(interaction: disnake.AppCmdInter):
embed = disnake.Embed(title="Здравствуйте", description="Тест", color=0x696969)
embed.set_footer(text="Команда по безопасности Discord сервера Arizona-Guard")
select_menu_gov = disnake.ui.Select(
placeholder="Выберите гос. структуру",
options=[
disnake.SelectOption(label="Federal Bureau of Investigation", value="fbi"),
disnake.SelectOption(label="LSPD", value="lspd")
]
)
select_menu_illegal = disnake.ui.Select(
placeholder="Выберите нелегальную организацию",
options=[
disnake.SelectOption(label="Grove Street", value="grove"),
disnake.SelectOption(label="Vagos Gang", value="vagos")
]
)
async def select_callback_gov(select, user):
await show_modal(interaction, select.values[0])
async def select_callback_illegal(select, user):
await show_modal(interaction, select.values[0])
select_menu_gov.callback = select_callback_gov
select_menu_illegal.callback = select_callback_illegal
view = disnake.ui.View()
view.add_item(select_menu_gov)
view.add_item(select_menu_illegal)
await interaction.response.send_message(embed=embed, view=view)
async def show_modal(interaction, role_value):
modal = disnake.ui.Modal(title="Запрос на роль", timeout=60)
nickname_input = disnake.ui.TextInput(label="Ваш никнейм", required=True)
position_input = disnake.ui.TextInput(label="Ваша должность (от 1 до 9)", required=True)
modal.add_item(nickname_input)
modal.add_item(position_input)
await interaction.response.send_modal(modal)
await modal.wait()
nickname = nickname_input.value
position = position_input.value
role_name = get_role_name(role_value)
user_nick = f"[{role_name}] Ник: {nickname} [Должность: {position}]"
channel = bot.get_channel(MOD_CHANNEL_ID)
embed = disnake.Embed(title="Тест", description=f"Пользователь {interaction.user.mention} отправил заявку на получение роли {role_name}.", color=0x696969)
embed.set_footer(text="Команда по безопасности Discord сервера Arizona-Guard")
message = await channel.send(embed=embed)
# Добавление кнопок к сообщению модераторов
view = disnake.ui.View()
view.add_item(disnake.ui.Button(label="✅", style=disnake.ButtonStyle.green, custom_id='approve'))
view.add_item(disnake.ui.Button(label="❌", style=disnake.ButtonStyle.red, custom_id='deny'))
view.add_item(disnake.ui.Button(label="?", style=disnake.ButtonStyle.blurt, custom_id='request_proof'))
await message.edit(view=view)
@bot.event
async def on_button_click(interaction):
role = None
if interaction.custom_id == 'approve':
if "fbi" in interaction.message.content:
role = interaction.guild.get_role(FBI_ROLE_ID)
elif "lspd" in interaction.message.content:
role = interaction.guild.get_role(LSPD_ROLE_ID)
elif "grove" in interaction.message.content:
role = interaction.guild.get_role(GROVE_ROLE_ID)
elif "vagos" in interaction.message.content:
role = interaction.guild.get_role(VAGOS_ROLE_ID)
await interaction.user.add_roles(role)
embed = disnake.Embed(title="Роль выдана", description=f"Модератор {interaction.user.mention} одобрил ваш запрос на получение роли {role.mention}.", color=0x696969)
await interaction.send(embed=embed, ephemeral=True)
elif interaction.custom_id == 'deny':
embed = disnake.Embed(title="Запрос отклонен", description=f"Модератор {interaction.user.mention} отклонил ваш запрос на получение роли.", color=0x696969)
await interaction.send(embed=embed, ephemeral=True)
elif interaction.custom_id == 'request_proof':
await interaction.user.send("Модератор запросил у вас доказательства, сделайте /stats + /time + screen в игре и отправьте модератору в личные сообщения.")
def get_role_name(role_value):
return {
"fbi": "Federal Bureau of Investigation",
"lspd": "LSPD",
"grove": "Grove Street",
"vagos": "Vagos Gang",
}.get(role_value)
bot.run('token') # Замените на ваш токен```
Не пишите такие сообщения как: добавь intents.message_content ну тип того, я добавлял и кароче в терминале ничего не пишет. А ошибка взаимодействия такая же. Прошу помогите.
----------