#Allgemeine Hilfe

1 messages · Page 37 of 1

crude heath
#

meinst im discord dev portal?

solid ingot
#

da auch, aber vor allem im code

urban glen
crude heath
urban glen
#

file = discord.File(f"RevolutionCityTeamBewerbungsbanner.jpg", filename="image.png")
embed.set_thumbnail(file)

burnt prairieBOT
#
crude heath
urban glen
#

ez

umbral goblet
#

cord

urban glen
#

bin fertig

#

jetzt kann ich in ruhe verecken

crude heath
#

gw

urban glen
#

danke

#

junge mein bot ist geglitcht

#

der ist jetzt nur noch on

crude heath
#

Chillig

tawdry leaf
#
bemoji = "![wow](https://cdn.discordapp.com/emojis/1110672484497371187.webp?size=128 "wow")"
    @discord.ui.button(label=f'{bemoji} Banner', style=discord.ButtonStyle.green)```
#

weiß jemand wieso der den emoji nd anzeigt sondern des einf so schreibt

crude heath
#

Musst doch style=discord.ButtonStyle.green, emoji =“<:wow:zahl>“ machen oder nd

#

Also das emoji so dahinter

#

Nd bei Label

jovial yew
#

Hey leute mal ne frage ist es möglich mit pycord das man sich bestimme channel als select menü anzeigen lässt und wenn man einen kanal auswählt direkt da hin kommt? Ich schaffe es bisher nur ein select menü zu erstellen aber kein plan wie ich die kanäle als Auswahl hinbekomme

tawdry leaf
#

bei den anderen geht es aber so xD

crude heath
#

Da Isses iwo @tawdry leaf

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
crude heath
#

@jovial yew

#

Ist in diesem Video hier.

jovial yew
#

Super schaue ich morgen an und melde mich bei fragen

tawdry leaf
crude heath
#

Mach da

crude heath
tawdry leaf
#

egal geht jz

tawdry leaf
crude heath
#

Ok

tawdry leaf
#

vllt noch wenn er kein banner hat banner buton rot machen 😮

crude heath
tawdry leaf
crude heath
#

Kann man ja theoretisch machen

tawdry leaf
#

hm ja könnte man

#

muss man aber nd 🙂

crude heath
tawdry leaf
#

userinfo mit buttons reicht schon

#

habe ja dafür Rollen nach rollenposition angezeigt nun 😮

crude heath
#

🤯

lusty palm
#

Gibt es eigentlich modals mit buttons? Klingt weird aber ich will ne art Popup Nachricht für die Bestätigung einer Aktion machen..

tawdry leaf
#

fehlt noch irgendeine info 🤔

tawdry leaf
#

du machst einf das wenn man button drückt ein modal gesendet wird

lusty palm
#

ne ich meinte eher in dem modal selbst

tawdry leaf
#

ne da kann man nur text schreiben mehr nd

lusty palm
#

aber eine alternative lösung wäre natürlich dass man ein Modal erscheinen lässt und der user eine Nachricht zur bestätigung schreiben muss

tawdry leaf
#

ja das kannst du machen wenn du als placeholder einen code zum beispiel nimmst und er denn dann abschreiben muss und dann prüft man des eben

crude heath
tawdry leaf
#

man könne emojis noch machen aber dazu bin ich zu faul xD und status mit emoji aber des ist halt so schmücken xD

crude heath
#

Haha

urban glen
tawdry leaf
crude heath
tawdry leaf
#

Einf Brain afk 👀

urban glen
tawdry leaf
#

Hm ja da wurde mein anderer gegrieft

#

Solange die da sind bleiben die da

normal sundial
#

hey kann ich auch in einem dropdown nur bestimmte rollen anzeigen? mit ui.role_select?

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
solid ingot
normal sundial
#

Das weiss ich, deshalb fragte ich ja ob es mit der selben Methode auch geht einzelne anzuzeigen. Gut dann muss ich das über Datenbank abfragen machen. Danke

jovial yew
#
import discord
from discord.ext import commands
from discord.commands import slash_command
from bot import bot



@bot.slash_command()
async def select(self, ctx):
        await ctx.respond(view=Dropdown())



class Dropdown(discord.ui.View):
    @discord.ui.channel_select(placeholder="Wähle einen Channel", min_values=1, max_values=1)
    async def channel_callback(self, select, interaction):
        await interaction.response.send_message(f"Du hast {select.values[0].mention} gewählt.")


das geht leider nicht jemand ne idee?

#

er erwartet eine ctx eingabe aber die ist ja nicht definiert oder?

tall gorge
#

Was ist der Fehler?

jovial yew
#

wenn ich den befehl aufrufe erwartet er eine ctx eingabe aber ka was da rein soll es gibt ja kein menu und wenn ich irgendwas eingabe kommt anwendung reagiert nicht in pycharm kommt keine fehler meldung

tall gorge
#

Du musst glaube ich self entfernen

jovial yew
#

ja das wars danke jetzt kommt in der ausgabe folgender fehler:

class Dropdown(discord.ui.View):
    @discord.ui.channel_select(placeholder="Wähle einen Channel", min_values=1, max_values=1)
    async def channel_callback(select, interaction):
        await interaction.response.send_message(f"Du hast {select.values[0].mention} gewählt.")

TypeError: Dropdown.channel_callback() takes 2 positional arguments but 3 were given

tall gorge
#

benutzt du es in einem cog oder main datei?

#

main oder?

jovial yew
#

in einer extra datei aber ohne cog befehl

tall gorge
#

warum nicht mit cogs?

jovial yew
#

weil ich die trotz video nicht wirklich verstehe

tall gorge
#
class Dropdown(discord.ui.View):
    @discord.ui.channel_select(placeholder="Wähle einen Channel", min_values=1, max_values=1)
    async def channel_callback(self, select, interaction):
        await interaction.response.send_message(f"Du hast {select.values[0].mention} gewählt.")
#

da muss eig ein self rein

tall gorge
jovial yew
#

gerne

tall gorge
#
  1. Du musst in deine main datei folgendes schreiben:
if __name__ == "__main__":
    for filename in os.listdir("Cogs"):
        if filename.endswith(".py"):
            bot.load_extension(f"Cogs.{filename[:-3]}")
  1. Du erstellst einen Ordner Namens Cogs
  2. Erstellst dort einfach eine Python File
  3. Schreibst am Anfang des Codes ca so etwas:
class Name(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
  1. Programmierst einfach normal
    6.Am Ende Schreibst du noch so etwas, damit der Cog geladen wird:
def setup(bot):
    bot.add_cog(Name(bot))
#

Telemachus, ungefähr verstanden?

jovial yew
#

ja aber nicht wozu es dient, also was ist der sinn hinter diesem cog?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @jovial yew, du bist jetzt Level 2 🎉

Du hast insgesamt 11 Nachrichten geschrieben.

Du hast <@&1042123300970696705> erhalten!

solid ingot
tall gorge
#

und du nicht ewig nach einer bestimmten sache suchen musst

solid ingot
#

genau, wenn du alles in eine datei schreibst wird es sehr schnell sehr unübersichtlich. cogs sind dazu da um den bot in mehrere dateien aufzuteilen

jovial yew
#

Das mach ich jetzt auch aber ohne cogs? Darum kapier ich es evtl net

solid ingot
#

ja, der code den du eben geschickt hast ist kein cog-code. du kannst dich sozususagen entscheiden, ob du in einem cog oder in der main datei arbeiten möchtest. in den videos werden ab folge 5 zur besseren übersicht immer cogs genutzt

jovial yew
#

Ok werde ich mir nochmal näher anschauen bisher programmiere ich jede Funktion in einer eigenen py datei und importiere sie in die main einfach über import

safe tendon
jovial yew
#

Mal ne frage zu dem select menü das läuft jetzt aber es zeigt ja alle kanäle an ist es möglich ein select menü zu erschaffen das nur kanäle anzeigt die ich will optional mit anderem namen also zb link handwurst öffnet kanal xyz und wenn ich es auswähle wird der user direkt zum kanal geleitet?

safe tendon
#

hmm

#

musst du mal gucken

#

habe ich noch nicht gemacht

crude heath
safe tendon
#

weiß einer was das ist

#

ich kann nicht zu github pushen

solid ingot
#

das heißt du du änderungen auf github hast (1) die du in dein projekt holen kannst und änderungen in deinem projekt hast (2) die du pushen kannst

safe tendon
#

okay

#

also muss erst pullen vom github und dann gehts?

#

also wenn ich pulle kriege ich denn error ```git

git pull --tags origin master
From https://github.com/Ceeq9717/modfy

  • branch master -> FETCH_HEAD
    hint: You have divergent branches and need to specify how to reconcile them.
    hint: You can do so by running one of the following commands sometime before
    hint: your next pull:
    hint:
    hint: git config pull.rebase false # merge
    hint: git config pull.rebase true # rebase
    hint: git config pull.ff only # fast-forward only
    hint:
    hint: You can replace "git config" with "git config --global" to set a default
    hint: preference for all repositories. You can also pass --rebase, --no-rebase,
    hint: or --ff-only on the command line to override the configured default per
    hint: invocation.
    fatal: Need to specify how to reconcile divergent branches.
#

habe behoben geht wieder thumbs_up

jovial yew
#

Wie müsste ich das realisieren mit links wie würde das aussehen?

safe tendon
#

wie meinst du

crude heath
jovial yew
#

Den generellen aufbau...überlege grade ob es über die channel id ginge

crude heath
jovial yew
#

Wie gesagt per slash befehl sollen ausgewählte kanäle angezeigt werden optimal mit anderem namen also zb kochen = #kanalxyz wenn man den kanal wählt soll man dahin gebracht werden falls das net geht als anzeigr zum anklicken halt

crude heath
#

Oder du nimmst nen URL Button

jovial yew
#

Sind zuviele kanäle für button

#

Choices hatte ich schon mit text wie würde das mit kanal aussehen

crude heath
jovial yew
#

Und wo definiere ich was welcher kanal ist

crude heath
#

Also. Du kannst es machen dass entweder alle Kanäle (die der User sehen kann) angezeigt werden, oder mit dem kanal: Option(str, “Der ausgewählte Kanal“, choices=[“Kanal eins“,“Kanal 2“,“Kanal 3“])
Das einschränken und dann mit ner Id Bedingung folgendes abfragen:

If kanal == “Kanal 1“
    channel = ctx.guild.get_channel(kanalid)
    await channel.send(“Hi!“)
jovial yew
#

Ich bin zuviel anfänger dafür hehe. Ich teste es gleich mal wenn ich am Laptop bin

molten abyss
#

Was ist bei Github was bedeutet das?

solid ingot
#

was genau?

molten abyss
solid ingot
#

stars: wie viele likes du bekommen hat
PR heißt pull request und issues sind fragen/probleme, die du bei repositories geöffnet hast

#

die commits sind die einzelnen änderungen die du gemacht hast

molten abyss
jovial yew
# crude heath Also. Du kannst es machen dass entweder alle Kanäle (die der User sehen kann) an...
import discord
from discord.ext import commands
from bot import bot


