#Allgemeine Hilfe

1 messages · Page 22 of 1

obtuse estuary
#

nein, ein member closed das ticket und alle member die dann nicht mod etc sind sollen nicht mehr schreiben können

urban glen
#

Könnte mir mal anschauen wenn ich am Pc bin

mental hamlet
#
class CloseView(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(label="Schließen", style=discord.ButtonStyle.red, custom_id="close")
    async def button_callback1(self, button, interaction):
        embed7 = discord.Embed(
            title="**Ticket wurde geschlossen**",
            description=f"Das Ticket wurde von {interaction.user} geschlossen.",
            color=config.TRANPARENT
        )

        for role in interaction.guild.roles:
            if(not IGNORE_CLOSE.__contains__(role.id)):
                for member in role.members:
                   overwrite = discord.PermissionOverwrite()
                   overwrite.send_messages = False
                   overwrite.create_instant_invite = False
        await interaction.channel.set_permissions(member, overwrite=overwrite)
        await interaction.channel.send(embed=embed7)
        button.style = discord.ButtonStyle.green
        button.label = "Öffnen"
        await interaction.response.edit_message(view=self)
#

hier xD

#

ich ahb eif. das emb und send aus dem for loop gemacht

obtuse estuary
#

ja hatte schon hinbekommen aber danke

old ore
#

wieso wird der eine Button nicht angezeigt

solid ingot
#

sind die anderen buttons in derselben view klasse?

solid ingot
#

heißt ein callback gleich?

old ore
#

wait

#

ja

solid ingot
#

dann nenn ihn mal anders

mental hamlet
#

Callback darf niemals gleich hei.ne

old ore
#

Weiß jemdand wie man sich printen lassen kann wie lange der bot gebraucht hat um die COmmands zu laden

mental hamlet
mental hamlet
#

Nein docs lesen

#
  • try & error
urban glen
mental hamlet
#

Jo

urban glen
#

Bruder @solid ingot wie lange schreibst du? 8026patricklol

solid ingot
#

@urban glen @mental hamlet ich sag das mal ganz allgemein: es hilft niemandem weiter, wenn man bei irgendwelchen fragen "lern die basics" als antwort bekommt. sagt wenigstens, welche basics man für das problem braucht, zb "schau dir mal datetime.datetime an" oder sowas.

klar sollte man grundlegende python kenntnisse haben, aber sagt das in zukunft bitte freundlich und auch so, dass man was damit anfangen kann. die meisten leute, die hier fragen stellen, sind super nett, trauen sich dann aber weniger zu fragen, weil ihr immer so unhöflich seid. ihr müsst nicht jedem helfen, aber wenn ihr es tut, dann seid bitte nett peepohappy

solid ingot
#

schau dir am besten mal ein tutorial zu datetime und timedelta bei python an

old ore
solid ingot
#

naja, die commands werden ja automatisch geladen wenn der bot startet

old ore
urban glen
#

Ist jetzt am Handy gemacht, aber ungefähr so

#

@old ore

old ore
urban glen
#

Dabei kann ich dir grad nd helfen xD

Zumal ich nd weiß wie das in pycord/dpy is + ich grad auch nd googlen kann xD

urban glen
old ore
old ore
urban glen
#

Um die zeit zu bekommen, wie lang das gedauert hat?

urban glen
mental hamlet
#

bot.sync_commands() # slash cmds synchronisieren

old ore
old ore
tawdry leaf
#

Einfach so😂

tawdry leaf
mental hamlet
tawdry leaf
#

Prefix commands 🙄

solid ingot
mental hamlet
#

Aso bei prefix mds geht das gar ned

old ore
mental hamlet
#

Da das msg Events sind

tawdry leaf
old ore
tawdry leaf
#

Und doch organizer hat welche und global bot auch 😂

tawdry leaf
solid ingot
tawdry leaf
#

Es hat hier keiner was mit czz zu tun

#

😂

#

Das ist Werbung für anderen Server 🫣

solid ingot
old ore
mental hamlet
tawdry leaf
mental hamlet
tawdry leaf
#

#

War

mental hamlet
#

Egal glaub das ist der falsche Kanal xD

#

#💬・chat

tawdry leaf
#

Ich glaube auch

tawdry leaf
mental hamlet
#

Und @old ore musst die difference bei cog laden gerechnet

#

Dann haste deine Ladezeit

old ore
#

jap funktoniert. Danke

mental hamlet
tawdry leaf
thick haven
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @thick haven, du bist jetzt Level 12 🎉

Du hast insgesamt 469 Nachrichten geschrieben.

tawdry leaf
#

GG

green cobalt
#

welche musik Bibliothek würdet ihr für einen Musik bot verwenden?

mental hamlet
#

wavelink

green cobalt
#

danke

old ore
#

kann ich auch durch ein dictonary eine for schleife machen

solid ingot
#

ja

urban glen
green cobalt
urban glen
#

Spotify aber auch nicht! Wird auch von youtube gestreamt

green cobalt
#

Ok danke

#

Ich werd’s probieren 😀

mental hamlet
#

soundcloud musik aber 💩

urban glen
green cobalt
#

ja bin zu dumm dafür

urban glen
obtuse estuary
#

Jo kann mir jemand sagen wie der Bot Text channel in kategorien moven kann

solid ingot
#

mit channel.edit

#

da kannst du dann die kategorie in den klammern setzen

obtuse estuary
#

ah oki danke

tawdry leaf
urban glen
#

Wenn mans da per spotify macht wirds trzdm vom yt gestreamt

tawdry leaf
#

ja da wird doch fast alles davon gestreamt

urban glen
tawdry leaf
urban glen
#

Oder man streamt radio weird

tawdry leaf
#

illovemusic

urban glen
#

xD

graceful steppe
#

wie mache ich einen Followup button/Modal. Also der user klickt einen Button und bekommt ein Modal zum ausfüllen

urban glen
graceful steppe
#

ah wow danke is ja nicht so schwer haha

urban glen
#

xD

tawdry leaf
urban glen
#

Docs >>>>>>>

tawdry leaf
urban glen
graceful steppe
#

Ja würde gerne Doc nutzen aber in dem fall finde ich nicht was ich als response alles verwenden kann

#

wie sähe in dem fall die suche in den docs aus?

manic tusk
#

Wie kann man in VSCode Cogs machen?

graceful steppe
#

ich weiß das die interaction ein attribut response hat aber wie dieses response wiederum aussieht finde ich einfach iwie nicht

graceful steppe
manic tusk
graceful steppe
#

normalerweise hast du auf deiner linken Seite deinen Dateienbaum

urban glen
solid ingot
# graceful steppe ich weiß das die interaction ein attribut response hat aber wie dieses response ...

in dem fall ist das ein wenig kompliziert. wenn man weiß, dass interaction.response vom typ InteractionResponse ist, kann man in den Docs alle methoden davon sehen: https://docs.pycord.dev/en/stable/api/models.html#discord.InteractionResponse

urban glen
#

Und fertig

#

Also hat nix damit zutun ob du pycharm oder vscode nutzt

graceful steppe
urban glen
# manic tusk

Bilde ich mir das ein oder ist dein bot.run im on_ready?

burnt prairieBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

Links aus diesem Video
Pycord Docs ► https://docs.pycord.dev/en/stable/

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Serve...

▶ Play video
graceful steppe
#

wenn du das oberste icon links anklickst solltest du deine Dateien sehen

graceful steppe
manic tusk
urban glen
urban glen
solid ingot
urban glen
manic tusk
urban glen
#

Vorallem stellst du fragen, die durch googlen am schnellsten beantwortet werden, dir wurden gestern auf 3 Servern nh ansage gemacht

urban glen
manic tusk
# urban glen Ja?

Bin zu dumm kannst du ein kleines Video machen 20 Sekunden wo du zeigs wie man in VSC ein Cog erstellt bitte

urban glen
#

Hoff ich

#

Wo is die versteckte kamera?

graceful steppe
#

wenn ich ein modal sende bekomme ich ja wieder eine interaction zurück könnte ich danach wieder einen response senden? Oder brauche ich dann den followup wieder?

solid ingot
#

ja, aber nicht 2 modals hintereinander

urban glen
#

._.

tawdry leaf
#

How to create a cog without pycharm xD

urban glen
tawdry leaf
urban glen
#

Wie soll man das nur verstehen wenn man nicht programmieren kann

graceful steppe
#

kann ich bei Modals festlegen was der user eingeben kann so das schon das modal selbst falsche eingaben verweigert oder geht das nur über eine Antwort das seine Eingabe falsch war?

solid ingot
#

leider kannst du nur die anzahl der zeichen bestimmen

graceful steppe
#

ok danke

manic tusk
#

Was das? Error Traceback (most recent call last): File "c:\Users\King Silvio\Desktop\SILVIO\Discord\Elite Bot\Elite.py", line 17, in <module> for filename in os.listdir("cogs"): ^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 3] Das System kann den angegebenen Pfad nicht finden: 'cogs'

#

Code ```py

import discord
import os
from dotenv import load_dotenv
intents = discord.Intents.default()
intents.members = True

bot = discord.Bot(
intents=intents,
debug_guilds=[1070015111835684894]
)

@bot.event
async def on_ready():
print(f'{bot.user} ist online')
if name == "main":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs{filename[:-3]}")
load_dotenv()
bot.run(os.getenv("TOKEN"))```

urban glen
#

Kannst du deutsch?

#

Es steht im Error sogar auf Deutsch

#

Das System kann den angegebenen Pfad nicht finden: 'cogs'

manic tusk
urban glen
#

Python Basics

manic tusk
urban glen
manic tusk
urban glen
#

Boah ne @solid ingot mir egal was du sagst, dem helf ich nd

