- 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))