disnake modal view

Require

Участник
Автор темы
63
1
почему когда открываю модальное окно и нажимаю submit бот пишет ошибка?
Python:
import disnake
from disnake.ext import commands
from disnake import TextInputStyle

class modal(disnake.ui.Modal):
  def __init__(self):
    components = [
      disnake.ui.TextInput(
        label="Предложение",
        placeholder="Введите предложение для сервера или бота",
        custom_id="sentences",
        style=TextInputStyle.short,
        max_length=200
      )
    ]
    super().__init__(title="Предложение для сервера или бота", components=components)

class sentences(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
       
    @commands.Cog.listener()
    async def on_ready(self):
        guild = self.bot.get_guild(...)  # Замените на ID вашего сервера
        channel = guild.get_channel(...)  # Замените на ID канала, где будете ставить реакцию
        view = disnake.ui.View()
        view.add_item(disnake.ui.Button(emoji="📨", style=disnake.ButtonStyle.blurple, custom_id="create"))
        embed = disnake.Embed(title="Предложение для сервера или бота", description="**Здесь вы можете отправить предложение для сервера или бота**\n**Нажмите на кнопку ниже, и в модальном окне напишите, что хотите предложить нашему серверу или боту**", color=0xfcfcfc)
        embed.add_field(name="**Примечание**", value="**Если ваше предложение нам не понравится, то вас не предупреждат об этом**", inline=False)
        embed.set_thumbnail(url="https://media.discordapp.net/attachments/1210442042086391839/1219165968635531264/006bc40bbc6f16d1f724409df7e7e098.jpg?ex=660a4fc9&is=65f7dac9&hm=8f62a37084947bd393aa340de6eb47a64fb8ef007b6c6ed582cb6fdfb947ed76&=&format=webp&width=602&height=602")
        embed.set_image(url="https://media.discordapp.net/attachments/1210442042086391839/1219166669742669904/4f1aa325c25974327016cfbe098b8637.jpg?ex=660a5071&is=65f7db71&hm=92fdc14ad94f487349d973bc7cb40310c100628229d06577965b6886903744f9&=&format=webp&width=703&height=396")
        embed.set_footer(text="В течении двух недель ваше предложение будет рассмотрено и возможно будет добавлено в бота или на сервер")
        await channel.send(embed=embed, view=view)
   
    @commands.Cog.listener()
    async def on_button_click(self, inter: disnake.MessageInteraction):
        if inter.data.custom_id == "create":
            await inter.response.send_modal(modal=modal())

    async def callback(self, inter: disnake.ModalInteraction) -> None:
      await inter.send("**Ваше предложение было отправлено, и будет рассмотрено в ближайшее время!**")
      channel = self.bot.get_channel(1218817686373404722)
      embed = disnake.Embed(title="Предложение для сервера или бота", description=f"Предложение от {inter.author.mention}", color=0x54b9f7)
      for key, value in inter.text_values.items():
        embed.add_field(name=key, value=value, inline=False)
        await channel.send(embed=embed)

def setup(bot):
    bot.add_cog(sentences(bot))
 

Require

Участник
Автор темы
63
1
Lua:
local activation = "test"        -- Любая команда в кавычках

local active = false

function toggleActivation()
    active = not active
    sampAddChatMessage(active and "Activated" or "Deactivated", -1)
end

function main()
    while not isSampAvailable() do
        wait(0)
    end

    sampAddChatMessage('[InsuranceCompany.{1c77ff}lua{FFFFFF}] Author: {1c77ff}CordHoldOn{FFFFFF} || Version: {1.2}', -1)

    -- Другие функции и регистрации команд остаются без изменений
    -- ...

    while true do
        wait(0)
        if active then
            -- когда переменная active равна true
            renderFontDrawText(my_font, 'Status: '..status, posXx, posYy, -1)
            -- Дальнейший код скрипта
        end
    end
end

sampRegisterChatCommand(activation, toggleActivation)
main()
сказочный *******
 
  • Bug
Реакции: .caterpillarteal$

Killezzo

Участник
28
15
Попробуй обработку исключения:

Python:
async def callback(self, """... disnake не шарю""") -> None:
    try:
        # code
    except Exception as e:
        await inter.response.send_message(f"Ошибка: {e}", ephemeral=True)

и ищи ответ по ошибке там компилятор должен ссылаться на ошибку в коде.
 

Require

Участник
Автор темы
63
1
Попробуй обработку исключения:

Python:
async def callback(self, """... disnake не шарю""") -> None:
    try:
        # code
    except Exception as e:
        await inter.response.send_message(f"Ошибка: {e}", ephemeral=True)

и ищи ответ по ошибке там компилятор должен ссылаться на ошибку в коде.
Уже разобрался