#

Bis dann

solid ingot
#

wie gesagt, du musst nicht jedem helfen, nur wenn du hilfst dann freundlich peepokay

solid ingot
#

an deiner stelle würde ich erstmal verstehen, wie die ordnerstruktur in deinem projekt aufgebaut ist und wie man die pfade richtig spezifiziert

manic tusk
#

Darf ich Fragen wie sie es meinen?

old ore
#

wie kann ich den console print eine farbe geben

green cobalt
#

wozu gibt es help?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @green cobalt, du bist jetzt Level 5 🎉

Du hast insgesamt 69 Nachrichten geschrieben.

Du hast <@&1024276691205496872> erhalten!

solid ingot
solid ingot
manic tusk
green cobalt
solid ingot
#

dazu ist der kanal ja auch da

green cobalt
#

ups dachte wir wären in #💬・chat sorry mein fehler

solid ingot
urban glen
#

nein?

manic tusk
#

Was jz?

urban glen
manic tusk
#

Code ```py

import discord
import os
from dotenv import load_dotenv
intents = discord.Intents.default()
intents.members = True

bot = discord.Bot(
intents=intents,
debug_guilds=[1070015111835684894]
)

@bot.event
async def on_ready():
print(f'{bot.user} ist online')
if name == "main":
for filename in os.listdir("cogs"):
if filename.endswith(".py"):
bot.load_extension(f"cogs{filename[:-3]}")
load_dotenv()
bot.run(os.getenv("TOKEN"))```

urban glen
#

Probier mal ./cogs

manic tusk
# urban glen Probier mal `./cogs`

JETZT DAS? py File "c:\Users\King Silvio\Desktop\SILVIO\Discord\Elite Bot\Elite.py", line 19, in <module> bot.load_extension(f"cogs{filename[:-3]}") File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 931, in load_extension raise final_out discord.errors.ExtensionNotFound: Extension 'cogswillkommen' could not be found

solid ingot
#

da fehlt ein punkt

urban glen
manic tusk
# urban glen ```py bot.load_extension(f"cogs.{filename[:-3]}") ```
 File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 780, in _load_from_module_spec
    setup = getattr(lib, "setup")
            ^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'cogs.willkommen' has no attribute 'setup'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\King Silvio\Desktop\SILVIO\Discord\Elite Bot\Elite.py", line 19, in <module>
    bot.load_extension(f"cogs.{filename[:-3]}")
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 910, in load_extension
    self._load_from_module_spec(spec, name)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 783, in _load_from_module_spec
    raise errors.NoEntryPointError(key)
discord.errors.NoEntryPointError: Extension 'cogs.willkommen' has no 'setup' function```
manic tusk
urban glen
#

Das ist das problem

manic tusk
#

da war vorher was drin...

tawdry leaf
#

wo ist es hin

urban glen
manic tusk
# urban glen Despawned
import discord
from discord.ext import commands
from discord.commands import slash_command


class willkommen(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
   
def setup(bot):
    bot.add_cog(willkommen(bot))```
urban glen
manic tusk
urban glen
#

Und jetzt führ die main datei nochmal aus

manic tusk
# urban glen Und jetzt führ die main datei nochmal aus
    bot.run(os.getenv("TOKEN"))
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 717, in run
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 696, in runner
    await self.start(*args, **kwargs)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 659, in start
    await self.login(token)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 509, in login
    raise TypeError(
TypeError: token must be of type str, not NoneType```
urban glen
#

Es kann doch nd angehen, dass du errors schickst ohne sie zu lesen

urban glen
#

Error ist error

#

Ließ den doch auch mal

manic tusk
#

Hab ich mich verschrieben?

urban glen
manic tusk
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @manic tusk, du bist jetzt Level 7 🎉

Du hast insgesamt 169 Nachrichten geschrieben.

urban glen
#
token must be of type str, not NoneType
manic tusk
urban glen
#

Musst deinen Token zu einem String machen

manic tusk
#

ok

tawdry leaf
#

hoffe mal du weißt wie des geht

manic tusk
tawdry leaf
#

probieren 🙂

manic tusk
#

geht nd

urban glen
tawdry leaf
#

😮

urban glen
#

Bei dir kann man viel unerwartetes passieren

manic tusk
#

Ich habe eine .env erstellt und TOKEN "meinen token"

hallow kite
#

wie liest du die env ein?

tawdry leaf
#

ne

tawdry leaf
urban glen
urban glen
tawdry leaf
#

ohne die geht es 🙂

urban glen
#

Komisch das ich es mit ".." habe und alles einwandfrei funktionieert

tawdry leaf
#

bei mir ohne geht es auch supi

hallow kite
#

das stimmt in der env ohne " " geht es 😄
mache auch ohne

tawdry leaf
#

true

urban glen
#

@manic tusk printe doch mal deinen Token

manic tusk
tawdry leaf
#

ohne

#

immernoch 😮

#

TOKEN = TOKENHIERREIN

urban glen
tawdry leaf
#

fertig

#

oder mach es einf wie ich es schreibe 🙂

manic tusk
urban glen
#

Was?

tawdry leaf
#

das klingt interresant

urban glen
#

Schwäbisch oder was?

manic tusk
#

sry wenn ich das jz frag ich printe ich das zu einer datei zu der anderen

manic tusk
urban glen
#

Du holst es dir doch mit der dotenv lib in die elite.py und da printest du es einf

hallow kite
#

du musst dafür nicht von einer datei zur anderen. einfach in der elite.py printen 😄

urban glen
#
print(os.getenv("TOKEN"))
tawdry leaf
#

wieso so umständlich 😄

manic tusk
#
 File "c:\Users\King Silvio\Desktop\SILVIO\Discord\Elite Bot\Elite.py", line 24, in <module>
    bot.run(os.getenv("TOKEN"))
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 717, in run
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 696, in runner
    await self.start(*args, **kwargs)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 659, in start
    await self.login(token)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 509, in login
    raise TypeError(
TypeError: token must be of type str, not NoneTy```
urban glen
manic tusk
urban glen
#

Zeig mal wo du es im Code printest

manic tusk
#

bei der print

#

oben

hallow kite
#

lädst du env richtig ein?

load_dotenv()
bot.run(os.getenv("TOKEN"))
manic tusk
#

ja

hallow kite
#
load_dotenv()
print(os.getenv("TOKEN"))

probier das mal ohne bot.run

manic tusk
#

jz kommt None

hallow kite
#

os hast du importiert, oder?

manic tusk
#

in der main ja

hallow kite
#

und die " " sind in der env weg?

manic tusk
#

ja

hallow kite
# manic tusk ja

kannst du deine main-datei mal ganz schicken?
hört sich eig alles richtig an

manic tusk
# hallow kite kannst du deine main-datei mal ganz schicken? hört sich eig alles richtig an

import discord
import os
from dotenv import load_dotenv
intents = discord.Intents.default()
intents.members = True

bot = discord.Bot(
    intents=intents,
    debug_guilds=[1070015111835684894]
)


@bot.event
async def on_ready():
    print(f'{bot.user} ist online')
       

if __name__ == "__main__":
 for filename in os.listdir('./cogs'):
    if filename.endswith(".py"):
     bot.load_extension(f"cogs.{filename[:-3]}")


load_dotenv()
print(os.getenv("TOKEN"))```
manic tusk
#

oder kann die auch ein anderen namen haben?

hallow kite
#

die kann auch anders heißen 😄

manic tusk
#

ok

hallow kite
#

hm ... ne das passt alles. Die heißt bei dir "elite.py" und liegt im selben Ordner wie die env, oder?

manic tusk
#

ja

#

soll ich dir mal den Ordner schicken?

hallow kite
#

ne alles gut - wir haben ja hier quasi schon alles und ich denke du weißt wie man dateien zusammen ablegt 😄

Ich muss mal drüber nachdenken, was noch nicht passen könnte. Aber ich seh erstmal keinen Fehler leider.

manic tusk
#

ok

hallow kite
#

wenn du deinen Token in der main datei angibst funktioniert es?
also einfach mit

bot.run("TOKEN")
old ore
#

warum findet er den cmd nicht

solid ingot
#

ich würde slash commands empfehlen

#

ah, das @ vor bot.command() fehlt

graceful steppe
#

packe ich die Klassen für meine Butten Selects und und un d auch in cogs oder am besten nen neuen Ordner so des guten Stils wegen?

solid ingot
#

die kannst du auch in die cog-datei packen, wenn es zu lang wird würde ich dafür aber eine eigene datei erstellen

graceful steppe
#

es geht um die Dateien weil in dem File mit den Commands ist schon chaos das ich jetzt gerne auslagern würde

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @graceful steppe, du bist jetzt Level 4 🎉

Du hast insgesamt 43 Nachrichten geschrieben.

mental hamlet
mental hamlet
#

Und dann geht weiter wie sonst

#

from deine.Datei. Import DeineKlasse

graceful steppe
#

gerade meckert er über irgend einen fehlenden setup?

#

brauch ich die auch wenns in dem file nur views gibt und keine slash_commands an sich

#

Also habe gerade den code neu in meinem Projekt:

#
import discord,json

options = []
date = ""
name = ""

with open("balls.json") as balls:
    data = json.load(balls)
    for ball in data.get("balls"):
        date = ball.get("date")
        name = ball.get("name")
        options.append(discord.SelectOption(label=f"{date} - {name}"))


class BallsSelectionView(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.select(
        min_values=1,
        max_values=1,
        placeholder="Wähle Ball zum editieren",
        options=options
    )
    async def select_ball_callback(self, select, interaction):
        await interaction.response.send_message("Hey")
#

und jetzt schmeißt er den error: discord.errors.NoEntryPointError: Extension 'cogs.selections' has no 'setup' function.

tawdry leaf
#

def setup 🤔

graceful steppe
#

Ja das date und name außerhalb der klasse kommt noch weg

#

einfach in der klasse?

#

und was rein 😅

#

So Fehler gefunden 💪. Eig recht einfach und logisch, ich lade ja alle cogs in die main und habe dazu ja den Ordner angegeben dessen Inhalt also jedes file über die setup Methode geladen werden soll und das wirft dann natürlich einen error. Also einfach neuer Ordner für Views und schon ist das Problem behoben.

urban glen
#

Hallo wie mache ich das ich einen button nur für den author einer nachricht die rechte gebe den button zu klicken?

graceful steppe
#

@command_has_permission

#

unter @slash_command

urban glen
#

nicht der command

graceful steppe
#

setze ihn ephemeral=True

urban glen
#

z.b.w es kommt ein button denn ich rein gemacht habe und nur das ich den klicken kann und bei dir nicht

urban glen
graceful steppe
#

oder soll er für alle sichtbar bleiben?

urban glen
#

ja

solid ingot
mystic flower
#

Würde ich sagen

mystic flower
#

if interaction.user.id == deineid:

solid ingot
mystic flower
urban glen
#

*interaction

solid ingot
#

den müsstest du dann wie im video an die button klasse übergeben

lucid furnace
#

Hallo, ich frag mich gerade: was für commands (simple) ich adden könnte, habt ihr ideen

solid ingot
#

du könntest ein paar moderation commands (kick, ban, clear, warn) oder fun commands machen (8ball etc)

tawdry leaf
#

jo

hallow kite
manic tusk
limpid wolf
#

ich bin mir grade nicht sicher wie das hieß aber es müsste python-dotenv sein

tawdry leaf
#

Einf Timo sein Video schauen danke sowas braucht man hier nicht besprechen

manic tusk
#

Geht trotzdem nd

snow hatch
#

Warum spuckt er mir die fehlermeldung beim herunterladen von pjcord an?

snow hatch
#

ja aber der command ist von pycord auf der website

#

also kann der nicht falsch sein

#

und er sagt pip ist falsch

#

irgendwie spuckt mir pjcharm das raus egal was ich eingebe

#

egal hat sich erledigt

urban glen
manic tusk
manic tusk
tawdry leaf
#

Einf alles nochmal von neu machen 😁

manic tusk
#

Immer die gleichen Errors

tawdry leaf
#

Was hast du denn nun an Code

#

Können des Spätabend im Talk mal anschauen

mental hamlet
#

Regelverstoß peeposhy

tawdry leaf
#

👀

mystic flower
#
Ignoring exception in view <FeedbackView timeout=None children=2> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='Feedback' emoji=None row=None>:
Traceback (most recent call last):
  File "C:\Users\pogod\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "D:\Koevy\cogs\feedback.py", line 56, in feedback
    await self.ctx.send_modal(FeedbackModal(title="Feedback"))
  File "C:\Users\pogod\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\interactions.py", line 1049, in send_modal
    raise InteractionResponded(self._parent)
discord.errors.InteractionResponded: This interaction has already been responded to before```
#
class FeedbackModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Feedback",
                placeholder="How was your experience ?",
                style=discord.InputTextStyle.short,
            ),
            discord.ui.InputText(
                label="Reason",
                placeholder="Why did you give this feedback ?",
                style=discord.InputTextStyle.long
            ),
            discord.ui.InputText(
                label="How many stars do you want to give ?",
                placeholder="How many stars do you want to give ? (1-5)",
                style=discord.InputTextStyle.short,
            ),
            *args,
            **kwargs
        )