@bot.command()
async def select(ctx):
    options = [
        discord.SelectOption(label="Kochen", value="Kanal1"),
        discord.SelectOption(label="Option 2", value="option2"),
        discord.SelectOption(label="Option 3", value="option3")
    ]
    select = discord.ui.Select(placeholder="Wähle eine Option", options=options)
    view = discord.ui.View()
    view.add_item(select)

    msg = await ctx.send("Wähle eine Option:", view=view)

    def check(res):
        return res.user.id == ctx.author.id and res.message.id == msg.id

    If kanal == “Kanal1“
    channel = ctx.guild.get_channel(1107575539297964032)
    await channel.send(“Hi!“)

    interaction = await bot.wait_for('select_option', check=check)
    await msg.edit(content=f"Du hast {interaction.component.label} ausgewählt!")

da is noch der wurm drin 😄

crude heath
jovial yew
#

äh da steht meine bot intents drin also die definierung

#

bot = discord.Bot(intents=intents)

crude heath
#

Mach doch eif in nem Cog

jovial yew
#

ja wie gesagt die cogs muss ich noch lernen^^

crude heath
#

Ist der selbe Aufbau eigtl, kannste Call?

jovial yew
#

ich bin arbeiten also leider nein sry

crude heath
#

Ok

jovial yew
#

nein die datei ist nur für die ui da

#
import blacklist
import json
from bot import bot




# Laden der Konfigurationsdatei
with open('config.json', 'r') as config_file:
    config = json.load(config_file)


# Bot-Token aus der Konfigurationsdatei lesen
bot_token = config['token']


# Bot starten
bot.run(bot_token)

das wäre die main

crude heath
#

Musste nd noch dc und so Importen?

molten abyss
#

kann ich github nicht mit Github teilen also wie im video mit tiktok statt YT?

solid ingot
#

auf github kannst du auch sachen teilen, aber statt videos ist das halt für code

molten abyss
#

wie

solid ingot
#

du kannst code veröffentlichen

#

schau dir am besten mal ein paar grundlegende videos zu github an damit du weißt was die platform überhaupt macht peeposhy

jovial yew
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @jovial yew, du bist jetzt Level 3 🎉

Du hast insgesamt 29 Nachrichten geschrieben.

crude heath
#

Aber ja, bei dem Code muss auf jeden Fall bissl was überarbeitet werden. Ich schreib dazu später mehr

jovial yew
#

Ja das geht damit das @bot.command funktioniert nur die ausgabe noch net perfekt

#

Klar kein stress bin für jede hilfe dankbar

crude heath
#

Für select Menüs am besten das hier anschauen:

jovial yew
crude heath
#

Dort kannst du dann einfach als Antwort auf die Interaktion, je nach dem was gewählt wurde, den link zum Channel senden

crude heath
jovial yew
#

Pycord

crude heath
#

Bin verwirrt

jovial yew
#

Ich jetzt auch 🤣

solid ingot
#

discord.Bot ist nur für slash commands, deswegen werden auch commands mit @bot.command als slash command registriert

#

hab ich auch neulich erst rausgefunden als ich prefix command support bei ezcord eingebaut habe

crude heath
#

Ah

#

Gut, jetzt weiß ich’s

silk gulch
#
role = self.bot.user.guild.get_role(1052914676306026567)```

AttributeError: 'ClientUser' object has no attribute 'guild'

Weiß jemand genau, wie ich die ID definieren kann?
urban glen
#

ctx.guild.get_role

silk gulch
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @silk gulch, du bist jetzt Level 15 🎉

Du hast insgesamt 986 Nachrichten geschrieben.

Du hast <@&1024276907136663562> erhalten!

urban glen
silk gulch
#

YouTube & Twitch-Check

urban glen
#

hm

silk gulch
#

Aber tut ja nix zur Sache. Der funktioniert.

#

Geht nur darum, wie ich die role definieren kann.

urban glen
#

@crude heath maybe weißt du was xd

crude heath
# jovial yew ```python import discord from discord.ext import commands from bot import bot ...
import discord
from discord.ext import commands
from discord.commands import slash_commands, Option
from bot import bot

