Discord.py buton ekleme

Katılım
16 Temmuz 2021
Mesajlar
528
Çözümler
11
Yer
Ankara - Türkiye
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
Discord sunucum için bir bot yapıyorum fakat butonlar çalışmıyor. Birçok kaynaktan denedim fakat çalışmadı. Kodlarım ise şunlar;

Python:
class Menu(discord.ui.View):
    def __init__(self):
        super().__init__()
        self.value = None

    @discord.ui.button(label="Send Message", style=discord.ButtonStyle.grey)
    async def menu1(self, button: discord.ui.Button, interaction: discord.Interaction):
        await interaction.response.send_message("Hello you clicked me")


@Bot.command()
async def embed_with_buttons(ctx):
    view = Menu()
    embed = discord.Embed(colour=0xFF5733, title="Title", type="rich", url=None, description="description", timestamp=None)
    await ctx.send(embed=embed, view=view)

Çıktı ise şu şekilde;

button4.jpg


Aldığım hata ise;

await interaction.response.send_message("Hello you clicked me")
AttributeError: 'Button' object has no attribute 'response'


Hata yaptığım yeri bulmakta sıkıntı çekiyorum.

İmport'larım ise bunlar;

Python:
import discord
from discord.ext import commands
import time
from discord.ui import Button
from interactions import Button, ButtonStyle, SelectMenu, SelectOption
import interactions
 
import'larınızın yazımı bu şekildeyse hata almanız normal. :) Satırlar birbirine girmiş. Belki forumdan kaynaklıdır bilmiyorum. Siz yine de gözden geçirin.
 
Bildiğim kadarıyla yanlış yazmışsınız. :) Her birini şu şekilde düzeltip alt alta yazın ve deneyin. Uzun zamandır Python yazmadım, yanlış bilgi verdiysem bilen birileri düzeltecektir. Ama dediğim gib olması gerekiyor mantıken.

import discord from discord.ext
Hocam tam şekilde yazabilir misiniz? Kusura bakmayın biraz yeniyim bu konularda. Ayrıca benim bildiğim önce from gelmez miydi? Çünkü sizin yazdığınız gibi yaptığımda hata almaya başladım.
 
Hocam tam şekilde yazabilir misiniz? Kusura bakmayın biraz yeniyim bu konularda. Ayrıca benim bildiğim önce from gelmez miydi? Çünkü sizin yazdığınız gibi yaptığımda hata almaya başladım.
Resmi dökümanları takip ediyor musunuz? Önce kullanacağınız kütüphaneyi indirirsiniz sonra import edersiniz.

 
Sorun ilk başta embedi gönderirken ctx.send() ile gönderip butonun functionında interaction.response() kullanman. ctx.send kullandıktan sonra interaction.response kullanamazsın, ortada bir interaction yok.

Düzeltilmiş hali:

Python:
class Menu(discord.ui.View):
    def __init__(self, ctx):
        super().__init__(timeout=180) # 2 dakika timeout ekledim istersen silebilirsin
        self.value = None
        self.ctx = ctx

    @discord.ui.button(label="Send Message", style=discord.ButtonStyle.grey)
    async def menu1(self, button: discord.ui.Button, interaction: discord.Interaction):
        await self.ctx.send("Hello you clicked me")


    # timeout
    async def on_timeout(self):
        for child in self.children:
            child.disabled = True # bütün butonları kapatıyor

@Bot.command()
async def embed_with_buttons(ctx):
    embed = discord.Embed(colour=0xFF5733, title="Title", type="rich", url=None, description="description", timestamp=None)
    await ctx.send(embed=embed, view=Menu(ctx))
 
Bildiğim kadarıyla yanlış yazmışsınız. :) Her birini şu şekilde düzeltip alt alta yazın ve deneyin. Uzun zamandır Python yazmadım, yanlış bilgi verdiysem bilen birileri düzeltecektir. Ama dediğim gib olması gerekiyor mantıken.

import discord from discord.ext
Hayır, from discord.ext import discord olarak da yazılabilir. Ki öyle olması daha doğal.
 

Yeni konular

Geri
Yukarı