class FeedbackView(discord.ui.View):
    def __init__(self, ctx):
        super().__init__(timeout=None)
        self.ctx = ctx

    @discord.ui.button(label="Feedback", style=discord.ButtonStyle.green)
    async def feedback(self, button, interaction: discord.Interaction):
        await self.ctx.send_modal(FeedbackModal(title="Feedback"))

    @discord.ui.button(label="Cancel", style=discord.ButtonStyle.red)
    async def cancel(self, button, interaction: discord.Interaction):
        await interaction.response.send_message("Cancelled", ephemeral=True)
        await self.message.delete()```
#

das ist das bis jetzt aber warum gibt er mir den error ?

solid ingot
#

interaction.response.send_modal

manic tusk
mystic flower
solid ingot
manic tusk
#

Das es nicht geht

solid ingot
#

naja, irgendwas hast du vlt falsch eingestellt, was genau der fehler ist können wir aber nur schwer nachvollziehen

#

wenn du mit VSC arbeiten willst, musst du lernen wie man es benutzt. ansonsten kannst du pycharm nutzen und es genau so machen wie in den tutorials

manic tusk
solid ingot
#

dann würde es funktionieren...

manic tusk
#

@tawdry leaf @hallow kite haben auch keine Ahnung und die sind gut in VSCode?

solid ingot
#

bitte nicht unnötig pingen.

tawdry leaf
#

chill mal

#

habe nd mal drüber geschaut

manic tusk
tawdry leaf
#

print macht es auch nicht xD

manic tusk
tawdry leaf
tawdry leaf
#

manic tusk
#

Beweise?

tawdry leaf
#

klar

#

schau dein code per dm an

manic tusk
tawdry leaf
#

nix und

manic tusk
#

Sag was ich machen

solid ingot
#

@manic tusk es würde dir nicht schaden etwas netter zu den leuten zu sein, die versuchen dir zu helfen

tawdry leaf
manic tusk
tawdry leaf
manic tusk
#

#

Welche ist leer?

tawdry leaf
#
import discord
from discord.ext import commands
from discord.commands import slash_command


class willkommen(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
   
def setup(bot):
    bot.add_cog(willkommen(bot))```
#

wo ist in der klasse was 🤔

manic tusk
#

Aber es muss doch auch so funktionieren

solid ingot
#

@manic tusk und noch ein tipp: wenn du mit leuten per DM schreibst, ist es schwer für andere leute auf dem server nachzuvollziehen, was du schon alles versucht hast oder wie dein aktueller code aussieht

manic tusk
hallow kite
tawdry leaf
#

des doppelte schreiben bringt auch nix xD

#

einf talk 🙂

manic tusk
tawdry leaf
#
import discord
import os
from dotenv import load_dotenv
intents = discord.Intents.default()
intents.members = True

bot = discord.Bot(
    intents=intents,
    debug_guilds=[1070015111835684894]
)


@bot.event
async def on_ready():
    print(f'{bot.user} ist online')
       

if __name__ == "__main__":
 for filename in os.listdir('cogs'):
    if filename.endswith(".py"):
     bot.load_extension(f"cogs.{filename[:-3]}")


load_dotenv()
bot.run(os.getenv("TOKEN"))```

@manic tusk probier den
manic tusk
#

Was hast du verändert?

tawdry leaf
#

./ und bot.run statt print

manic tusk
# tawdry leaf ./ und bot.run statt print

wie gestern py Traceback (most recent call last): File "c:\Users\King Silvio\Desktop\SILVIO\Discord\Elite Bot\Elite.py", line 19, in <module> for filename in os.listdir('cogs'): ^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 3] Das System kann den angegebenen Pfad nicht finden: 'cogs

tawdry leaf
#

ok

#

also

#

du hast einen ordner der cogs heißt?

manic tusk
#

ja

tawdry leaf
manic tusk
#

ja

tawdry leaf
manic tusk
tawdry leaf
#

zeig einfach am besten mal

manic tusk
tawdry leaf
manic tusk
#

Und jz?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @manic tusk, du bist jetzt Level 8 🎉

Du hast insgesamt 234 Nachrichten geschrieben.

tawdry leaf
#

schauste was jz kommt

solid ingot
#

vlt hast du dein working directory nicht richtig eingestellt

manic tusk
#

Ich hab es richtig einstellt wie es früher hieß bei jeden Tutorial .

tawdry leaf
#

wieso eig discord.Bot 🤔

manic tusk
tawdry leaf
#

hm naja nutze eh nicht pycord 😄

#

da ist manches anders 🙂

manic tusk
#

Okey

#

Aber was mach ich jz wegen meinem Bot?

tawdry leaf
#

schau dir einfach mal bisschen andere tutorials an und probiere mal 🙂

manic tusk
#

Kann aber nicht sein

brazen scarab
#

Wie man(ich, andere) es dir vor 3 Monaten bereits gesagt hat.
Vielleicht mal damit anfangen, die Basics lernen ...
Nicht irgendwas aus einem Tutorial rauskopieren und keine Ahnung haben was du tust ....

manic tusk
#

Kannst du mir ein gefallen @tawdry leaf

#

Wie fasse ich mein Problem zsm? Dann kann ich das auf einen anderen Fragen

brazen scarab
#

Welche IDE benutzt du?

#

🤦‍♂️

#

PyCharm, Visual Studio Code?

manic tusk
brazen scarab
#

Mach ma nen Screenshot von deinem Code, komplett. (Von der main.py)

manic tusk
brazen scarab
#

Drück einfach -- WIN + SHIFT + S und schneid den Code aus

manic tusk
#

Hab grad keine Möglichkeiten Screenshot zumachen

brazen scarab
#

Ist in deinem Code irgendwas unterstrichen?

manic tusk
#

Nein

brazen scarab
#

Dann hab ich keine Ahnung

manic tusk
#

Haben schon viele gesagt

tawdry leaf
#

Benutz wohl keiner pycord

snow hatch
#

Wie muss man link, z.b. im thumbnail von einem embed angeben, weil ich habe halt gemacht
embed.set_thumbnail(url=dieurlmeinesbildes)aber er sagt bei der url sein falsche sytaxe(die:) aber in den docs steht das auch so

hallow kite
#

Ich nutze pycord aber halt mit pycharm. Habe grade mal die Zeit genutzt und meine main in vsc gestartet - da bekomme ich dasselbe Problem.
Ich glaube du brauchst wsl ein extra package bei vsc.
Andere Option wäre den Token über eine json einzulesen oder du nutzt halt pycharm.
Mit vsc kenn ich mich zu wenig aus, das nutz ich nicht für python.

snow hatch
#

och...danke

hallow kite
#

gernöö 😊

manic tusk
#

@brazen scarab sry für den Ping aber kannst du mir helfen?

brazen scarab
#

foggy furnace
#
Ignoring exception in view <openticket timeout=180.0 children=1> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='Open Ticket' emoji=None row=None>:
Traceback (most recent call last):
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "F:\Koevy\cogs\ticket.py", line 42, in _openticket
    channel = await guild.create_text_channel(
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\guild.py", line 1263, in create_text_channel
    data = await self._create_channel(
  File "C:\Users\Patrick\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\guild.py", line 1142, in _create_channel
    "id": target.id,
AttributeError: 'NoneType' object has no attribute 'id'```
#
class openticket(discord.ui.View):
    def __init__(self, bot):
        super().__init__()
        self.value = None
        self.bot = bot

    @discord.ui.button(label="Open Ticket", style=discord.ButtonStyle.green)
    async def _openticket(self, button: discord.ui.Button, interaction: discord.Interaction):
        modrole = discord.utils.get(interaction.guild.roles, name="Moderator")
        guild = interaction.guild
        category = discord.utils.get(guild.categories, name="Texte")
        channel = await guild.create_text_channel(
            name=f"ticket-{interaction.user.name}",category=category,
        overwrites={
            interaction.guild.default_role: discord.PermissionOverwrite(read_messages=False, send_messages=False),
            interaction.guild.me: discord.PermissionOverwrite(read_messages=True, send_messages=True),
            interaction.user: discord.PermissionOverwrite(read_messages=True, send_messages=True),
            modrole: discord.PermissionOverwrite(read_messages=True, send_messages=True)
        })
        await interaction.response.send_message(f"Your Ticket will be Createt soon! ", ephemeral=True)
        await asyncio.sleep(1)
        await interaction.followup.send(f"Your Ticket is now Createt! {channel.mention}")
        await channel.send(f"Hello {interaction.user.mention}! Welcome to your Ticket! Please wait for a Moderator to help you!", view=close())