@slash_command(description="Ein Test Command")
async def channe_select(ctx, channel: Option(str, "Der Channel den du auswählen willst", choices=["Kochen", "Putzen", "Fegen"]):
    if channel == "Kochen":
        channel = ctx.guild.get_channel(1107575539297964032)
        await channel.send("Hi!")
    elif channel = "Putzen“:
        channel = ctx.guild.get_channel(Id)
        await channel.send("Hi!")

    elif channel = "Fegen":
        channel = ctx.guid.get_channel(id)
        await channel.send(“Hi“)

das wärs so wie ich machen würde.

crude heath
urban glen
#

@crude heath Für den RechtschreibDude müssen wir aber wohl noch was lernen xd chocies -> choices

urban glen
#

:3

solid ingot
#

@jovial yew kannst du mal deine main.py datei schicken?

urban glen
#

** OHNE TOKEN ** !!

crude heath
#

Besser? XD

urban glen
#

Noch ein fehler

#

elif channel = "Putzen:

silk gulch
solid ingot
novel ore
#
    @tasks.loop(minutes=3)
    async def daily_loop(self):
        async with aiosqlite.connect(self.DB) as db:
            async with db.execute("SELECT user_id FROM daily WHERE gesetzt = ?", (1,)) as cursor:
                user_id_gesetzt = await cursor.fetchall()
            async with db.execute("SELECT user_id FROM daily WHERE gesetzt = ?", (0,)) as cursor:
                user_id = await cursor.fetchall()
                if len(user_id) != 0:
                    await db.execute("UPDATE daily SET count = 0 WHERE user_id = ?", (user_id[0][0],))
                    await db.commit()
                if len(user_id_gesetzt) != 0:
                    await db.execute("UPDATE daily SET gesetzt = 0 WHERE user_id = ?", (user_id_gesetzt[0][0],))
                    await db.commit()

Ich möchte das er es nicht nur für denn ersten updatet sondern für alle

jovial yew
novel ore
#

bei dem user_id[0][0]

urban glen
#

warum machst du denn user_id[0][0]

novel ore
#

wie soll ich es sonst machen nur user_id[0] kann ich nich machen

jovial yew
urban glen
#

mach mal 3 prints rein
print(user_id)
print(user_id[0])
print(user_id[0][0])
und dann schick wieder einscreen @novel ore

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @severe citrus, du bist jetzt Level 12 🎉

Du hast insgesamt 977 Nachrichten geschrieben.

novel ore
urban glen
#

Warum hast du denn user_id eine liste?

#

wenn es nur einen ist?

novel ore
urban glen
#

mach anstatt user_id[0][0] einfach int(user_id[0])

#

und du brauchst eine for schleife für jeden user in der liste

upper adder
#

Jemand ne Idee, warum das folgende nicht geht?

isinstance(message.channel, discord.DMChannel)
urban glen
#

Was genau soll das machen?

#

Wenn es nur in DM's geht oder nur auf dem server?

upper adder
#

checken ob die message in den DMs des Bots ist.

urban glen
#

if message.guild is None:

solid ingot
upper adder
upper adder
tawdry leaf
#

Gruppen ?

solid ingot
#

bots können nicht in gruppen genutzt werden

#

noch nicht zumindest

tawdry leaf
#

Hmm es gibt aber Methoden 😅

#

Wenn ich mich nicht irre

upper adder
#

idk

tawdry leaf
#

Aber was will man mit dem bot in einer Gruppe

upper adder
#

idk

#

gibt bestimmt einige "Spezialisten"

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @upper adder, du bist jetzt Level 4 🎉

Du hast insgesamt 60 Nachrichten geschrieben.

tawdry leaf
#

Ja die werden aber denke ich nicht deinen bot benutzen 😅

#

So selten sind die

upper adder
#

Okay

tawdry leaf
urban glen
tawdry leaf
#

Er wollte auch Gruppen

crude heath
jovial yew
#

ja

tawdry leaf
#

Ich sehe den Fehler

#

"Putzen" so musst du es

upper adder
tawdry leaf
#

Dann wird er nur in Server angezeigt

upper adder
#

wie? if guild is None ?

tawdry leaf
#

jovial yew
upper adder
jovial yew
#

File "C:\betacmdr\blacklist.py", line 7
async def channe_select(ctx, channel: Option(str, "Der Channel den du auswählen willst", chocies=["Kochen", "Putzen", "Fegen"]):
^
SyntaxError: invalid syntax

tawdry leaf
crude heath
#

Ja, war falsch eingerückt

#

Hab jetzt geändert @jovial yew

upper adder
burnt prairieBOT
#
tawdry leaf
#

Müsste das Video sein

upper adder
#

oke

#

muss nur schauen ob das mit meiner Lib auch so geht peepokay

tawdry leaf
#

Welche hast du denn

upper adder
#

discord4py

tawdry leaf
#

Achso

crude heath
#

Dann nutz lieber keine Py-cord tutos

tawdry leaf
tawdry leaf
tawdry leaf
#

Ich benutze auch discord.py und alle Videos gehen manche sind nur bisschen anders

crude heath
#

Dann hab ich nichts gesagt

#

Hatte da nur andere Erfahrungen xD

upper adder
#

Einer meiner Gründe für discord4py: Ich finde die Modals sind u.a. viiiiel einfacher peeposhy

jovial yew
#

ich hab den code korrigiert nun das

#

ImportError: cannot import name 'slash_commands' from 'discord.commands' (C:\Users\Telemachus\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands_init_.py)

aber die lib ist ja da

crude heath
#

Du musst slash_command schreiben statt slash_commands, sorry.

#

@jovial yew

next echo
#

Nur mal als frage was bedeutet Cogs überhaupt auf Deutsch übersetzt?

urban glen
vocal nymph
#

Hey,
ich hätte eine kurze frage, und zwar wie kann man abfragen ,dass wenn der member in einen bestimmten voice geht , der bot auch Joint und was abspielt ? Ist das in den Music bot Videos drin? Dann würde ich mir die Angucken.

solid ingot
#

hey, ja das geht, aber ich habe dazu noch kein video gemacht. du benötigst dazu das on_voice_state_update event

vocal nymph
#

Okay ,danke das kann ich dann noch weiter in Pycord nachgucken oder?

solid ingot
#

genau

silk gulch
#

Wie macht man denn diese Texte?

solid ingot
#

du schreibst ein # vor deine anchricht

#

# Beispiel

#

Beispiel

silk gulch
#

Test

#

Super danke 🙂

jovial yew
#

so endlich zuhause ich teste den code mal^^

vivid sky
#

fortnite

#

oha ja

jovial yew
# crude heath Du musst slash_command schreiben statt slash_commands, sorry.
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
from bot import bot

@bot.slash_command(description="Ein Test Command")
async def channel_select(ctx, channel: Option(str, "Der Channel den du auswählen willst", choices=["Kochen", "Putzen", "Fegen"])):
    if channel == "Kochen":
        channel == ctx.guild.get_channel(1107575539297964032)
        await channel.send("Hi!")
    elif channel == "Putzen":
        channel = ctx.guild.get_channel(Id)
        await channel.send("Hi!")

    elif channel == "Fegen":
        channel = ctx.guid.get_channel(id)
        await channel.send("Hi")

habs soweit korrigiert nur der channel send geht nicht aber das spielt vorert keine rolle, es ist jetzt ja so kein select menü? die kanäle werden als auswahl angezeigt also als option aber nicht als select

crude heath
jovial yew
#

habs jetzt so aber geht natürlich net

crude heath
#

Error?

jovial yew
#
import discord
from discord.ext import commands
from bot import bot
from pycord_components import Select, SelectOption, Components, InteractionContext




class ChannelSelect(discord.ui.View):
    def __init__(self):
        super().__init__(timeout=None)
        self.select = Select(
            placeholder="Please select a channel",
            options=[
                SelectOption(label="Kochen", value="kochen"),
                SelectOption(label="Putzen", value="putzen"),
                SelectOption(label="Fegen", value="fegen")
            ]
        )
        self.add_item(self.select)

    async def callback(self, interaction: InteractionContext):
        if self.select.values[0] == "kochen":
            channel = bot.get_channel(1107575539297964032)
            await channel.send("Hi!")
        elif self.select.values[0] == "putzen":
            channel = bot.get_channel(Id)
            await channel.send("Hi!")
        elif self.select.values[0] == "fegen":
            channel = bot.get_channel(id)
            await channel.send("Hi")

@bot.slash_command(description="Ein Test Command")
async def channel_select(ctx):
    view = ChannelSelect()
    await ctx.send("Please choose a channel:", view=view)

die lib ist wohl in erster linie falsch

crude heath
crude heath
#

schau dir da mal an

jovial yew
#

ja habe ich und das nachzubauen ist np aber ich bekomme halt denkanal net als option ich teste nochmal

solid ingot
jovial yew
#

oki

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

options = [
    discord.SelectOption(label="kochen", description="Python Beschreibung", emoji="👑"),
    discord.SelectOption(label="Java", description="Java Beschreibung", emoji="💻"),
    discord.SelectOption(label="Javascript", description="Javascript Beschreibung", emoji="🚩", value="JS")
]

@bot.slash_command()
async def select1(ctx):
    await ctx.respond("Wähle Programmiersprachen aus", view=TutorialSelect())

class TutorialSelect(discord.ui.Select):
    def __init__(self):
        super().__init__(
            min_values=1,
            max_values=1,
            placeholder="Triff eine Auswahl",
            options=options
        )

    async def callback(self, interaction: discord.Interaction):
        if self.values[0] == "kochen":
            channel = get(interaction.guild.channels, id=1107575539297964032)
            await channel.send(f"Du hast {self.values[0]} gewählt")




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

    @discord.ui.select(
        min_values=1,
        max_values=1,
        placeholder="Triff eine Auswahl",
        options=options
    )
    async def select_callback(select, interaction):
        pass # Hier kannst du Code hinzufügen, um auf die Optionen des Dropdown-Menüs zu reagieren

#

discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: 'TutorialSelect' object has no attribute 'to_components' sobald ich den kanal einbauen will gehts schief

solid ingot
#

hm bin mir nicht sicher, versuch mal pycord neu zu installieren nachdem du pycord_components deinstalliert hast

jovial yew
#

Oki mache ich

jovial yew
#

ändert nix

urban glen
#

Okay Anfänger Frage aber wie mache ich das der Text nicht auf den vorherigen Text respondet wird

crude heath
crude heath
#

Ah wait

#
await interaction.response.send_message("Nachricht gesendet",ephemeral=True)
await interaction.channel.send(nachricht)
#

probier mal das, wenns nd geht musste maybe channel.send zu channel.send_messages machen bin mir nd sicher

urban glen
#

jo

#

danke

#

Was meinst du?

#

Kann man durch einen Button eine ganze View von Buttons deaktivieren?

crude heath
urban glen
#

in keinen der Videos von Timo gesehen xD

solid ingot
crude heath
urban glen
#

👍

urban glen
urban glen
crude heath
#

Siehe Code im github

urban glen
#
        await interaction.response.send_message(view=AccountButton(), ephemeral=True)
        await interaction.response.edit_message(view=None)
crude heath
#

Okay, so geht das nd

#

Du kannst nur 1x responden

urban glen
#

hmm

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
crude heath
solid ingot
#

hast du schon folge 2 geschaut?

urban glen
solid ingot
#

hat er doch auch gemacht oder

crude heath
#

Nd um die response

ruby sparrow
#
Traceback (most recent call last):
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\Rysii\OneDrive\Desktop\neu discord bot\main.py", line 64, in on_ready
    bot.ready(
    ^^^^^^^^^
AttributeError: 'Bot' object has no attribute 'ready'```
#
@bot.event
async def on_ready():
    new_info = {"Custom Info": "This is a custom info"}

    bot.ready(
        title="Bot is online!",
        style=ezcord.ReadyEvent.default,
        default_info=True,
        new_info=new_info,
        colors=["red", "blue", "green"],
    )```
solid ingot
#

du musst ezcord.Bot nutzen

ruby sparrow
solid ingot
#

dann hast du vlt eine ältere version

#

mach mal pip install ezcord --upgrade

#

die version kannst du mit print(ezcord.__version__) prüfen

viscid lake
#

bin grad richtig verwirrt hab pycharm kurz geschlossen davor ging der bot und jetzt kommt

  File "C:\Users\sebas\Desktop\dev\CyberBase\main.py", line 2, in <module>
    import ezcord
  File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\__init__.py", line 6, in <module>
    from . import components, emb, logs, times, utils
  File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\components.py", line 27, in <module>
    from .internal import get_error_text
  File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\internal\__init__.py", line 2, in <module>
    from .embed_templates import *
  File "C:\Users\sebas\Desktop\dev\CyberBase\venv\Lib\site-packages\ezcord\internal\embed_templates.py", line 59, in <module>
    ctx: discord.ApplicationContext | discord.Interaction,
         ^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'discord' has no attribute 'ApplicationContext'```
#

ich weiß nicht an welchem code es liegt da er grade noch ging

solid ingot
#

sieht nach einem installationsfehler aus, schau mal in #🔍・pycord-help

viscid lake
#

geht immer noch nicht

solid ingot
#

falls du andere oackages hast die etwas mit Discord zu tun haben, deinstalliere die

viscid lake
#

hab ich geschaut dc.py hab ich nicht

#

das wundert mich ja

#

Wie gesagt hab nur pycharm für 3 min geschlossen gehabt davor war er ja auch an und aktiv

solid ingot
#

welche pycord Version hast du

viscid lake
#

2.4.1

solid ingot
#

komisch, schau evtl mal ob es wieder an so einem Import liegt wie das letzte Mal also du diesen anderen werden Error hattest

viscid lake
#

Huh

#

Asoo hab an sich nichts am Code gemacht

#

Das letzte mal war gestern Abend

solid ingot
#

schick Mal ne Liste mit allen packages die du hast

viscid lake
#

Du meinst wo pycord oder

solid ingot
#

ne alle

viscid lake
#

Ja das war ein beispiel peepothink

#

ja nvm

#

glaube ich hab den fehler

#

Hab den Fehler gefunden

solid ingot
#

alles mit Discord deinstallieren

tawdry leaf
#

Oha Timo wieso so gemein

safe tendon
next echo
#

Was ist der Unterschied zwischen Discord.py und py.cord?

solid ingot
#

das sind 2 bibliotheken mit denen du discord bots machen kannst, du musst dich aber für eine entscheiden, da beide zusammen nicht funktionieren

next echo
#

Aber was sind vor und nachteile?

limpid wolf
#

beides eigentlich recht ähnlich

next echo
#

fork?

limpid wolf
#

weitergeführt

#

weil d.py mal "beendet" wurde

#

wird dann aber iwi wieder weitergeführt

next echo
#

was würdest du von den beiden bevorzugen

limpid wolf
#

nutze selber pycord

#

in timos videos wird auch pycord genutzt

solid ingot
#

mit pycord kann dir hier jedenfalls am besten geholfen werden, da das hier die meisten nutzen

next echo
#

ok bleibe dann glaube ich auch bei pycord

ruby sparrow
vocal nymph
#

muss denn code so hochladen , da es zu viele zeichen sind, im anhang kommt der fehler und die erklärung

#

ich will ein timeout cmd mit daten bank machen aber immer wenn ich den befehlt ausführe kommt der error

raw olive
raw olive
#
import discord
from discord.ext import commands
from discord.commands import slash_command, Option
from datetime import timedelta
import sqlite3

class timeout(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.conn = sqlite3.connect('timeout.db')
        self.c = self.conn.cursor()
        self.c.execute('''CREATE TABLE IF NOT EXISTS timeout (
                            timeouted_user TEXT,
                            guild_id INTEGER,
                            reason TEXT,
                            timeouted_by TEXT,
                            duration INTEGER)''')

    @slash_command(name='timeout', description="Timeoute ein Member")
    @discord.default_permissions(kick_members=True)
    async def timeout(self, ctx,
                      member: Option(discord.Member, "Wähle einen Memeber"),
                      reason: Option(str, required=True),
                      days: Option(int, max_value=29, default=0, required=False),
                      hours: Option(int, default=0, required=False),
                      minutes: Option(int, default=0, required=False),
                      seconds: Option(int, default=0, required=False)):

        timeouted_by = ctx.author.name
        timeouted_user = member.name
        duration = timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)

        self.c.execute("INSERT INTO timeout (timeouted_by, timeouted_user, reason, duration) VALUES (?, ?, ?, ?)",
                       (timeouted_by, timeouted_user, reason, duration.total_seconds()))

        if member.guild_permissions.ban_members:
            await ctx.respond("Du kannst Mitglieder mit einem höheren Rang nicht timeouten!", ephemeral=True)
            return

        if member.id == ctx.author.id:
            await ctx.respond("Du kannst dich nicht selbst timeouten!", ephemeral=True)
            return

        await member.timeout_for(duration, reason=reason)

        embed = discord.Embed(
            title="Timeout",
            description=f"{member.mention} wurde für {days} Tage, {hours} Stunden, {minutes} Minuten und {seconds} Sekunden getimeoutet. Der Grund ist '{reason}'.",
            color=discord.Color.red()
        )
        embed.set_footer(text=f"Verantwortlicher: {ctx.author}")

        embed2 = discord.Embed(
            title=f"Du wurdest auf {ctx.guild.name} getimeoutet",
            description=f"{member.mention}, du wurdest auf {ctx.guild.name} getimeoutet für {days} Tage, {hours} Stunden, {minutes} Minuten und {seconds} Sekunden.",
            color=0xFF0000
        )
        embed2.add_field(name=f"Der Grund ist {reason}", value=f"Du wurdest von {ctx.author} getimeoutet.")

        channel = discord.utils.get(ctx.guild.channels, name='timeout-logs')
        await channel.send(embed=embed)
        await ctx.respond("Der Member wurde erfolgreich getimeoutet!", ephemeral=True)
        await member.send(embed=embed2)

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

So Funktioniert es

vocal nymph
#

Vielen Dank

raw olive
#

Kein ding :3

tawdry leaf
#

Wieso optional bei Channel ?

#

Musst du required machen

ruby sparrow
#

ich hab eine frage wie kann man mit days timeout nachen

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @ruby sparrow, du bist jetzt Level 18 🎉

Du hast insgesamt 1,522 Nachrichten geschrieben.

ruby sparrow
#
Traceback (most recent call last):
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "c:\Users\Rysii\OneDrive\Desktop\neu discord bot\cogs\Giveaway System.py", line 34, in giveaway
    await ctx.respond(f"Glückwunsch {winner.mention}! Du hast gewonnen {prize}!")
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\context.py", line 282, in respond
    return await self.interaction.response.send_message(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 825, in send_message
    await self._locked_response(
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 1090, in _locked_response
    await coro
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\webhook\async_.py", line 219, in request
    raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction```
#
import discord
from discord.ext import commands
from discord.commands import slash_command
import asyncio
import random

#Copyright (c) 2023 & ama#0999

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

    @slash_command(description="Giveaway System")
    @commands.has_permissions(manage_guild=True)
    async def giveaway(self, ctx, duration: int, *, prize: str):
        embed = discord.Embed(title="Giveaway", description=f"Prize: {prize}", color=discord.Color.rot())
        embed.add_field(name="Hosted by", value=ctx.author.mention)
        embed.set_footer(text=f"Ends in {duration} seconds")

        message = await ctx.send(embed=embed)
        await message.add_reaction("🎉")  

        await asyncio.sleep(duration)  
        updated_message = await ctx.channel.fetch_message(message.id)  
        reaction = discord.utils.get(updated_message.reactions, emoji="🎉")

        if reaction and reaction.count > 1:
            participants = await reaction.users().flatten()  

            winner = random.choice(participants)
            embed.set_footer(text=f"Ended! Winner: {winner.name}")
            await message.edit(embed=embed)

            await ctx.respond(f"Glückwunsch {winner.mention}! Du hast gewonnen {prize}!")

        else:
            embed.set_footer(text="Giveaway ended. Keine Teilnehmer :(")
            await message.edit(embed=embed)
            await ctx.respond("Giveaway ended. Keine Teilnehmer.")




def setup(bot):
    bot.add_cog(Giveaway(bot))
raw olive
#
await ctx.respond(f"Glückwunsch {winner.mention}! Du hast gewonnen {prize}!")

Der Bot kann die Interaktion nicht aufrufen deswegen schmeißt er dir den Fehler aus

raw olive
#

du kannst dann den default_avatar Nutzen

vocal nymph
raw olive
raw olive
ruby sparrow
raw olive
# ruby sparrow ka warum
import discord
from discord.ext import commands
from discord.commands import slash_command
import asyncio
import random

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

    @slash_command(description="Giveaway System")
    @commands.has_permissions(manage_guild=True)
    async def giveaway(self, ctx, duration: int, *, prize: str):
        embed = discord.Embed(title="Giveaway", description=f"Prize: {prize}", color=discord.Color.red())
        embed.add_field(name="Hosted by", value=ctx.author.mention)
        embed.set_footer(text=f"Ends in {duration} seconds")

        message = await ctx.send(embed=embed)
        await message.add_reaction("🎉")
        await ctx.respond("Giveaway erfolgreich gestartet", ephemeral=True)

        await asyncio.sleep(duration)
        updated_message = await ctx.channel.fetch_message(message.id)
        reaction = discord.utils.get(updated_message.reactions, emoji="🎉")

        if reaction and reaction.count > 1:
            participants = await reaction.users().flatten()

            winner = random.choice(participants)
            embed.set_footer(text=f"Ended! Winner: {winner.name}")
            await message.edit(embed=embed)

            try:
                await ctx.send(f"Glückwunsch {winner.mention}! Du hast {prize} gewonnen!")
            except discord.HTTPException:
                pass

        else:
            embed.set_footer(text="Giveaway ended. Keine Teilnehmer :(")
            await message.edit(embed=embed)
            await ctx.send("Giveaway ended. Keine Teilnehmer.")

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

so Funktioniert es

vocal nymph
#

bei mir kommt aber auch noch in pycharm so ein timeout.db-jurnal

vocal nymph
#

hätte noch eine frage und zwar wie kann man bei Timos hoosting die datenbank verbindung aufrecht halten also das mann es immernoch auslesen kann mit den db browser

limpid wolf
vocal nymph
#

wie lädt man die denn runter? also wenn es ein Video gibt guck ich es mir an

solid ingot
#

du kannst hier auf download klicken

urban glen
#

Wie ist es möglich das wenn ein User kein Avatar hat trotzdem das Discord Avatar anzeigen zu lassen
Error:

Application Command raised an exception: AttributeError: 'NoneType' object has no attribute 'url'
solid ingot
next echo
#

weiß wer evtl ob ich ihn Pycharm mehrere Zeilen mit ein # markieren kann

solid ingot
#

ja, mit Strg und das / zeichen auf dem numpad

#

alternativ kannst du auch dreifache anführungszeichen nutzen

"""
print("test")
"""
next echo
#

ok

vocal nymph
mental hamlet
#

gerne KEK_Boom

next echo
#

Warum funktioniert der Code nicht?

import discord
from discord.ext import commands, tasks


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


@tasks.loop(seconds=10)
async def cdeletecommandclear(self):
    print("test")
    channel = self.bot.get_channel(1111380423021436938)
    messages = await channel.history(limit=200).flatten()
    for message in messages:
        if message.pinned:
            pass


        else:
            await message.delete()

    @commands.Cog.listener()
    async def on_ready(self):
        print("Bot is ready")
        self.my_task.start()


def setup(bot):
    bot.add_cog(Auto(bot))
vivid sky
#

Error?

next echo
#

Hat sich schon erledigt

crude heath
#

Jemand ne Idee warum der command verschwunden is...

tawdry leaf
crude heath
tawdry leaf
#

aso xD

crude heath
#

Der ging gerade noch und wird nd mehr angezeigt xd

tawdry leaf
crude heath
#

Immer wenn ich halt den 1x gesendet hab verschwindet der halt

tawdry leaf
#

hmm

limpid wolf
#

Versuch mal in nem anderen Kanal

tawdry leaf
crude heath
#

haha

next echo
#

Gibt es ein Command das halt der Command erst ausgeführt wird wenn jemand den Server boosted?

raw olive
#

ist aber nicht ohne einen Umweg möglich

ruby sparrow
#

es ist un möglich

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


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


        @slash_command(description="boosted")
        @commands.guild_only()
        @commands.guild_owner()
        @commands.bot_has_guild_permissions(manage_guild=True)
        async def boostedd(self, ctx,):
            boost_level = ctx.guld.premium_tier #code by ama


            
    if boost_level > 0:
        await ctx.respond("Du hast den Server geboostet! Der Befehl wird ausgeführt.")
        
    else:
        await ctx.respond("Du musst den Server boosten, um diesen Befehl ausführen zu können.")



def setup(bot):
    bot.add_cog(boostedd(bot))
#
  File "c:\Users\Rysii\OneDrive\Desktop\neu discord bot\bot.py", line 120, in <module>
    bot.load_cogs("cogs")
    ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\ezcord\bot.py", line 152, in load_cogs
    self.load_extension(f"{'.'.join(path.parts)}.{name}")
  File "C:\Users\Rysii\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\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 777, in _load_from_module_spec
    raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.boosted' raised an error: SyntaxError: 'await' outside function (boosted.py, line 21)```
vivid sky
#

guck dir die Einrückung an

ruby sparrow
ruby sparrow
vivid sky
#

Warum steht da code by ama wenn du deinen eigenen code nicht verstehst.

#

??

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @vivid sky, du bist jetzt Level 13 🎉

Du hast insgesamt 715 Nachrichten geschrieben.

tawdry leaf
vivid sky
tawdry leaf
#

das er ama heißt auf discord

vivid sky
#

ja was soll ich jetzt machen xd

vivid sky
tawdry leaf
ruby sparrow
#

ja

#

stimme

ruby sparrow
raw olive
#

du kannst es zwar nicht abfangen aber durch das Vergeben der Rolle kann man die Nachricht ersetzen

ruby sparrow
#

ja

#

stimme

wise stone
#

OperationalError: database is locked. This error occurs when more than one process is using the same session file, that is, when you run two or more clients at the same time using the same session name or in case another program has accessed the file.

d.h. das die Datenbank zeitgleich doppelt genutzt wird und daher es nicht funktioniert

crude heath
#

Mein Command mobbt mich. Erst kommt diese Meldung und dann verschwindet der Command einfach, ohne nen Restart kann ich den nd mehr nutzen ._.

wise stone
crude heath
wise stone
#

wenn ja kann es daran liegen das es jedes Mal überschrieben wird

wise stone
#

ansonsten abwarten oder bot neuinviten

crude heath
wise stone
#

kann auch an der API liegen bin ich leider nicht sicher weil es zu langsam die Slash Commands lädt weil es ja wie gesagt vorhin mehrmals überschrieben würde

lusty palm
#

Ich hab ne frage bezüglich modals bzw button modals

crude heath
#

Hau raus

lusty palm
#

in dem video wird eigentlich ganz einfach erklärt wie man ein button mit nem modal erstellt

#

aber ich wollte gern den label des Buttons so ändern, dass ich auf die andere Klasse wo der Slash command ist zugreife

#

einfaches Beispiel:
Ich möchte über die datenbank etwas rausfischen was ich nur über die User ID erhalte, und das dann als label in dem Button haben, der auch gleichzeitig das modal öffnet 😅

limpid wolf
#

Wird im Button Video meine ich erklärt

#

kann es dir auch erklären, bin grade #1020760853634633879

solid ingot
#

hast du vielleicht Änderungen an der Datenbanken gemacht und nicht gespeichert?

lusty palm
crude heath
#

Kann man nen Paginator im On ready adden? Also dass der auch immer benutzbar is

solid ingot
#

hast du vielleicht Änderungen an der Datenbanken gemacht und nicht gespeichert?

limpid wolf
solid ingot
#

ach digga mein Internet

#

wollte auf diese Nachricht antworten

limpid wolf
#

xdd

crude heath
#

Warum kommt dieser Error:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 786, in _load_from_module_spec
setup(self)
File "/home/container/cogs/work.py", line 95, in setup
bot.add_cog(work(bot))
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 656, in add_cog
cog = cog._inject(self)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 567, in _inject
raise e
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 561, in _inject
bot.add_command(command)
AttributeError: 'Bot' object has no attribute 'add_command'. Did you mean: 'all_commands'?
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/main.py", line 21, in <module>
bot.load_extension(f"cogs.{filename[:-3]}")
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 910, in load_extension
self._load_from_module_spec(spec, name)
File "/home/container/.local/lib/python3.10/site-packages/discord/cog.py", line 791, in _load_from_module_spec
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.work' raised an error: AttributeError: 'Bot' object has no attribute 'add_command'

Hab die Cog Methode doch eigtl. richtig, oder?

#
def setup(bot):
    bot.add_cog(work(bot))
solid ingot
crude heath
#

Ah

#

Thx

viscid lake
#

wie genau bekommt man den fehler weg
ERROR: Could not install packages due to an OSError: [Errno 30] Read-only file system: 'init.py'

hallow kite
#

Versuchst du ein package in einem Pfad zu installieren in dem eine lib abgespeichert ist? Oder wann genau tritt der Fehler auf?

viscid lake
hallow kite
snow hatch
#

wie kann ich bei einem command herausfinden in welchem server dieser ausgeführt wurde?

digital crypt
#

Frage wie kann man seinen discord bot verifizieren ? so wie bei @burnt prairie

obtuse estuary
#

Mann muss erstmal auf glaube 100 oder 75 servern sein und dann muss man sivh dafür irgendwie bewerben

#

Also der bot muss auf 100 oder 75 servern sein

snow hatch
#

danke

ruby sparrow
digital crypt
#

danke

solid ingot
#

bitte schicke nur den Code, der für das Problem relevant ist. wo wird der Server denn immer wieder geaddet und was soll stattdessen passieren?

solid ingot
#

dann hast du den primary Key falsch gewählt

snow hatch
#
class Ticket(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

        self.ticket = "ticket.db"
        self.ticketinfos = "ticketinfos.db"
    ticket = SlashCommandGroup("ticket", description="Ticket system")
    async def check_guild(self, guild):
        async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
            await ticketinfos.execute("INSERT OR IGNORE INTO ticktinfos (guild) VALUES (?)", (guild,))
            await ticketinfos.commit()

    @commands.Cog.listener()
    async def on_ready(self):
        self.bot.add_view(TutorialView(self.bot))
        self.bot.add_view(main(self.bot))
    @ticket.command(description="Ticket settings")
    @commands.has_permissions(administrator=True)
    async def settings(self,ctx, category: Option(discord.CategoryChannel),log: Option(discord.TextChannel), supporter: Option(discord.Role)):
        await self.check_guild(ctx.guild)
        async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
            await ticketinfos.execute(
                "UPDATE ticketinfos SET category = ? WHERE guild = ?", (category,ctx.guild )
            )
            await ticketinfos.commit()
        async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
            await ticketinfos.execute(
                "UPDATE ticketinfos SET team = ? WHERE guild = ?", (supporter,ctx.guild)
            )
            await ticketinfos.commit()

        async with aiosqlite.connect(self.ticketinfos) as ticketinfos:
            await ticketinfos.execute(
                "UPDATE ticketinfos SET log_channel = ? WHERE guild = ?", (log, ctx.guild)
            )
            await ticketinfos.commit()```
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: OperationalError: no such table: ticktinfos
Wieso? Die Tabelle gibts, verstehe nicht warum er sagt die gibt es nicht
solid ingot
#

in der DB auf die zu gugreifst gibt es die tabelle nicht, hast du evtl mehrere DBs und die tabelle evtl ist in einer anderen datenbank?

snow hatch
solid ingot
#

hast du geprüft ob die tabelle wirklich existiert mit einem DB browser?

snow hatch
#

ja
hat sich erledigt, hatte in einer anderenzeile ausversehen mich vetippt

#

Wie gettet man einen server? mit self.bot.get_guild kommt bei mir None raus? Weil mir gesagt wird von sqllite das das format guild nicht akzeptiert wird

solid ingot
#

in der DB kannst du nur die ID speichern ja. versuchs vlt mal mit fetch_guild

snow hatch
#
<coroutine object Client.fetch_guild at 0x0000017536194F40>
Ignoring exception in on_application_command_error
Traceback (most recent call last):
  File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "C:\Users\gianl\PycharmProjects\botanticide\cogs\ticket.py", line 34, in settings
    await self.check_guild(ctx.guild)
  File "C:\Users\gianl\PycharmProjects\botanticide\cogs\ticket.py", line 24, in check_guild
    await ticketinfos.execute("INSERT OR IGNORE INTO ticketinfos (guild) VALUES (?)", (guild,))
  File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 192, in execute
    cursor = await self._execute(self._conn.execute, sql, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 137, in _execute
    return await future
           ^^^^^^^^^^^^
  File "C:\Users\gianl\AppData\Local\Programs\Python\Python311\Lib\site-packages\aiosqlite\core.py", line 110, in run
    result = function()
             ^^^^^^^^^^
sqlite3.ProgrammingError: Error binding parameter 1: type 'coroutine' is not supported```
#

also mit fetch kriege ich fetten fehler

solid ingot
#

await vergessen?

snow hatch
#

ey

#

ich bin komplett verwirrt warum will der jetzt was mit snowflake

discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In guild_id: Value "Test Bot Server" is not snowflake.
#

bzw. was heipt das mit snowflake

solid ingot
#

funktioniert nur mit der ID, nicht mit dem server namen

#

ist bei get_guild aber genauso

snow hatch
#

gefixxt, andere frage finde da nicht in den docs
Habe mit Options(discord.CategoryChannel) eine kategorie bei einem command angegeben, wie kann ich von dem jetzt di id kriegen?

urban glen
#

Wie heißt die Option? @snow hatch

snow hatch
#

Habe das so angeben category: Option(discord.CategoryChannel)
Klappt auch kriege es aber halt als category, will es in die id umwandeln um es in eine db zu stecken

solid ingot
#

einfach mit .id

next echo
#

Ich habe ezcord installiert und auch importiert und bot= ausgetauscht aber wenn ich jetzt mein Bot starten will kommt dieser Error:

Traceback (most recent call last):
  File "C:\Users\CDI\PycharmProjects\discord_bot\main.py", line 5, in <module>
    import ezcord
  File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\__init__.py", line 6, in <module>
    from . Import components, emb, logs, times, utils
  File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\components.py", line 27, in <module>
    from .internal import get_error_text
  File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\internal\__init__.py", line 2, in <module>
    from .embed_templates import *
  File "C:\Users\CDI\PycharmProjects\discord_bot\venv\lib\site-packages\ezcord\internal\embed_templates.py", line 59, in <module>
    ctx: discord.ApplicationContext | discord.Interaction,
TypeError: unsupported operand type(s) for |: 'type' and 'type'
ruby sparrow
urban glen
#

@solid ingot

ruby sparrow
#

ja stimme

solid ingot
#

Versuch es bis dahin schonmal bei zu installieren

urban glen
#

Das wäre das problem geht leider nicht anders sind zu viele zeichen

limpid wolf
urban glen
#

ich kriege keinen es gibt einfach nichts aus

limpid wolf
#

Schon getestet ob der Cog geladen wird?

urban glen
#

mach ich kurz

limpid wolf
#

Oder komm doch kurz call geht bestimmt schneller

urban glen
#

okay

#

ich komme in 5 min muss headset laden :c

ruby sparrow
#

@urban glen hey ich möche dir nur was sagen hier muss du die role id machen wenn du auf dein server schon level 2 bist denn gehts nicht

solid ingot
#

@next echo ich habe es gerade getestet und es liegt tatsächlich an ezcord. ich habe vergessen, es kompatibel mit python 3.9 zu machen. im nächsten update werde ich das beheben, bis dahin könntest du auf python 3.10 umsteigen, damit es bei dir jetzt schon funktioniert

ruby sparrow
#

hey ich wollte fragen wie geht mehr button zu add

solid ingot
#

wie du mehr buttons zu einem view hinzufügst?

safe tendon
safe tendon
#

somit kannst du bis zu 25 button machen und 5 im gleichen row

viscid lake
#

kann ma choices abfragen ob ein user admin ist?

#

zb das

        elif reason == "Ban eines Admins | Ban - Permanent | 13":
            duration = timedelta(days=9999)``` nur ein admin benutzen kann
solid ingot
#

also das eine bestimmte choice nur von einem admin genutzt werden kann?

viscid lake
#

ja also nur bestimme choices

solid ingot
#

hm das müsstest du mit if abfragen innerhalb der methode prüfen

viscid lake
#

wie geht das wenn ich fragen darf also nur grob

solid ingot
#

du könntest auch autocomplete benutzen um admins andere sachen anzuzeigen als normalen usern, beachte dabei aber du dann trotzdem prüfen musst, was eingegeben wurde, da normale user theoretisch auch sachen eingeben können, die ihnen nicht angezeigt werden

viscid lake
#

dange

viscid lake
solid ingot
#

ich versuche aber heute noch das ezcord update mit dem fix rauszubringen

next echo
#

Ok

#

Hab gedownloadet was jetzt?

solid ingot
#

jetzt müsstest du diese neue version bei pycharm auswählen

next echo
#

Wie?

solid ingot
#

unten rechts bei pycharm solltest du das auswählen können

next echo
#

Ist net bei mir hab nur 3.9 doppelt

solid ingot
#

hmm

next echo
#

Was jetzt?

solid ingot
#

klick mal auf interpreter settings, da solltest du python 3.10 auswählen können

#

wenns nicht klappt keine sorge, ich mach das update gerade fertig

next echo
#

Ne finde aber auch komisch das ich 2 mal 3.9 hab kann ich irgendwie eins von den beiden löschen weil ist ja unnötig 2 mal 3.9 zu haben?

solid ingot
#

such einfach mal in der suchleiste nach python da sollte ein uninstall button sein

next echo
#

Hab das da nur 1 mal

#

Brauch ich davon überhaupt alles?

solid ingot
#

klick mal hier auf show all, da solltest du alle versionen verwalten können

next echo
#

Wo hast das aufgerufen?

solid ingot
#

unten rechts wenn du auf interpreter settings gehst

next echo
solid ingot
#

das sind virtual environments. da kannst du dir für jedes projekt sozusagen ein eigenes python erstellen, um für jedes projekt unterschiedliche packages zu installieren

#

wenn du die versionen trotzdem entfernen möchtest, kannst du auf "show all" klicken und dann auf das minus symbol

next echo
#

Timo ist das PyCharm überhaupt richtig weil bei dir steht das du PyCharm Professional benutzt und nicht Community Edition?

wise stone
#

@next echo er benutzt pycharm Prof den er als Schüler / Student kostenlos erhalten siehe https://youtu.be/Wan3wtjyQJs

next echo
#

Ahh ok danke für die Info :)

wise stone
#

natürlich kannst du die Community Version nutzen hat die gleiche Sachen nur ein paar Kleinigkeiten weniger aber sind keine große Unterschiede

next echo
#

Ok

wise stone
#

wird auch im Video gesagt

next echo
#

Was brauch ich davon überhaupt oder brauch ich davon alles David?

viscid lake
#

Timo?

solid ingot
next echo
#

Timo?

solid ingot
#

ich würde nichts davon deinstallieren wenn du die python version noch brauchst

#

wenn du nur noch python 3.10 brauchst, kannst du 3.9 aber deinstallieren

next echo
#

Frage mich auch warum bei PyCharm 3.9 nur angezeigt wird und net 3.10

#

Hab da nur 3.9

#

Muss ich das irgendwie rein ziehen ihn PyCharm?

solid ingot
#

wenn es in pycharm nicht direkt angezeigt wird, müsstest du in pycharm auswählen, wo du dein python installiert hast

#

hast du python zum path hinzugefügt? da konnte man einen haken bei der installation setzten

next echo
#

Musste es bei PyCharm selbst einfügen wie geht das das es automatisch gemacht wird?

solid ingot
#

eigentlich indem man während der installation den haken bei "zum path hinzufügen" setzt

#

manchmal auch so

next echo
#

Ok egal hab jetzt selbst hinzugefügt lädt grade nochmal runter ihn PyCharm

#

Warum ist bei 3.9 ein Haken und bei 3.10 nicht und die Packages wurden nicht übertragen

solid ingot
#

die packages werden nicht übertragen, installier am besten einfach die die du grade brauchst neu

next echo
#

Ok

#

Und warum steht bei dem einen (discord_bot) und hat ein haken und beim anderen net?

solid ingot
#

das ist ein v und steht für "virtual environment", also dass es zu einem bestimmtem bot gehört

next echo
#

Kann ich das auch für 3.10 machen?

solid ingot
#

ja

next echo
#

Wie?

solid ingot
#

wenn du hier draufklickst, kannst du virtual environment auswählen

next echo
#

?

#

Meinst das?

Aber ok ist ausgegraut und unten links ist glaub irgendein Error am stehen aber ka was ich machen soll

solid ingot
#

du musst erst den venv ordner aus deinem projekt löschen

next echo
#

Ok und was bringt das ist der net wichtig?

native plume
#

Hat schon jmd was zu den neuen Usernames gehört? Bzw wie man seinen Code anpassen muss?

solid ingot
#

aktuell musst du darauf achten, dass du nirgends auf den "discriminator" eines users zugreifst

#

sonst musst du in der übergangsphase nicht viel beachten

native plume
#

Also gesondert auf den Discriminator? Also sowas wie Discord.User geht noch ?

#

Da wird dann einfach der neue genommen? Oder wird der alte mit diesem Originally known as genommen

next echo
solid ingot
solid ingot
next echo
#

Ahh ok danke :)

vivid sky
#

warum wird bei mir bot.user als None rausgegeben?

solid ingot
#

weiß nicht, vlt wegen member intent?

vivid sky
#

habe immer ```py
intents=discord.Intents.all()

solid ingot
#

problem behoben

lusty palm
#

kann man herausfinden ob ein Modal abgebrochen wurde?

solid ingot
urban glen
#

Wie gette ich die commands aus einer SlashCommandGroup also wie krieg ich jeden cmd aus der SlashCommandGroup weil mit bot.commands kriegt man nur die die "nicht" in einer SlashCommandGroup drin sind

solid ingot
#

bot.walk_application_commands() zum beispiel wenn du alle auf einmal willst

urban glen
#

Wenn das geht kriegst du 10 kekse

solid ingot
#

uwu

urban glen
#

falsch angewendet oder ist das normal?

solid ingot
#

list(bot.walk_application_commands())

urban glen
#

Ja aber er kriegt nur die cmds die nicht in einer gruppe sind

#

ich will ja auch die die in einer gruppe sind yk?

solid ingot
#

also bei mir gehts

urban glen
#

hm

#

liegt es daran das die gruppen nicht in der datei sind?

solid ingot
#

groups können aktuell nur im selben cog erstellt werden ja

urban glen
#

mh ok

lusty palm
#

wie nutze ich die on_timeout() Funktion beim Modal?

#

copilot hat mir das hier vorgeschlagen:

solid ingot
#

in deiner modal klasse kannst du einfach die methode on_timeout definieren ja

lusty palm
#

gibt leider auch zu wenig informationen/videos im internet über modals

solid ingot
#

hmm, du müsstest wahrscheinlich die nachricht, die du bearbeiten möchtest, an das modal übergeben

lusty palm
#

ne das war nur ein beispiel von copilot, ich will eigentlich, dass bei nem timeout zb ne nachricht in den chat gesendet wird mit "timeout" oder so

#

und das modal offensichtlich automatisch geschlossen wird (falls das geht)

solid ingot
#

das mit dem schließen weiß ich auch nicht, aber in dem fall müsstest du evtl den channel an dein modal übergeben und die nachricht dann da rein senden

lusty palm
solid ingot
#

schau hier vlt mal vorbei

lusty palm
molten abyss
#

Wie kann man mit Webhook Timed Messages machen?

molten abyss
#

Geht das so? ```py
@bot.event
role_ids = [1109579418961186868, 1071488019158282270, 1109579389349412975, 1109579325331738705]

    for role_id in role_ids:
        role = discord.utils.get(member.guild.roles, id=role_id)
        if role:
            await member.add_roles(role)

async def on_member_join(member):
channel = member.guild.get_channel(1108688734733484124)
await channel.send("hi")

obtuse estuary
#

Bin gerade am Handy aber glaub das passt so

urban glen
#
@bot.event
async def on_member_join(member):
    role_ids = [1109579418961186868, 1071488019158282270, 1109579389349412975, 1109579325331738705]
    for role_id in role_ids:
        role = discord.utils.get(member.guild.roles, id=role_id)
        if role:
            await member.add_roles(role)
    channel = member.guild.get_channel(1108688734733484124)
    await channel.send("hi")
urban glen
#

Ja, ist richtig

molten abyss
#

Nicht Pingen

solid ingot
#

wie meinst du das?

molten abyss
#

Ja

solid ingot
#

du kannst den Error Händler aktivieren und deaktivieren

#

hmm

#

sicher?

#

kannst du ein paar Screenshots schicken vom Code und von dem Error der in Discord kommt

#

das ezcord_ muss weg

#

nur error_handler=False

urban glen
#

Warum machst du es nicht?

urban glen
urban glen
#

immer wenn ich eine class dafür mache oder setup fehler code

#

Da wirds erklärt

solid ingot
#

dieser Channel ist nicht dazu gedacht um andere für sich coden zu lassen. wenn du einen Setup Fehler hast, dann schick den Fehler rein

urban glen
solid ingot
#

ich denke Mal das zählt unter "fragen nach fertigen Code"

urban glen
#

Tmm oke oke

#

dann habe ich nh andere frage

#

Stell diese Frage ._.

#

undzwar ich habe so nen ticket bot und wenn ich den in meinen anderen cogs anmache gehen die nicht nur der ticket

#

was?

#

Sorry, aber ich verstehe deine Frage nicht

#

Also er zeigt die anderen befehle gar net

#

Wobei ich in deinem Satz auch keine Frage sehe

#

außer ticket

#

tmm @urban glen dann machen wir das schritt für schritt

#

@urban glen tmm

#

Ignoring exception in on_connect
Traceback (most recent call last):
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\client.py", line 378, in _run_event
await coro(*args, **kwargs)
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1164, in on_connect
await self.sync_commands()
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 719, in sync_commands
registered_commands = await self.register_commands(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 599, in register_commands
registered = await register("bulk", data, _log=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\riziw\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\http.py", line 371, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In 28: Application command names must be unique
was sagt dieser Fehler code ?

#

Steht da
Als ganzer Satz

#

Application command names must be unique

#

was heißt das mein englisch nicht das beste

#

Wo kann ich diese anwendungen deulich machen ?

solid ingot
#

du hast einen slash Command Namen doppelt

urban glen
#

weiß man wo ?

#

Müsstest suchen, wo du 2 gleiche hast

#

Hast du denn viel Code?

#

Ja

#

So um die 30 cogs

#

Weißt du denn ab welcher Datei das aufgetreten ist?

#

Eig ab dem test bzw ticket cog

#

habe dann gerade wieder gelöscht

#

funktioniert aber net aber das ist glaube schon länger so

novel ore
#

Gibt es ein Event was ausgeführt wird wenn ein user einen anderen von dem voice talk 1 u voice talk 2 movt

#

finde in denn docs nichts

urban glen
#

Bin aber nicht sicher, hatte damit nie was gemacht

novel ore
#

ist das nicht nur wenn der joint und verlässt

solid ingot
#

beides

digital crypt
#

Hey weis einer zufälig wie man eine TERMS OF SERVICE linke krigt und PRIVACY POLICY URL

digital crypt
#

wie mache ich die ?

vivid sky
#

wie man halt seiten macht

digital crypt
#

._.

#

super hilfreich

vivid sky
#

sehr präzise Frage

solid ingot
# digital crypt wie mache ich die ?

gibt viele Möglichkeiten, entweder mit HTML, dann kannst du das mit github Pages oder netlify hosten, oder du machst es mit einem Anbieter wie gitbook

digital crypt
solid ingot
#

das sieht aus wie eine html datei, das könntest du so auch machen

digital crypt
#

verstehe nicht wie bin einfach zu dumm

safe tendon
#

Guck dir einem tutorial mal dazu an

digital crypt
#

hab ich schon .-.

last depot
#

Weiß jemand wie man ein bot panel für ein discord bot macht?

urban glen
#

Wenn du es leicht haben willst, nutz discord-ext-ipc und flask / flask_discord

#

Aber dann musst du den Bot und die Website auf einem Server laufen lassen

last depot
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @last depot, du bist jetzt Level 2 🎉

Du hast insgesamt 9 Nachrichten geschrieben.

Du hast <@&1042123300970696705> erhalten!

urban glen
last depot
#

Ich meine das mit der Webseite btw panel das es auf den bot funktioniert

last depot
solid ingot
#

discord.Attachment

solid ingot
molten abyss
#

Brauchche Hilfe:

Ignoring exception in command warnings:
Traceback (most recent call last):
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 982, in _invoke
    await self.callback(ctx, **kwargs)
  File "c:\Users\King Silvio\Downloads\main.py", line 351, in warnings
    await ctx.respond(embed=warnings_embed, ephemeral=False)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\context.py", line 282, in respond
    return await self.interaction.response.send_message(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 825, in send_message
    await self._locked_response(
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\interactions.py", line 1090, in _locked_response        
    await coro
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\webhook\async_.py", line 219, in request
    raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction

The above exception was the direct cause of the following exception:```
#

Traceback (most recent call last):
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1114, in invoke_application_command       
    await ctx.command.invoke(ctx)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 375, in invoke
    await injected(ctx)
  File "C:\Users\King Silvio\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 132, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: NotFound: 404 Not Found (error code: 10062): Unknown interaction```
novel ore
#

code?

molten abyss
cloud cedar
#

Moin, fänds ganz cool nen Flaggenraten-Discord Bot zu coden.
Ich weiß leider nicht, wie ich da rangehen könnte, ein Embed mit der Flagge mit der Antwort zu "koppeln" um dann zu checken ob die Antwort richtig ist. Wie könnte ich das machen?

novel ore
#

die lösungen in einer dm speichern und bei jeder nachricht schauen ob es stimmt

solid ingot
#

da gibt es mehrere wege, du musst dich nur entscheiden wie du das ganze speicherst. zb dictionary oder json

novel ore
#

wenn ja eine neue random lösung mit flagge selecten wenn ich mit einem X reagieren oder so

cloud cedar
solid ingot
novel ore
#

ja gerade im aufbau why

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @novel ore, du bist jetzt Level 12 🎉

Du hast insgesamt 642 Nachrichten geschrieben.

cloud cedar
molten abyss
novel ore
molten abyss
#

Hab ich nicht

molten abyss
novel ore
#

eine frage man kann ja mit is_owner machen das denn command nur server owner machen können oder?

solid ingot
novel ore
#

ah ok das gut das wollte ich

#

ich weiß nciht was war verwirrt

molten abyss
solid ingot
novel ore
#

schick mal denn kmpletten code

solid ingot
molten abyss
novel ore
molten abyss
vivid sky
#

Warum sind die beiden sachen bei mir none?

Bot Owner  [None - None]
Bot Users  [0]
solid ingot
#

vielleicht derselbe fehler wie gestern?

#

da hattest du es nicht im ready event

vocal isle
#

None my beloved!

vivid sky
vivid sky
#

nvm

#

habs

next echo
#

Wie kann ich die db file downloaden so das ich sie bei der Website hinzufügen kann?

novel ore
#
[ERROR] Error while executing /unban 
Traceback (most recent call last):
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "C:\Users\Basti\Documents\Discord Bot\Öffentlicher Bot\Phoenix\cogs\moderation\moderation.py", line 177, in unban
    await self.check_user(member.id)
                          ^^^^^^^^^
AttributeError: 'str' object has no attribute 'id'

wie kann ich das bei dem check abfragen

solemn musk
#

wie deploy ich nh website auf github

urban glen
# novel ore ``` [ERROR] Error while executing /unban Traceback (most recent call last): F...
@slash_command(description="Entbanne einen User aus dem Server")
    @discord.default_permissions(ban_members=True)
    @discord.guild_only()
    async def unban(
        self, 
        ctx, 
        member: Option(str, autocomplete=basic_autocomplete(unban_autocomplete)),
        reason: Option(str, "Gib einen Grund an, warum du den User entbannen willst", required=False, default="Kein Grund angegeben")
        ):
        async with aiosqlite.connect(self.DB2) as db:
            member = ctx.guild.get_member_named(member)
            await self.check_user(member.id)
#

Ich weiß ja nicht wie dein unban_autocomplete aussieht, aber versuchs so

#

Weil bei member, gibst du nur ein String wieder, aber dein check_user, erwartet die Id eines Members

#

Als integer

novel ore
# urban glen ```py @slash_command(description="Entbanne einen User aus dem Server") @disc...
Traceback (most recent call last):
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
          ^^^^^^^^^^^^^^^
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "C:\Users\Basti\Documents\Discord Bot\Öffentlicher Bot\Phoenix\cogs\moderation\moderation.py", line 178, in unban
    await self.check_user(member.id)
                          ^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'id'
urban glen
#

Ich weiß ja nicht, was da zurückgegeben wird

novel ore
#
async def unban_autocomplete(ctx: discord.AutocompleteContext):
    x = await ctx.interaction.guild.bans().flatten()
    x = [f'{y.user}' for y in x]
    return x
urban glen
#

@novel ore

async def unban_autocomplete(ctx: discord.AutocompleteContext):
    x = await ctx.interaction.guild.bans().flatten()
    x = [f'{y.user}' for y in x]
    return x
   @slash_command(
        name='unban',
        description=f"👋🏽{x}Entbanne einen User aus dem Server"
    )
    @discord.default_permissions(ban_members=True)
    @discord.guild_only()
    async def _unban(
        self, 
        ctx, 
        member: Option(str, autocomplete=basic_autocomplete(unban_autocomplete), description="Wähle den User aus, den du entbannen willst", required=True), 
        reason: Option(str, "Gib einen Grund an, warum du den User entbannen willst", required=False, default="Kein Grund angegeben")
        ):
        
        unban_embed = discord.Embed(
            title=f"`✅` Unban {member.name}#{member.discriminator}",
            description=f"Du hast den User {member.mention} auf dem Server **{ctx.guild.name}** entbannt.",
            color=COLOR,
             
        )
        unban_embed.add_field(name="Moderator:", value=f"{ctx.author}", inline=False)
        unban_embed.add_field(name="Grund:", value=f"{reason}", inline=False)
        
        try:
            async for ban in ctx.guild.bans():
                if f'{ban.user}' == f'{member}':
                    await ctx.guild.unban(ban.user, reason=reason)
        except (discord.Forbidden, discord.HTTPException) as e:
            
            error_embed = discord.Embed(
                title="`⚠️` Error",
                description=f"Es ist ein Fehler aufgetreten.",
                color=COLOR             
            )
            error_embed.add_field(name=f"Beim Kicken von {member.mention} ist ein Fehler aufgetreten.", value=f"Bitte versuche es später erneut.", inline=False)
            error_embed.add_field(name=f"Fehler Code:", value=f"`{e}`", inline=False)
            
            print(e)
            await ctx.respond(embed=error_embed, ephemeral=True)
            return
        await ctx.respond(embed=unban_embed, ephemeral=False)
``` Das meins probier das mal
novel ore
#

ohne db geht es bei mir auch nur das mit check_user geht nciht

urban glen
#

hä was laberst du von check_user

urban glen
novel ore
urban glen
#

oh

#

Du musst auch abfragen ob das ergebnis None ist

novel ore
urban glen
#
async def unban_autocomplete(ctx: discord.AutocompleteContext):
    x = await ctx.interaction.guild.bans().flatten()
    data = [OptionChoice(name=f"{y.user}", value=str(y.user.id)) for y in x]
    return data
    @slash_command(description="Entbanne einen User aus dem Server")
    @discord.default_permissions(ban_members=True)
    @discord.guild_only()
    async def unban(
        self, 
        ctx, 
        member: Option(autocomplete=basic_autocomplete(unban_autocomplete)),
        reason: Option(str, "Gib einen Grund an, warum du den User entbannen willst", required=False, default="Kein Grund angegeben")
        ):
        async with aiosqlite.connect(self.DB2) as db:
            member = await self.bot.fetch_user(member)
            await self.check_user(member.id)
#

@novel ore

#

Sorry für die etwas späte antwort xD

next echo
#

Wie kann ich machen das anstatt eine Random Zahl von 10-20 genommen wird immer 20 genommen wird?

@commands.Cog.listener()
    async def on_message(self, message):
        if message.author.bot:
            return
        if not message.guild:
            return
        xp = random.randint(10, 20)
solid ingot
#

xp = 20

next echo
#

Danke

solid ingot
uneven zodiac
solid ingot
next echo
#

Wie kann ich aus der Normalen Naricht ein Embed machen wo der user und die Rolle gepingt wird kriege es irgendwie net hin?

        if new_level == 75:
            role = message.guild.get_role(1112465062834229339)
            await message.author.add_roles(role)
            await message.channel.send(f"Glückwunsch du hast die {role.mention} Rolle erhalten!")
solid ingot
#

den text kannst du als description vom embed nutzen

next echo
#

Krieg es net hin

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @next echo, du bist jetzt Level 8 🎉

Du hast insgesamt 237 Nachrichten geschrieben.

next echo
#

Weil jetzt weiß er nicht mehr was role.mention bedeutet

uneven zodiac
#

?

upper adder
#

sorry für die Störung, aber wie kann ich nochmal mit einem Button click die Nachricht löschen? 😅
Mit await ctx.message.delete() schonmal nicht...

uneven zodiac
#

lib?

upper adder
#

discord4py (tut aber nicht wirklich was zur Sache, da das auch wie "normal" funktionieren düfte)

uneven zodiac
#

'-'

#

upper adder
#

ne, funktioniert nicht irgendwie 😅

uneven zodiac
#

Hmm

upper adder
#

fehlercode:

uneven zodiac
#

Weil funktioniert bei mir auch nutze auch die lib 🐢😂

upper adder
#

ich meine, is in den DMs, aber das sollte eigentlich kein Problem sein, oder?

#

lul

#

jetz gehts oder wie

uneven zodiac
#

😂

#

I don't know

molten abyss
#

Hey ne frage ich habe einen eigenen bot programmiert aber in Discord werden keine commands angezeigt warum?

native plume
molten abyss
#

Hier : beim ausführen kommt bei mir keine Fehlermeldung

ruby sparrow
novel ore
#

Wie codet man am besten ein anti raid System

native plume
ruby sparrow
# novel ore Wie codet man am besten ein anti raid System

zb```py

Konfiguration

max_message_count = 5 # Maximale Anzahl von Nachrichten, die ein Benutzer in einer bestimmten Zeitspanne senden kann
time_span = 10 # Zeitspanne (in Sekunden), in der die maximale Anzahl von Nachrichten erlaubt ist
max_mention_count = 5 # Maximale Anzahl von Erwähnungen, die ein Benutzer in einer Nachricht verwenden kann

Globale Variablen

message_count = {}

@bot.event
async def on_message(message):
if message.author == bot.user:
return

author_id = message.author.id

# Anti-Spam-Funktion
if author_id not in message_count:
    message_count[author_id] = []

current_time = message.created_at.timestamp()
message_count[author_id] = [time for time in message_count[author_id] if current_time - time <= time_span]
message_count[author_id].append(current_time)

if len(message_count[author_id]) > max_message_count:
    await message.delete()
    await message.channel.send(f'{message.author.mention}, du sendest zu viele Nachrichten in kurzer Zeit.')
    return

# Anti-Mention-Funktion
mention_count = len(message.mentions)
if mention_count > max_mention_count:
    await message.delete()
    await message.channel.send(f'{message.author.mention}, du erwähnst zu viele Benutzer in einer Nachricht.')
    return

await bot.process_commands(message)```
novel ore
#

Ja

novel ore
#

Ne

#

Schau dir einfach das Video von Timo an

molten abyss
native plume
urban glen
#

Weis wer, wie man das automod abzeichen bekommt?

ruby sparrow
urban glen
#

Sapphire

solid ingot
urban glen
#

gibst da bei dc irgendeine anleitung

#

bzw eine liste

solid ingot
#

nutzt du pycord?

#

wenn du in die einstellungen von einem discord server gehst, kannst du da automod regeln festlegen. bots können sowas auch machen, und sobald dein 100 100 davon erstellt hat sollte er das badge bekommen

urban glen
urban glen
solid ingot
ruby sparrow
#

Wäre nice wenn man eigene private voicechannels eröffnen könnte und diese dann auch z.B mit nem interface bearbeiten könnte

#

hey ich wollte die seine moldel machen wie ezcord

next echo
#

Ich wollte machen das mein Bot YT abspielen kann

Code:

import discord
from discord.ext import commands
import youtube_dl


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

    commands.command()
    async def join(selfself, ctx):
        if ctx.author.voice is None:
            await ctx.send("Du befindest dich in keinen Voice Channel!")
        voice_channel = ctx.author.voice.channel
        if ctx.voice_bot is None:
            await voice_channel.connect()
        else:
            await ctx.voice_bot.move_to(voice_channel)

    @commands.command()
    async def disconnect(self, ctx):
        await ctx.voice_bot.disconnect()

    @commands.command()
    async def play(self, ctx, url):
        ctx.voice_bot.stop()
        FFMPEG_OPTIONS = {"before_options": "-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5", "options": "-vn"}
        YDL_OPTIONS = {"format":"bestaudio"}
        VC = ctx.voice_bot

        with youtube_dl.YoutubeDL(YDL_OPTIONS) as ydl:
            info = ydl.extract_info(url, download=False)
            url2 = info["formats"][0]["url"]
            source = await discord.FFmpegOpusAudio.from_probe(url2, **FFMPEG_OPTIONS)
            vc:play(source)

    @commands.command()
    async def pause(self, ctx):
        await ctx.voice_bot.pause()
        await ctx.send("Pausiert ⏸")

    @commands.command()
    async def pause(self, ctx):
        await ctx.voice_bot.pause()
        await ctx.send("Fortgesetzt ⏯")


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

Aber hier wird play rot unterstrichen mit dem Grund: Unresolved reference 'play' :35

Zeile 35:

vc:play(source)
vivid sky
#

voice.play(source)

next echo
#

Nope irgendwas stimmt mit play net

vivid sky
#

Was denn

next echo
#

Steht doch dabei

#

Unresolved reference 'play' :35

vivid sky
#

Übersetz es doch

next echo
#

Ungelöster Verweis „play“ :35

vivid sky
#

Ungelöster Verweis 'play' 35

next echo
#

Ja und was soll ich jetzt ändern ist doch die Frage

vivid sky
#

Welche Version von youtube_dl?

next echo
#

2021.12.17

vivid sky
#

Und hast du es gecodet?

#

Maybe patched

next echo
#

Glaub mal net

#

Why patch

molten abyss
# native plume Dann bitte schick deinen Code!

main

from discord.ext import commands
from music_cog import MusicCog

intents = discord.Intents.default()
intents.voice_states = True  # Intents für Voice-Status aktivieren
intents.message_content = True

bot = commands.Bot(command_prefix="!", intents=intents)  # Beispiel-Prefix

@bot.event
async def on_ready():
    print("Bot ist bereit.")
    await bot.change_presence(activity=discord.Game(name="Musik hören"))

bot.add_cog(MusicCog(bot))

bot.run("TOKEN")

molten abyss
# molten abyss main ```import discord from discord.ext import commands from music_cog import Mu...

Music file

from discord.ext import commands
from youtube_dl import YoutubeDL

class MusicCog(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.is_playing = False
        self.is_paused = False
        self.music_queue = []
        self.YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist': 'True'}
        self.FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
        self.vc = None

    def search_yt(self, item):
        with YoutubeDL(self.YDL_OPTIONS) as ydl:
            try:
                info = ydl.extract_info("ytsearch:%s" % item, download=False)['entries'][0]
            except Exception:
                return False
        return {'source': info['formats'][0]['url'], 'title': info['title']}

    def play_next(self):
        if len(self.music_queue) > 0:
            self.is_playing = True
            m_url = self.music_queue[0][0]['source']
            self.music_queue.pop(0)
            self.vc.play(discord.FFmpegPCMAudio(m_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())
        else:
            self.is_playing = False

    @commands.command(name="play", aliases=["p", "playing"])
    async def play(self, ctx, *args):
        query = " ".join(args)
        voice_channel = ctx.author.voice.channel
        if voice_channel is None:
            await ctx.send("Du musst in einem Sprach-Kanal sein!")
        elif self.is_paused:
            self.vc.resume()
        else:
            song = self.search_yt(query)
            if type(song) == type(True):
                await ctx.send("Konnte den Song nicht herunterladen!")
            else:
                await ctx.send("Song wurde zur Warteschlange hinzugefügt")
                self.music_queue.append([song, voice_channel])
                if not self.is_playing:
                    await self.play_music(ctx)
molten abyss
urban glen
#

Oder soll Blacklight es riechen?

raw olive
#

Die Color Klasse wird Falsch übergeben

vivid sky
#

Wie bekomme ich alle Cogs als Zahl?

urban glen
vivid sky
#

stimmt

#

Danke

urban glen
#

kein ding

upper adder
#

Frage, wenn ich in einem Slash-Command 4x eine Auswahl von Rollen optional habe, und wenn ich die auslasse, welchen Wert haben die dann?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @upper adder, du bist jetzt Level 5 🎉

Du hast insgesamt 102 Nachrichten geschrieben.

Du hast <@&1024276691205496872> erhalten!

upper adder
#

Naja, will einen Channel mit diesen erstellen, aber diese 4 sind optional.

#

Sind die dann None?

vivid sky
#

Wenn du die Optionen auslässt sind die None

upper adder
#

Ah 👍. Dann müsste das mit

for roles in [abc, def, ...]:
   if role is not None:
      Blabla
``` funktionieren...
vivid sky
#

Try and see

urban glen
upper adder
#

Jo

#

Weil

#

Vorhin hats nicht funktioniert

novel ore
#
@slash_command(description="Kicke einen User aus dem Server")
    @commands.has_permissions(kick_members=True)
    @discord.guild_only()
    async def kick(
        self, 
        ctx, 
        member: Option(discord.Member, "Wähle den User aus, den du kicken willst", required=True), 
        reason: Option(str, "Gib einen Grund an, warum du den User kicken willst", required=False, default="Kein Grund angegeben")
        ):
        async with aiosqlite.connect(self.DB2) as db:
            await self.check_user(member.id)
            kick_embed = discord.Embed(
                title=f"![BanKick](https://cdn.discordapp.com/emojis/1112281256399491162.webp?size=128 "BanKick") Kick {member.name}#{member.discriminator}",
                description=f"Du hast den User {member.mention} aus dem Server **{ctx.guild.name}** gekickt.",
                color=discord.Color.green(),
                timestamp=datetime.datetime.utcnow()
            )
            kick_embed.add_field(name="Moderator:", value=f"{ctx.author}", inline=False)
            kick_embed.add_field(name="Grund:", value=f"{reason}", inline=False)
            kick_embed.set_author(name=f"{ctx.guild.name}", icon_url=member.avatar.url)
            kick_embed.set_thumbnail(url=member.avatar.url)
            kick_embed.set_footer(text=f"{ctx.bot.user.name}#{ctx.bot.user.discriminator}", icon_url=ctx.bot.user.avatar.url)
            
            try:
                await member.kick(reason=reason)
            except (discord.Forbidden, discord.HTTPException) as e:
                
                error_embed = discord.Embed(
                    title="`⚠️` Error",
                    description=f"Es ist ein Fehler aufgetreten.",
                    color=discord.Color.green(),
                    timestamp=datetime.datetime.utcnow()
                )
                error_embed.add_field(name=f"Beim Kicken von {member.mention} ist ein Fehler aufgetreten.", value=f"Bitte versuche es später erneut.", inline=False)
                error_embed.add_field(name=f"Fehler Code:", value=f"```{e}```", inline=False)
                error_embed.set_author(name=f"{ctx.guild.name}", icon_url=ctx.bot.user.avatar.url)
                error_embed.set_footer(text=f"{ctx.bot.user.name}#{ctx.bot.user.discriminator}", icon_url=ctx.bot.user.avatar.url)
                
                
                await ctx.respond(embed=error_embed, ephemeral=True)
                return
            async with db.execute("SELECT dm FROM DM WHERE user_id = ?", (member.id,),) as cursor:
                dm = await cursor.fetchone()
                if dm is None:
                    await ctx.respond("Ein Fehler ist aufgetrten", ephemeral=True)
                elif dm[0] == 1:
                
                    User_embed = discord.Embed(
                        title="`⚠️` Kick",
                        description=f"Du wurdest von dem Server **{ctx.guild.name}** gekickt.",
                        color=discord.Color.green(),
                        timestamp=datetime.datetime.utcnow()
                    )
                    User_embed.add_field(name="Moderator:", value=f"```{ctx.author}```", inline=False)
                    User_embed.add_field(name="Grund:", value=f"```{reason}```", inline=False)
                    User_embed.set_author(name=f"{ctx.guild.name}", icon_url=member.avatar.url)
                    User_embed.set_thumbnail(url=member.avatar.url)
                    User_embed.set_footer(text=f"{ctx.bot.user.name}#{ctx.bot.user.discriminator}", icon_url=ctx.bot.user.avatar.url)
                    try:
                        await member.send(embed=User_embed)
                    except discord.HTTPException as e:
                        
                        await ctx.respond("Dem User konnte keine DM gesendet werden.", ephemeral=True)
                
                
                       
                await ctx.respond(embed=kick_embed, ephemeral=False)
#
[ERROR] Error while executing /kick 
Traceback (most recent call last):
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 372, in invoke
    await self.prepare(ctx)
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 292, in prepare
    if not await self.can_run(ctx):
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 400, in can_run
    return await async_all(predicate(ctx) for predicate in predicates)  # type: ignore
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\utils.py", line 699, in async_all
    for elem in gen:
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 400, in <genexpr>
    return await async_all(predicate(ctx) for predicate in predicates)  # type: ignore
                           ^^^^^^^^^^^^^^
  File "C:\Users\Basti\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\core.py", line 2138, in predicate
    raise MissingPermissions(missing)
discord.ext.commands.errors.MissingPermissions: You are missing Kick Members permission(s) to run this command.

Warum wird mir der error geprintet hab doch keinen print im Code

vivid sky
#

Du hast keine Kick Rechte

urban glen
#

Das ist ein error
kein von dir gesetzter Print

#

Du hast keine kick berechtigung

novel ore
#

wir kann ich machen das das nciht gepritnet wird

urban glen
vivid sky
novel ore
urban glen
#

Kannst es so probieren

tawdry leaf
urban glen
#

Ja so kann man es auch machen

novel ore
urban glen
tawdry leaf
#

was magst du d3enn

urban glen
#
if not ctx.author.guild_permissions.kick_members:
    return await ctx.respond("Du hast keine rechte")
tawdry leaf
#

ephermal respond..

urban glen
#

Kann er sich aussuchen
Ist nur nh vorlage

tawdry leaf
#

ik

vivid sky
#

Hat jemand geile vsc themes?

novel ore
#

ne hab selber nichts

#

wie kann ich machen das wenn auf einem server in 5 sek mehr wie 5 kanäle erstellt wird das dann was passiert weiß nur das ich on_guild_channel_create brauch

urban glen
vivid sky
molten abyss
solid ingot
#

dafür brauchst du keine DB, das kannst du auch in einer Liste oder einem dictionary speichern

solid ingot
#

also so ungefähr:
ezcord.Bot(ignored_errors=[commands.MissingPermission])

#

dann wird das von ezcord ignoriert

novel ore
#

Bist du heute nochmal Talk

solid ingot
#

erst relativ spät leider

#

wie hast du gemacht?

novel ore
solid ingot
#

ah alles klar

molten abyss
urban glen
molten abyss
vivid sky
#

Kann wer helfen bitte?

Ausnahme: AttributeError
module 'discord' has no attribute 'ApplicationContext'
  File "C:\Users\WorkHome\Desktop\....\.....\main.py", line 2, in <module>
    import ezcord
AttributeError: module 'discord' has no attribute 'ApplicationContext'
urban glen
urban glen
tawdry leaf
#

tab error

#

zeig mal code

urban glen
tawdry leaf
#

das etwas falsch eingereiht ist

urban glen
# tawdry leaf zeig mal code
    @commands.slash_command(description="blabla.")
    @commands.has_role(blabla0929302)
    async def blabla(self, ctx):
        desc = ""
        counter = 1
        async with aiosqlite.connect(self.DB) as db:
            async with db.execute("SELECT user_id, credits_count, msg FROM credits WHERE msg > 0 ORDER BY credits_count DESC LIMIT 10") as cursur:
                async for user_id, credits, msg in cursur:
                     
                    desc += f"{counter}. <@{user_id}> - *{credits} Credits* \n"
                    counter += 1
tawdry leaf
#

am besten wäre foto mit zeilen

lusty palm
#

@urban glenkannst windows taste + shift + s drücken

urban glen
lusty palm
#

meinte wegen screenshot

urban glen
#

ne dieses windows und druck geht klar

lusty palm
#

👍

tawdry leaf
urban glen
#

stimmt

tawdry leaf
urban glen
molten abyss
#

Wie codet man ein Feedback System?

urban glen
#

Du öffnest deine Entwicklungsumgebung und fängst an code zu schreiben ^^

molten abyss
#

Kennt wer gute YouTuber für:

Python
Java
Javaskript
HTML

urban glen
#

Entscheid dich doch erstmal für eine Sprache ._.

molten abyss
urban glen
#

Gibt viele youtuber

solid ingot
molten abyss
solid ingot
#

bin mehr für Discord Bots als für Python Grundlagen peeposhy

urban glen
tawdry leaf
urban glen
#

...