def setup(bot):
    bot.add_cog(Ticket(bot))```
solid ingot
#

lass dir die sachen mal alle ausprinten

#

ein wert ist auf none wahrscheinlich

foggy furnace
#

okay

#

schick mal den code

#

cog

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @foggy furnace, du bist jetzt Level 2 🎉

Du hast insgesamt 11 Nachrichten geschrieben.

Du hast <@&1042123300970696705> erhalten!

foggy furnace
foggy furnace
#

danke

solid ingot
foggy furnace
#

frage @solid ingot oder so ich muss grade was machen

solid ingot
#

lädst du dein cog?

mental hamlet
#

```py

urban glen
#
import discord
import os
from dotenv import load_dotenv


intents = discord.Intents.default()
intents.members = True

bot = discord.Bot(
    intents=intents)


@bot.event
async def on_ready():
    print(f"{bot.user} ist online")


@bot.event
async def on_ready():
    print('Logged in as {0.user}'.format(bot))



if __name__ == "__main__":
    for filename in os.listdir("cogs"):
        if filename.endswith(".py"):
            bot.load_extension(f"cogs.{filename[:-3]}")

    bot.run(os.getenv("TOKEN")

(Bei dem bot.run hab ich eigtl. das token eif darein gemacht is mir zu stressig mit den variablen aber das is jtzt der code von der main.oy)

#

Warum zwei mal on_ready()??

#

@urban glen

mental hamlet
#

und why .format

#

eher das untere

#

und du solltest verstehen was du machst

#

sonst bringt dir das nix

solid ingot
#

rechts neben deiner löschtaste

mystic flower
#

Aber warum machst du das also eine for schleife ?

#

Kannst doch machen if value in select.values[o]

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @opal fossil, du bist jetzt Level 5 🎉

Du hast insgesamt 66 Nachrichten geschrieben.

Du hast <@&1024276691205496872> erhalten!

urban glen
#

for value in select.values[0]

#

value ist die definition für jede einzige value

#

Für was?

#

*danke

#

Ihr Jugendlichen… im vergleich zu euch bin ich rentner

#

😂

#

Also das ich das erklären muss..

Das widerlegt halt das hier: #1081518516282331147 message

#

?

#

Da steht es doch

#

List index out of range

#

Du meintest vor drei tagen noch das Python Basics easy sind brown_cry

urban glen
#

Mit stickern rettest du dich nicht aus der Situation

#

Ich verabschiede mich dann mal

green cobalt
#

wie macht man einen gescheiten Musik Botß

indigo harbor
#

Was ist hier der Fehler

Was ist hier bei Easy Pil der fehler
Traceback (most recent call last):
File "E:\PyCharm Community Edition 2022.3.1\New Location\Scripts\Welcome.py", line 4, in <module>
class Image(commandsCog):
NameError: name 'commandsCog' is not defined

solid ingot
#

bitte die fragen nur einmal stellen, das ist jetzt schon das dritte mal

#

siehe #🔰・old-help-rules

indigo harbor
#

sorry

urban glen
#

@indigo harbor danke für den Ping eben in deinem Post 😂

limpid wolf
limpid wolf
# green cobalt wie macht man einen gescheiten Musik Botß

Für solche Fragen ist dieser Kanal eigentlich nicht gedacht. Wenn du sowas selber coden möchtest dann probier es doch erstmal aus, lies die Docs zu dem thema etc. Wenn du errors hast helfen wir hier gerne aber nicht bei so einer Frage. peepokay Sonst schau mal in #1027677692730036294

urban glen
#

Fertig

indigo harbor
#

Was ist hier der Fehler from . import hdrs as hdrs
ImportError: cannot import name 'hdrs' from partially initialized module 'aiohttp' (most likely due to a circular import) (E:\PyCharm Community Edition 2022.3.1\New Location\lib\site-packages\aiohttp__init__.py)

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @indigo harbor, du bist jetzt Level 4 🎉

Du hast insgesamt 41 Nachrichten geschrieben.

indigo harbor
#

Schicke ich später rein

snow hatch
#

Kann man (wie) eine variable als farbe nutzen bei discord.Color. damit ich in meinem befehel die farbe für das embed angeben kann

solid ingot
#

ja das geht, einfach ne variable mit der gewünschten Farbe erstellen

snow hatch
#

habe ich ja aber mir wird eine fehlermeldung ausgespuckt

#

warte sende meinen code

solid ingot
#

wenn du eine Fehlermeldung hast wäre es gut, die immer direkt zu senden, sonst wissen wir das ja nicht

snow hatch
#

dachte lege daran das ich es falsch mache

#

weil habe einfach ausporbiert, wusste nichts obs klappt

#

glaube habs gucke kurz

#

Also ich habe eine farbe auswählen halt auf none, und wenn es none bleibt soll die farbe blau sein, also habe ich geschrieben

#

if farbe is None: farbe = blue

urban glen
#

Bisschen mehr code wäre hilfreicher

snow hatch
#

habs

#

hab vergessen das als string zu machen

#

Ok andere frage:

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @snow hatch, du bist jetzt Level 8 🎉

Du hast insgesamt 198 Nachrichten geschrieben.

urban glen
#

😂

#

Aber wenn du code und error schickst, mach mal pls als screenshot

#

Bin am handy

snow hatch
#

color= discord.Color.farbe()
So habe ich das bei mir geschrieben, farbe ist die variablie mit der farbe

urban glen
#

ok

snow hatch
#

aber er sagt mir discord.color hat kein object farbe
Wie muss ich die variable da angeben?

urban glen
urban glen
snow hatch
#

aber ich will ja das der User dann eine farbe angeben kann

#

dann kann die varbiale ja nicht discord.Color. sein, sondern ich muss die farbe die der user eingib nehmen

#

Oder gibt es ein befehel mit dem man eine farbe von einem nutzer abfragen kann wie denn wo man einen textchannel abfragen kann?

urban glen
#

Zeig doch mal wie dein Code aufgebaut ist

snow hatch
urban glen
#

Machs doch mit nem dropdown wo man die farbe wählen kann

#

Und dann die farbe übergeben wird

snow hatch
#

kp wie das geht

#

ich habe oycord gestern das erstemal benutzt

#

und phyton kann ich nur die grundlagen

burnt prairieBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
hallow kite
#

schau dir das mal an 😄

snow hatch
#

ah ok danke

urban glen
#

Sondern das builtin von py-cord

#

Also discord.Color.irgendwas()

hallow kite
#

Hab das eher so verstanden, dass der Nutzer die Farbe angeben soll.
Aber klar, da würde ich ansonsten für den Anfang erstmal mit choices arbeiten, wenn es mit discord.color gemacht werden soll und dann eben einfach aus mehreren optionen auswälen lassen

hallow kite
#

meine das wird hier erklärt, aber nicht ganz sicher 😄

snow hatch
#

gucke nochmal danke, wollte halt einfach das der user für das embed die farbe eingeben kann

#

wollte eigentlich das man z.b. blue angibt, mache es aber einfach als hex code

manic tusk
#

Wie mache ich das in VSCode?
die working bzw. run directory muss der `Elite Bot` Ordner sein,

solid ingot
#

ich würde empfehlen, dass du dich informierst, wie dein editor funktioniert, bevor du anfängst zu coden. ich habe dir gestern schon genau dasselbe gesagt, aber da war deine antwort, dass du das alles schon richtig eingestellt hast.

urban glen
#

xD

manic tusk
#

Nur das

solid ingot
tawdry leaf
#

🤔

#

worum gehts

urban glen
safe tendon
#

neben dem namen glaub soll der link zum channel

urban glen
#

Glaube das es schon geklärt ist

manic tusk
tawdry leaf
manic tusk
#

Hab

old ore
#

wie kann man eine Besttimmte embedfarbe aus einer json datei als embed color verwenden

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @old ore, du bist jetzt Level 11 🎉

Du hast insgesamt 358 Nachrichten geschrieben.

karmic zephyr
#

Hey, weis jemand ob es eine Möglichkeit gilbt das aktuelle Datum einfach bei einer normalen Nachricht reinzuschicken so wie wenn du eine ID für Chanels angibst <#id>

tawdry leaf
karmic zephyr
#

Garnicht, nur im Normalen Chat

tawdry leaf
#

🤔

karmic zephyr
#

Wie wenn ich mit dir hier schriebe

tawdry leaf
#

das geht nicht

#

das wäre selfbotting

solid ingot
#

<t:1678206960:R>

tawdry leaf
#

ja das ist ja was anderes wie channel 😅

karmic zephyr
#

meine das es dann halt so steht

** NEWS VOM 03.03.2023 **

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @karmic zephyr, du bist jetzt Level 2 🎉

Du hast insgesamt 6 Nachrichten geschrieben.

Du hast <@&1042123300970696705> erhalten!

tawdry leaf
#

außer du schreibst es selber

solid ingot
#

das geht, du kannst folgende formate nutzen:

tawdry leaf
#

wenn dann geht es in timestamp

karmic zephyr
solid ingot
karmic zephyr
#

also so dann <t:1677861540:d>

tawdry leaf
#

ist immer unterschiedlicher code

karmic zephyr
#

gut

solid ingot
tawdry leaf
old ore
tawdry leaf
#

np

indigo harbor
#

Wer kann mir hierbei helfen? Die Datei "C:\Users\Can\PycharmProjects\Bot\venv\Scripts\activate.ps1" kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist. Weitere Informationen finden Sie unter "about_Execution_Policies"
(https:/go.microsoft.com/fwlink/?LinkID=135170).
+ CategoryInfo : Sicherheitsfehler: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess

tawdry leaf
#

würde sagen da hat jemand rum gepfutscht

indigo harbor
#

Wie was heißt das jetzt

tawdry leaf
#

da ist ein skript drauf das des system deaktiviert

indigo harbor
#

Aller und jetzt

urban glen
#

So beheben Sie „Ausgeführte Skripts sind auf diesem System deaktiviert“ in Powershell unter Windows 10 [Tutorial]

PowerShell-Befehl:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Mit Powershell-Skripten können Sie allgemeine Aufgaben unter Windows, Microsoft-Anwendungen und natürlich Office 365 automatisieren. Oft können Sie praktische S...

▶ Play video
#

Googlen hilft manchmal

tawdry leaf
#

code 🙂

mental hamlet
#

code && error

tawdry leaf
#

hmmmmm

#

was denn wohl

mental hamlet
#

bruh wieos for

tawdry leaf
#

for value in select.values[0]:
await interaction.response.send_message("AUSWAHL", ephemeral=True)
for value in select.values[1]:
await interaction.response.send_message("AUSWAHL2", ephemeral=True)

mental hamlet
#

for = schleife

tawdry leaf
#

sieht man xD

mental hamlet
#

dann siehst du das es 100% falsch ist

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @trail locust, du bist jetzt Level 23 🎉

Du hast insgesamt 2,138 Nachrichten geschrieben.

mental hamlet
snow hatch
#

moin in den docs steht man kann so etwas in einen bestimmten channel senden lassen
channel = client.get_channel
Er sagt mir aber client ist nicht defieniert

burnt prairieBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

Pycord
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
urban glen
#

Dann musst du client definieren

#

Zeig doch mal deinen Code

#

Oder wie du deinen bot definiert hast

snow hatch
#

` channel = client.get_channel(1071458513294999572)

await channel.send(embed = ideeembed)`

In den docs stand nicht davon das man client defienieren muss

urban glen
#

... = commands.Bot(..)
#

@snow hatch zeig mal wo/wie du deinen bot definiert hast

snow hatch
#

ich habe nirgends meinen bot definiert

#

was meinst du damit

urban glen
#

bruder lern bitte die Basics

snow hatch
#

achso

#

sorry falsch verstanden

#

bot = discord.Bot(intents=intents, debug_guilds=[960494618842136597])

#

so und dann bot.run (derkey)

urban glen
#

client.get_channel -> bot.get_channel

#

^

snow hatch
#

ok danke

tawdry leaf
tawdry leaf
urban glen
#

Also macht es schon nen unterschied

tawdry leaf
urban glen
#

er kann ja nd "client" nutzen ohne es irgendwo definiert zu haben

tawdry leaf
urban glen
tawdry leaf
#

war nicht der sinn dahinter

snow hatch
tawdry leaf
urban glen
#

Man sollte jedoch sowas verstehen

#

Definitionen gehören zu den Python Basics

snow hatch
urban glen
#

Kannst du deine Sätze mal korrekt formulieren?

snow hatch
#

Bei

#

Sorry ich bin müde

urban glen
#

Verstehe deinen Satz nicht ganz

snow hatch
#

Also ich lerne Pycord, habe keine Ahnung über die syntaxe, woher soll ich wissen ob Client eine Funktion ist wie z.b. discord.

urban glen
#

Python Basics

snow hatch
#

Wo ist da der zusammenhang

urban glen
#

Wie wo ist da der zusammenhang?

#

Kennst du den unterschied zwischen Python (Programmiersprache) und Pycord (Package [Bibliothek])?

snow hatch
#

Ja

#

Ich kenne die befehle die Pycord hat noch nicht
Deshalb dachte ich Client wäre ein normaler Befehl, da in den docs von Pycord der Code als Beispiel war, und da nicht stand das Client eine variable ist

urban glen
#

Naja, alles was du im code nutzt ist halt vorher definiert

#

dazu zählt auch sowas wie import discord
oder irgendwas = "hello"

#

Und wenn du nirgends client definierst, kannst du auch kein client anwenden

#

Hat nix mit pycord zutun

#

sondern mit Python allgemein

snow hatch
urban glen
#

und client war in dem fall halt nd definiert

#

._.

snow hatch
#

Ja genau, und ich dachte Client wäre auch schon von der library aus definiert

urban glen
#

Hattest du denn irgendwo client definiert?

urban glen
#

Hab lw, hat jemand nh aufgabe für mich? 😂

hallow kite
#

Steht sogar im Error - custom_id kannst du so nicht verwenden 😄

urban glen
#

Am besten solltest du es richtig verwenden

hallow kite
#

Deine ganze Klasse ist eine komische Mischung aus einer view klasse und einer selectklasse. Das kann so nicht funktionieren.

Die ID hast du den selectoptionen zugeordnet statt dem selectmenü.

Mehr kann ich auf die Schnelle nicht sagen, aber da hast du einiges vermischt und durcheinandergeworfen

limpid wolf
urban glen
#

Wo genau reagiert es nicht?

mental hamlet
#

...

#

ich habs dir jetzt wie oft gesagt?

#
  1. description = None useless
#
  1. value
#
  1. why ne for schleife
#

hast du dich schon mit python generell auseinandergesetzt?

#

also mit den Python basics

mental hamlet
#

mhm dann würdest du die mesiten deiner probleme verstehen

#
  • du würdest wissen das es google gibt
#

und du würdest verstehen was timo in seinen tutorials sagt

#

weil du kopierst sogar falsch ._.

#

doch fast 1zu1 aus timos tutorial

#

und wie man hier sieht ist da alles falsch

urban glen
#

Merkt man vna_2PepeMhm

mental hamlet
#

lern einfach mal die Python Grundlagen und öffne mal posts

#
#

du sagtest gerade noch du könntest das schon

#

Dann solltest du python nicht für einen solchen fortgeschrittenen Zweck nutzen. (bots)

urban glen
#

Das hat keiner gesagt

limpid wolf
#

nö sagt ja keiner

urban glen
#

Dir wird nur gesagt, du sollst erst die Python Basics lernen

mental hamlet
#

du solltest die Grundlagen lernen

limpid wolf
#

Lern halt erst Python Basics bevor du sowas versuchst

mental hamlet
#

und dann mit bots weiter machen

urban glen
#

Du hörst nur das, was du auch hören möchtest

#

Nein

#

Nix ist lustig

#

Und was ist daran so Lustig?

#

Boah hab jetzt voll den Lachflash

mental hamlet
#

bruh

urban glen
#

Ich dachte du hast es gefixxt?

hallow kite
#

@urban glen es ist an sich ne gute Idee mit einem Projekt python lernen zu wollen - wenn man die Sachen direkt brauchen kann behält man sie besser. Aber entweder du fängst mit was einfacherem an bei dem du die Grundlagen mitlernst und nicht mit etwas was die Grundlagen voraussetzt, oder du bleibst halt immer wieder an den einfachsten Sachen hängen und musst das halt auch mal selbst nachschauen.
Keiner hier hat Lust ständig immer wieder auf Basics verweisen zu müssen die dir offensichtlich noch fehlen.

Und keiner hat gesagt du sollst deinen Bot löschen.
Aber beiß dich halt erstmal durch die Basics durch bevor du weiter dran arbeitest.

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @hallow kite, du bist jetzt Level 7 🎉

Du hast insgesamt 118 Nachrichten geschrieben.

urban glen
#

@ornate merlin schick mal code + error

limpid wolf
#

bist sicher, dass du die richtigen role ids drinnen hast?

#

Also ich würde die if abfrage so machen:

if "| 13 JAHRE ODER ÄLTER " in select.values:
  role13 = interaction.guild.get_role(1081180425193525268)
             if role13 in interaction.user.roles:
                 await interaction.user.remove_roles(role13)
                 await interaction.response.send_message("13remove!", ephemeral=True)
             else:
                 await interaction.user.add_roles(role13)
                 await interaction.response.send_message("13add!", ephemeral=True)
             return
if "| 15 JAHRE ODER ÄLTER " in select.values:
  r15ole = interaction.guild.get_role(1081180565711097906)
             if r15ole in interaction.user.roles:
                 await interaction.user.remove_roles(r15ole)
                 await interaction.response.send_message("15remove!", ephemeral=True)
             else:
                 await interaction.user.add_roles(r15ole)
                 await interaction.response.send_message("15add!", ephemeral=True)
                 return      
#

@urban glen noch richtig einrücken dann müsste gehen

#

oder wait ich schau gleich nochmal kann grade nt so gut

limpid wolf
#

Kannst ja morgen mal testen

mental hamlet
#

Ihr könnt immernoch nicht mit .values das Label anfragen

#

Ihr müsst ne value setzten

graceful steppe
#

Ich versuche gerade eine Selection zu machen die sich aktualisieren soll wenn sie über einen Button gerufen wird. Schaffe es aber nicht das sie sich aktualisiert.

indigo sapphire
#

Haha das selbe Problem hab ich auch bei meinem #1074816451426394236

#

Trust me es ist nicht so einfach wie du denkst

indigo sapphire
#

Das der Inhalt eine drop-down Menü ändert?

graceful steppe
#

Das man als user Objekte einpflegen kann, über den einen Button und dann über einen anderen diese aus einer Selection auswählen

indigo sapphire
#

Wait step für Step erklären bitte

indigo sapphire
#

Welche Objekt meinst du?

#

Du kannst auch Objekte in SQlite Datenbank speichern

graceful steppe
#
class BallsSelectionView(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=5)

    @discord.ui.select(
        min_values=1,
        max_values=1,
        placeholder="Wähle Ball zum editieren",
        options=get_balls()
    )
    async def select_ball_callback(self, select, interaction):
        await interaction.response.send_message("Hey")

das is meine Selection die über diesen button aufgerufen wird:

#
@slash_command()
    async def work_for_me(self, context):
        if self.there_are_balls():  # choose a ball
            await context.respond("Klicke hier!", view=EditBall())
        else:  # init a ball
            await context.respond("Klicke hier!", view=StartButton())
#
class EditBall(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(label="Neuer Ball")
    async def new_ball_callback(self, button, interaction):
        await interaction.response.send_modal(NeuerBallModal(title="Neuer Ball"))

    @discord.ui.button(label="Editiere Ball")
    async def edit_ball_callback(self, button, interaction):
        await interaction.message.edit(view=self)
        await interaction.response.send_message(view=selections.BallsSelectionView())
#

ach ja vorletzte zeile bin ich am rumprobieren

#

Über den "Editiere Ball" soll man die Liste der Bälle bekommen die man über Neuer Ball eingepflegt hat

limpid wolf
#

ich hab das am handy geschrieben hab grade keinen plan

#

Das is eh so ez aber kp grade weil handy

urban glen
#

@urban glen worum geht's?

#

Will jetzt nicht den verlauf lesen xD

#

Schick doch mal Code + Error

#

Will nicht hoch scrollen

#
import discord
from discord.ext import commands
from discord.commands import slash_command


options = [
        discord.SelectOption(label="| 13 JAHRE ODER ÄLTER ", value="13 JAHRE", emoji="![SL_13](https://cdn.discordapp.com/emojis/1082946264829788230.webp?size=128 "SL_13")"),
        discord.SelectOption(label="| 15 JAHRE ODER ÄLTER ", value="15 JAHRE", emoji="![SL_15](https://cdn.discordapp.com/emojis/1082946267367350363.webp?size=128 "SL_15")"),
    ]


class deinprofil(commands.Cog):
    def __init__(self, client):
        self.client = client



    @commands.command()
    async def deinprofil(self, ctx):
        embed = discord.Embed(
            title="👤 | Dein Profil",
            description="Hier kannst du deine Profilrollen auswählen!",
            color=0x00ff00
        )
        await ctx.send(embed=embed, view=TutorialView())



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







class TutorialView(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.select(
        min_values=1,
        max_values=1,
        placeholder="auswählen",
        options=options,
        custom_id="selectprofile"
    )
    async def callback(self, select, interaction):
        if "13 JAHRE" in select.values[0]:
           role13 = interaction.guild.get_role(1081180425193525268)
           if role13 in interaction.user.roles:
                await interaction.user.remove_roles(role13)
                await interaction.response.send_message("13remove!", ephemeral=True)
           else:
                await interaction.user.add_roles(role13)
                await interaction.response.send_message("13add!", ephemeral=True)

        if "15 JAHRE" in select.values[0]:
            r15ole = interaction.guild.get_role(1081180565711097906)
            if r15ole in interaction.user.roles:
                await interaction.user.remove_roles(r15ole)
                await interaction.response.send_message("15remove!", ephemeral=True)
            else:
                await interaction.user.add_roles(r15ole)
                await interaction.response.send_message("15add!", ephemeral=True)
#

Versuchs mal so

#

Wird das Select Menu überhaupt gesendet? @urban glen

mental hamlet
#

… @urban glen why do you spoonfeeden

urban glen
mental hamlet
#

Das war ihm zu schwer xD

mental hamlet
graceful steppe
#

Kann ich an ein Modal Parameter übergebe?

solid ingot
#

ja das geht

graceful steppe
#

Aber das Modal will jetzt immer so nen 'title' wo schreibe ich dann meine Attribute hin davor oder danach?

#

Wenn ich meinen Button drücke:

import discord
from discord.ext import commands
from discord.commands import slash_command

class StartButton(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def simple_seats(self, context):
        await context.respond("Klicke hier!", view=InitialisiereTischeButton())


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


class InitialisiereTischeButton(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(label="Klicke hier!")
    async def init_button_callback(self, button, interaction):
        await interaction.response.send_message(view=HowManyRowsModal())


class HowManyRowsModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Gib die Anzahl der Tischreihen an:",
                placeholder="number",
                required=True,
            ),
            *args,
            **kwargs)

    async def callback(self, interaction):
        items = self.children[0].value
        await interaction.response.send_modal(view=HowManyTablesPerRowModal(items))


class HowManyTablesPerRowModal(discord.ui.Modal):
    def __init__(self, number_of_items):
        self.number_of_items = number_of_items
        self.items = list()
        for i in range(self.number_of_items):
            item = discord.ui.InputText(
                label=f"Gib Anzahl der Tische für Reihe {i+1} an:",
                placeholder="number",
                required=True,
            )
            self.add_item(item)

    async def callback(self, interaction):
        await interaction.response.send_message(f"Anzahl Reihen: {self.number_of_items}")

Dann bekomme ich immer den error: TypeError: Modal.init() missing 1 required keyword-only argument: 'title'

solid ingot
#

den Titel kannst du danach einfügen

graceful steppe
#

ok danke

urban glen
#

@solid ingot Deine Html-Kenntnisse von 1-10?

graceful steppe
#

Was mache ich Falsch greift man nicht so auf die eingaben von nem Modal zu?

class HowManyRowsModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Gib die Anzahl der Tischreihen an:",
                placeholder="number",
                required=True,
            ),
            *args,
            **kwargs)

    async def callback(self, interaction):
        items = self.children[0].value
        await interaction.response.send_modal(view=HowManyTablesPerRowModal(items))

Error: AttributeError: 'HowManyTablesPerRowModal' object has no attribute '_children'

#

Oh der Error gehört glaub zu dem Code:

class HowManyTablesPerRowModal(discord.ui.Modal):
    def __init__(self, number_of_items):
        self.number_of_items = number_of_items
        self.items = list()
        for i in range(int(self.number_of_items)):
            item = discord.ui.InputText(
                label=f"Gib Anzahl der Tische für Reihe {i+1} an:",
                placeholder="number",
                required=True,
            )
            self.add_item(item)

    async def callback(self, interaction):
        await interaction.response.send_message(f"Anzahl Reihen: {self.number_of_items}")
mental hamlet
#

Mach eif die args weg

graceful steppe
#

der beschwert sich immer das das keyword only argument title fehlt mache ich es dann rein, beschwert er sich das er ein unerwartetes keyword Argument bekommt

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @graceful steppe, du bist jetzt Level 5 🎉

Du hast insgesamt 71 Nachrichten geschrieben.

Du hast <@&1024276691205496872> erhalten!

solid ingot
urban glen
#

Html is nicht wirklich das schwerste wenn ich ehrlich bin also schon aber auch nd

#

ok.

#

ok.

#

Hab vergessen wie man italic macht

#

Gibt es 2 möglichkeiten für

#

t

#

a

#

Oh ok

#

Und wie machst du solche ss

urban glen
#

Was für ss

#

Screenshot

#

Nazi oder was??

#

Nein man🤦‍♀️

urban glen
#

Ja ok chill. Komm wir zurück zur frage

#

ShareX

storm seal
#

Wie kann ich den btn disableden ```py
@discord.ui.button(label="Schlecht", style=discord.ButtonStyle.red, emoji="", custom_id="pizza", row=1)
async def button_callback2(self, button, interaction):
for child in self.children:
child.disabled = True

    await interaction.response.send_modal(TutorialModal(title="Erstelle ein Embed"))
    await interaction.response.edit_message(view=self)```
#
-This interaction has already been responded to before```
urban glen
storm seal
#

ich habe 2 btn also alle beide

urban glen
#
    @discord.ui.button(label="Schlecht", style=discord.ButtonStyle.red, emoji="", custom_id="pizza", row=1)
    async def button_callback2(self, button, interaction):
        for child in self.children:
            child.disabled = True

        await interaction.response.send_modal(TutorialModal(title="Erstelle ein Embed"))
        await interaction.message.edit(view=self)
#

Versuchs so

#

@storm seal

storm seal
#

🤞

#
-Unknown Message```
urban glen
#

ist die nachricht ephemeral?

#

Also wo der Button dran ist

#

@storm seal

storm seal
#

ja

urban glen
#
    @discord.ui.button(label="Schlecht", style=discord.ButtonStyle.red, emoji="", custom_id="pizza", row=1)
    async def button_callback2(self, button, interaction):
        for child in self.children:
            child.disabled = True

        await interaction.response.send_modal(TutorialModal(title="Erstelle ein Embed"))
        await interaction.edit_original_response(view=self) # oder await interaction.response.edit_message(view=self) glaub ich
#

So glaub ich

#

Ungefähr so

#

Zur Not, schau nochmal in Timos video

burnt prairieBOT
#

Mein Discord Server
https://discord.gg/zfvbjTEzv6

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Mein Hosting* ► https://tidd.ly/3gJufg6
Code auf Github ► https://github.com/tibue99/tutorial-bot

PYCORD
Docs ► https://docs.pycord.dev/
Guide ► https://guide.pycord.dev/introduction/
Discord Server ► https://discord.gg/pycord

Discord Developer Portal ► https://discord...

▶ Play video
lament talon
#

Der Code funktioniert bis auf dieses .fetch() aber ich sehe nur ein paar Rollen. Ich würde gerne den User nur bestimmte rollen anzeigen lassen mit die er dann sich selbst hinzufügen kann

@bot.tree.command()
async def roleselectmenu(interaction: discord.Interaction):
    await interaction.response.send_message(view=SelectView())

class SelectView(discord.ui.View):
   def __init__(self):
      super().__init__(timeout=None)
      self.add_item(RoleSelectMenu())

class RoleSelectMenu(discord.ui.RoleSelect):
  def __init__(self):
    super().__init__(placeholder="Wähle eine Rolle aus", max_values=1)

  async def callback(self, interaction: discord.Interaction):
    await interaction.response.defer()
    role = await self.values[0].fetch()
    await interaction.user.add_roles(role)
uneven cedar
#

Kann mir jemmand sagen was ich da noch alles machen muss damit das funktioniert

urban glen
#

Das scheint mir bsischen gegen die ToS zu sein, zummindest der Text

uneven cedar
#

ok

#

hahahhaha

urban glen
#

@solid ingot look at that """Generate a random Discord Nitro code."""

urban glen
# uneven cedar ok

Aber nur so, so ein generator kann nicht funktionieren, weil die Codes erst aktiviert werden, wenn man bezahlt hat

uneven cedar
#

ok

#

danke

granite basalt
#

ich versuche gerade mehrere views mit einem embed zu schicken
jedoch kann man ja nur 1 view übergeben
wie kann ich mehrere view funtionen zu einem view zusammen fügen

solid ingot
#

@uneven cedar bitte nichts schicken, dass gegen die TOS verstößt

uneven cedar
#

ok

#

tut mir leid

solid ingot
#

also zum beispiel 2 buttons und ein select menu

solid ingot
#

generell kann man aber leider ein RoleSelect nicht auf bestimmte Rollen beschränken

graceful steppe
#

Wie kann ich ein dynamisches Modal erzeugen?

granite basalt
solid ingot
granite basalt
graceful steppe
#

dafür bin ich irgendwie zu dumm. Er beschwert sich dann immer irgendwie das ihm der titel fehlt wenn ich nur ein attribut übergebe oder das er title nicht kenn. Neuer Error ist jetzt: discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In type: Value must be one of {4, 5, 6, 7, 10}.

#

ah bzw geht überhaupt Modal als response auf ein modal?

solid ingot
#

nein das geht nicht

graceful steppe
#

oh ups ok hast du mir glaub auch schonmal gesagt 🫣

#

wie umgeht man das problem nen button einbauen oder etwas ähnliches?

#

Oder kann ich das Modal dynamisch verändern das sobald ich etwas einegeben habe es aktualisiert wird?

granite basalt
solid ingot
#

du hast 2 möglichkeiten

  1. du erstellst eine view klasse mit allen elementen, die du brauchst (@discord.ui.button...)
  2. du erstellst mehrere klassen, zb vom typ button oder select. diese kannst du dann mit view.add_item zu einem view hinzufügen
indigo sapphire
#

Oder beides

#

Tibue hätte da eine Frage würde Autocomplette auch mit SQlite funktionieren?

granite basalt
#

danke! @solid ingot
persistent machen funktioniert gleich?

solid ingot
#

ja, also den timeout vom view auf none setzen, und sonst alles normal

granite basalt
solid ingot
#

doch doch

#

also on_ready event und custom id

graceful steppe
#

Was mache ich Falsch bei der Übergabe der Anzahl der Tische aus dem Modal zur Button Klasse?:

import discord
from discord.ext import commands
from discord.commands import slash_command

class StartButton(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def simple_seats(self, context):
        await context.respond("Klicke hier!", view=InitialisiereTischeButton())


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


class InitialisiereTischeButton(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)

    @discord.ui.button(label="Klicke hier!")
    async def init_button_callback(self, button, interaction):
        await interaction.response.send_modal(HowManyRowsModal(title="Anzahl Reihen"))


options = []

#
class HowManyRowsModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Gib die Anzahl der Tischreihen an:",
                placeholder="number",
                required=True,
            ),
            *args,
            **kwargs)

    async def callback(self, interaction):
        number_of_items = self.children[0].value
        for i in range(int(number_of_items)):
            options.append(discord.SelectOption(label=f"Tischreihe {i+1}"))

        await interaction.response.send_message("Klicke!", view=TablesButton(number_of_items))


class TablesButton(discord.ui.View):
    def __init__(self, number_of_items):
        self.number_of_items = number_of_items

    @discord.ui.button(label="Zur Tischauswahl für die Reihen")
    async def tables_button_callback(self, button, interaction):
        modal = TablesToRowsModal(title="Weise Tische den Reihen zu")
        for item in range(int(self.number_of_items - 1)):
            modal.add_item(discord.ui.InputText(
                label=f"Gib die Anzahl der Tische in der {item+2}. Reihe an",
                placeholder="Anzahl",
                required=True
            ))
        await interaction.response.send_modal(modal)

class TablesToRowsModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Gib die Anzahl der Tische in der 1. Reihe an",
                placeholder="Anzahl",
                required=True
            ),
            *args,
            **kwargs
        )

    async def modal_callback(self, interaction):
        await interaction.response.send_message("Hey")
#

Bekomme immer den Error: AttributeError: 'TablesButton' object has no attribute 'children'

granite basalt
solid ingot
#

add_view war schon richtig. du musst dann wieder dein select zu einem viel hinzufügen

solid ingot
graceful steppe
#

Error: Ignoring exception in modal <cogs.the button.HowManyRowsModal object at 0x10286c6d0>:
Traceback (most recent call last):
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/ui/modal.py", line 341, in dispatch
await value.callback(interaction)
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/cogs/the button.py", line 46, in callback
await interaction.response.send_message("Klicke!", view=TablesButton(number_of_items))
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/interactions.py", line 789, in send_message
payload["components"] = view.to_components()
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/ui/view.py", line 215, in to_components
children = sorted(self.children, key=key)
AttributeError: 'TablesButton' object has no attribute 'children'

granite basalt
graceful steppe
#

Bin immer noch auf der Fehlersuche aber selbst da baue ich offensichtlich auch nur müll 🤔 :

import discord
from discord.ext import commands
from discord.commands import slash_command


class TestCommand(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def teste_den_scheiß(self, context):
        await context.send_modal(TestModal(title="Ein Titel"))


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


class TestModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(discord.ui.InputText(
            label="AHHHHHHHH",
            placeholder="DAAAAAA",
            required=True
        ),
            *args,
            **kwargs
        )

    async def modal_callback(self, interaction):
        await interaction.response.send_message("Test")

bekomme jetzt nicht mal mehr nen Error sondern nur noch im Modal gesagt "Something went wrong. Try again.

solid ingot
#

ersetzte mal modal_callback durch callback

graceful steppe
#

ja das wars problem. wann darf man für nen callback eigene namen verwenden und wann nicht?

#

kann ich aus einem Modal keine Parameter an einen Button weitergeben?

import discord
from discord.ext import commands
from discord.commands import slash_command


class TestCommand(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def teste_den_scheiß(self, context):
        await context.send_modal(TestModal(title="Ein Titel"))


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


class TestModal(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(discord.ui.InputText(
            label="AHHHHHHHH",
            placeholder="DAAAAAA",
            required=True
        ),
            *args,
            **kwargs
        )

    async def callback(self, interaction):
        item = "lalal"
        await interaction.response.send_message("Test", view=TestButton(item))

class TestButton(discord.ui.View):
    def __init__(self, item):
        self.item = item

    @discord.ui.button(label="KLicke mich!")
    async def callback(self, button, interaction):
        await interaction.response.send_message(f"{self.item}")
#

Error: Ignoring exception in modal <cogs.test1.TestModal object at 0x102a377f0>:
Traceback (most recent call last):
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/ui/modal.py", line 341, in dispatch
await value.callback(interaction)
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/cogs/test1.py", line 32, in callback
await interaction.response.send_message("Test", view=TestButton(item))
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/interactions.py", line 789, in send_message
payload["components"] = view.to_components()
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/ui/view.py", line 215, in to_components
children = sorted(self.children, key=key)
AttributeError: 'TestButton' object has no attribute 'children'

graceful steppe
#

Ich habe das gefühl man kann nicht aus Klasse in andere Klassen Parameter übergeben aber keine ahnung warum

#

habe mal den code aus Timos Tutorial genommen und leicht modifiziert:```py
import discord
from discord.ext import commands
from discord.commands import slash_command

class Button(commands.Cog):
def init(self, bot):
self.bot = bot

@slash_command()
async def button1(self, ctx):
    item = "LALA"
    await ctx.respond("Klicke hier", view=TutorialView(ctx.author, item))

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

class TutorialView(discord.ui.View):
def init(self, user, item):
self.user = user
self.item = item
super().init(timeout=None)

@discord.ui.button(label="Keks", style=discord.ButtonStyle.primary, emoji="🍪", custom_id="keks")
async def button_callback1(self, button, interaction):
    if self.user.id != interaction.user.id:
        await interaction.response.send_message("Du darfst diesen Button nicht benutzen!", ephemeral=True)
        return

    await interaction.response.send_message(f"{interaction.client.user.name} mag Kekse und {self.item}", ephemeral=True)

@discord.ui.button(label="Pizza", style=discord.ButtonStyle.primary, emoji="🍕", custom_id="pizza")
async def button_callback2(self, button, interaction):
    button.disabled = True
    item = "DIDU"
    # await interaction.response.edit_message(view=self)
    await interaction.response.send_message(view=TestButton(item))

class TestButton(discord.ui.View):
def init(self, test):
self.test = test

@discord.ui.button(label="DADI")
async def callback(self, button, interaction):
    await interaction.response.send_message(f"{self.test}")
Und schmeißt immer noch diesen kein attribut children error
mystic flower
#

welche zeile ?

graceful steppe
#

39

mystic flower
#

weche zeile ist das ?

graceful steppe
#

await interaction.response.send_message(view=TestButton(item))

mystic flower
#

schick mal den ganzen code ich teste das

graceful steppe
#

das oben is der ganze und dann halt noch ne standart main

tawdry leaf
#

er macht es 😮

graceful steppe
tawdry leaf
graceful steppe
#

das langt doch wenns unter der command klasse ist muss doch nicht ans ende des Files

tawdry leaf
#

na dann 🙂

graceful steppe
#

habs mal ans ende gesetzt wäre schön gewesen ändert aber leider nix 😦

tawdry leaf
#

also was erwartest du das da kommt

graceful steppe
#

das item aus 4 zeilen drüber

#

habe da versucht einen Parameter zu übergeben, ist gerade das mit dem ich struggle

mental hamlet
#

kann es sein das es Self.item schon gibt?

#

Als default

tawdry leaf
graceful steppe
#

Am Variablennamen liegt es nicht:

import discord
from discord.ext import commands
from discord.commands import slash_command


class Button(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @slash_command()
    async def button1(self, ctx):
        item = "LALA"
        await ctx.respond("Klicke hier", view=TutorialView(ctx.author, item))


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


class TutorialView(discord.ui.View):
    def __init__(self, user, item):
        self.user = user
        self.item = item
        super().__init__(timeout=None)

    @discord.ui.button(label="Keks", style=discord.ButtonStyle.primary, emoji="🍪", custom_id="keks")
    async def button_callback1(self, button, interaction):
        if self.user.id != interaction.user.id:
            await interaction.response.send_message("Du darfst diesen Button nicht benutzen!", ephemeral=True)
            return

        await interaction.response.send_message(f"{interaction.client.user.name} mag Kekse und {self.item}", ephemeral=True)

    @discord.ui.button(label="Pizza", style=discord.ButtonStyle.primary, emoji="🍕", custom_id="pizza")
    async def button_callback2(self, button, interaction):
        button.disabled = True
        habibi = "DIDU"
        # await interaction.response.edit_message(view=self)
        await interaction.response.send_message(view=TestButton(habibi))

class TestButton(discord.ui.View):
    def __init__(self, habibi):
        self.habibi = habibi

    @discord.ui.button(label="DADI")
    async def callback(self, button, interaction):
        await interaction.response.send_message(f"{self.habibi}")

bringt genau die gleichen Probleme

graceful steppe
#

Ignoring exception in view <TutorialView timeout=None children=2> for item <Button style=<ButtonStyle.primary: 1> url=None disabled=True label='Pizza' emoji=<PartialEmoji animated=False name='🍕' id=None> row=None>:
Traceback (most recent call last):
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/ui/view.py", line 414, in _scheduled_task
await item.callback(interaction)
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/cogs/aus_tut.py", line 39, in button_callback2
await interaction.response.send_message(view=TestButton(habibi))
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/interactions.py", line 789, in send_message
payload["components"] = view.to_components()
File "/Users/joniitaan/Documents/MobileHobbitHöhle/coding/discord/bots/SimpleSeats/venv/lib/python3.10/site-packages/discord/ui/view.py", line 215, in to_components
children = sorted(self.children, key=key)
AttributeError: 'TestButton' object has no attribute 'children'

wise stone
#

mach Mal eher das alle Button disabeld wird per for schleife

graceful steppe
wise stone
#

worum dann?

#

bin Grade confused

graceful steppe
#

darum das ich versuche von der einen Button klasse in die andere einen Parameter über den Konstruktor zu übergeben

#
await interaction.response.send_message(view=TestButton(habibi))

class TestButton(discord.ui.View):
    def __init__(self, habibi):
        self.habibi = habibi
#

Eigentliches Ziel wird es sein Daten aus einem Modal zu nehmen und diese in anderen Klassen dynamisch zu verarbeiten um dann wieder entsprechende UI's zu bauen

manic tusk
#

Was ist der Unterschied zwischen .env und .json?

graceful steppe
#

In .env setzt Du Umgebungs Variablen

#

.json ist ein Datenformat mit dem man zb zwischen zwei services kommuniziert oder Daten persistiert

silk gulch
#

Wie kann ich vom String ticket-330764116706983937 nur 330764116706983937 anzeigen lassen?
mit id = interaction.channel.name[-7:] bekomme ich nur 6983937 raus..

indigo sapphire
#

Kann mir jemand sagen wie ich im einem view den Button oder drop-down class den Inhalt oder label aktualisieren?

#

Ich hab zB versucht den Button & select class in einem view zu vererben aber naja meh

mental hamlet
silk gulch
mental hamlet
#

ja

silk gulch
#

merci

mental hamlet
#

bakkommst du 2 strings

silk gulch
#

id[1] wäre dann die id.

#

i know

mental hamlet
#

x, y = var.split("-")

y = ticket
y = 330764116706983937

silk gulch
#

oder so ja

mental hamlet
#

so würde ich es machen

silk gulch
mental hamlet
#

gerne, für solche fragen ist der channel da

#

explitziet jetztt auch #1019974414487535736

graceful steppe
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @graceful steppe, du bist jetzt Level 6 🎉

Du hast insgesamt 105 Nachrichten geschrieben.

urban glen
#

SL_typing joniitaan is typing...

graceful steppe
#

Gibt es eig eine sinnvolle Möglichkeit Daten zwischen Buttons/selects usw weiterzugeben? Abgesehen von Datenbanken oder ähnlichem?

urban glen
#

Wie genau meinst du?

#

Du kannst werte von Klasse zu klasse übergeben

graceful steppe
#

ja? ... 😂

urban glen
graceful steppe
#

ja aber iwie ja nicht zwischen zwei interaktions klassen wie modal oder button oder button zu botten

solid ingot
#

ich hab ein Video dazu gemacht wie man werte an die Klassen übergeben kann

graceful steppe
#

ja das kenne ich aber da gibst du von der Command Klasse einer Button Klasse aber sobald man zwischen zwei Buttoklassen es so machen will wie im video gezeigt kommt der Error das der Entsprechende Button an den man übergibt kein attribut child besitzt

urban glen
#

Zeig doch mal dein Code

#

Dann wissen wir, wie genau du das meinst

graceful steppe
#

#1019974414487535736 message

urban glen
#

Schick doch Code und Error hier her

#

Ich werd jetzt nicht zwischen den Posts switchen

#

Oder hoch scrollen

graceful steppe
#

ja einen moment

#

ok wow habe gleube ich meinen Fehler gefunden

#

Ich habe den super Konstruktor nie gerufen 🫣

urban glen
#

gg

graceful steppe
#

Was benutzt man am besten wenn der User ein File Hochladen soll?

solid ingot
#

discord.Attachment als Slash Command option

graceful steppe
# urban glen gg

einerseits fühlt man sich gut bei weil mans rausgefunden hat andererseits ultra dumm wieso es einem nicht früher aufgefallen ist weil war ja logisch

graceful steppe
solid ingot
solid ingot
graceful steppe
solid ingot
#

in View Klassen darfst du dir den callback Namen aussuchen, in allen anderen Klassen musst du die Methode "callback" nennen

urban glen
solid ingot
#

du kannst die Dateien auch aus beliebigen Nachrichten holen, zB mit message.attachments

graceful steppe
#

gibt es auch ein Modal feld?

solid ingot
#

für Attachments? nein leider nicht

#

modal ist ausschließlich für strings

mental hamlet
#

@graceful steppe wie gesagt self.item ist ein default teil

#

anderer variablen namew

old ore
#

wie kann ich die embed color aus meiner conifg benutzen

mental hamlet
#

halt eif. die aus der raus holen und wenn sie noch kein farbcode ist sie noch zu einem konvertieren