#Allgemeine Hilfe

1 messages · Page 29 of 1

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



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

    @slash_command()
    async def role_info(self, ctx, role : Option(discord.Role)):
        embed = discord.Embed(title=f"Infos über die Rolle: {role}", description=f"Die Rolle {role} haben {len(role.members)} Member\n\n Die Rolle hat folgende Berechtigungen: {role.permissions}", color=role.color)
        embed.set_footer(text=f"{role.id}")
        await ctx.respond(embed = embed)


def setup(bot):
    bot.add_cog(role_info(bot))
#
Traceback (most recent call last):
  File "C:\Users\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\cog.py", line 774, in _load_from_module_spec
    spec.loader.exec_module(lib)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\Rysii\OneDrive\Desktop\rtzu_discord_bot\rtzu_discord_bot\rtzu discord bot\cogs\rolrinfo.py", line 7, in <module>
    class role_info(commands.Cog):
                    ^^^^^^^^
NameError: name 'commands' is not defined

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

Traceback (most recent call last):
  File "C:\Users\Rysii\OneDrive\Desktop\rtzu_discord_bot\rtzu_discord_bot\rtzu discord bot\main.py", line 164, in <module>
    bot.load_extension(f"cogs.{filename[:-3]}")
  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.rolrinfo' raised an error: NameError: name 'commands' is not defined
``` hier ist error
#

kann wer hefen

#

ich brauche auch Option

#

danke haben

#

hab

#

danke

ruby sparrow
#

Weißt du wie macht man sowas das Status wird sich automatisch Ändern

#

?

vivid sky
#

hats sich schon erledigt

lilac wagon
#

Wie macht man es das man die Nachricht auch nach unten erweitern kann ? z.b
description="Hier kannst du ein Ticket aufmachen!"
Test und wenn ich es nach unten erweitern möchte kommt ein Error den . Wie funktioniert das ?

solid ingot
#

meinst du vlt \n

lilac wagon
#

Ja, danke

lucid furnace
#

Hallo, ich habe folgendes problem, ich hab ein key gener und ein key redeemer command, und beim key redeemer command gibt man ein key ein aber wenn ein user den zeitigen key redeemed dan kann ein andere denn key nicht mehr redeemen aber der andere soll denn key noch redeemen können, weiss wer wie ich das änder

code: ```py
@slash_command()
async def redeem(self, ctx, code):
# Check if the code exists
async with self.db.execute(
"SELECT * FROM codes WHERE code = ? AND redeemed = FALSE",
(code,)
) as cursor:
row = await cursor.fetchone()
if not row:
await ctx.respond("Sorry, that code is invalid or has already been redeemed.")
return

        code, role_id, expiry, redeemed = row

    # Check if the code has expired
    if datetime.now() > datetime(int(expiry)):
        await ctx.respond("Sorry, that code has expired.")
        return

    # Grant the role to the user
    role = ctx.guild.get_role(role_id)
    if not role:
        await ctx.respond("Sorry, the role associated with this code no longer exists.")
        return

    await ctx.author.add_roles(role)

    # Mark the code as redeemed in the database
    await self.db.execute(
        "UPDATE codes SET redeemed = TRUE WHERE code = ?",
        (code,)
    )
    await self.db.commit()

    await ctx.respond(f"Congratulations! You have redeemed the code {code} and received the role {role.name}!", ephemeral=True)
#

alse jeder user soll ein selben key 1 mal redeemen können

solid ingot
#

in dem fall müsst du für jeden user einzeln abspeichern, dass der key schon eingelöst würde

lucid furnace
#

also wenn ich die user_id rein packe und dan das alles anpasse dan wird doch für jeden user die gleichen keys generiert

limpid wolf
lucid furnace
#

ich denke ich weiss wie ich das mach

limpid wolf
#

Du kannst ja vorher gucken ob der noch gültig ist und dann schaust du ob der user den schon eingelöst hat

limpid wolf
lucid furnace
#

ja aber die schwierege sache ist, wie?

snow hatch
#

moin,
ich habe mehre if/elif usw. abfragen in dem je nachdem eine variable in einem embed anders ist. Wenn ich diese variable dann unter den if abfragen nutzen will(gleiche klasse und event) wird diese variable nicht mit genommen bzw. existiert dann nicht
UnboundLocalError: cannot access local variable 'lvluprolle' where it is not associated with a value

obtuse estuary
#

Könntest du vllt den Code mit schicken

snow hatch
#

wie kann ich die variable auch unten nutzen


        if new_level == 5:
            lvl = message.guild.get_role(962787800984453141)
            await message.author.add_roles(lvl)
            lvluprolle = discord.Embed(
                title="Level up!",
                description=f"Herzlichen glückwunsch <@{message.author.id}> du bist jetzt **Level {new_level}!** \nDu "
                            f"hast insgesamt **{msgcount} Nachrichten** geschrieben!\n Du hast die rolle {lvl.mention} "
                            f"freigeschaltet!",
                color=discord.Color.og_blurple()
            )
        if lvluprolle is not None:
            ch = message.author.dm_channel
            if ch is None:
                ch = await message.author.create_dm()
            try:
                await ch.send(embed=lvluprolle)
            except discord.HTTPException:
                await message.channel.send(embed=lvluprolle, delete_after=80)```#
#

er soll halt unten das oben senden, aber er sendet die rollen idnicht, die oben festgelegt wurde

urban glen
#

das if lvluprolle is not none ist unnötig, weil du ja ein embed erstellst und das zu 100% gibt

snow hatch
#

ja aber ich habe es so, das er dieses embed nur bei bestimmten level sendet

urban glen
#

hm ok

#

dann mach das embed aus der if abfrage

#

z.b oben über der class

lucid furnace
# limpid wolf Oder habe ich da grade nh denkfehler?

das hier muss ich alles machen

Zuerst on_ready: Machen Sie ein on_ready-Ereignis in einem Cog für Pycord, das eine Datenbank in Aiosqlite erstellt
Ich brauche das: User_id Keys und Ablaufdatum
erster Befehl: löse einen Code ein, der dir eine Rolle gibt, der Code sollte für jeden Benutzer einmal einlösbar sein
2. Befehl: Listen Sie alle Codes und ihr Ablaufdatum als Einbettung auf
3. Befehl: Generiert einen Code und ein Ablaufdatum mit jeweils 4 Tagen Lücke, die ein Benutzer einlösen kann
Aufgabe: Eine Aufgabe, die das Ablaufdatum überprüft und den Code löscht, wenn das Ablaufdatum gleich dem heutigen Datum ist

snow hatch
#

ok, aber trotzdem sendet er die rolle nicht bzw. es steht immer deleted... obwohl es die gibt, also irgendwie nimmt er die variable nicht mit aus der if abfrage raus

urban glen
#

<@&ID>

#

oder du gettest die role und dann role.mention

snow hatch
#

mache ich doch
Aber in der if abfrage, und in dem embed steht dann nur @deletedrole

#

hat sich erledigt

#

da ich dies nicht, finde gibts irgendwo in den docs eine liste mit allen tasks methoden die es gibt, also z.b. on_message

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

import requests
import random
import os

from pprint import pprint


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

    @slash_command()
    async def keks(self, ctx):
        key = os.getenv("API_KEY")

        params = {
            "q": "keks",
            "key": key,
            "limit": "10",
            "client_key": "discord_bot",
            "media_filter": "gif"
        }
        result = requests.get("https://tenor.googleapis.com/v2/search?=keks&key={key}", params=params)
        data = result.json()
        # pprint(data)

        number = random.randint(0, 9)
        url = data['results'][number]['media_formats']['gif']['url']

        embed = discord.Embed(
            title="Keks",
            color=discord.Color.yellow()
        )
        embed.set_image(url=url)
        embed.set_footer(text="Via Tenor")
        await ctx.respond(embed=embed)


def setup(bot):
    bot.add_cog(API(bot))
#

k

#

ich dem send

#
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\rtzu_discord_bot\rtzu_discord_bot\rtzu discord bot\cogs\api.py", line 32, in keks
    url = data['results'][number]['media_formats']['gif']['url']
          ~~~~^^^^^^^^^^^
KeyError: 'results'

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

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\rtzu_discord_bot\rtzu_discord_bot\rtzu discord bot\cogs\ban.py", line 30, in on_application_command_error
    raise error
  File "C:\Users\Rysii\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\Rysii\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\commands\core.py", line 375, in invoke
    await injected(ctx)
  File "C:\Users\Rysii\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: KeyError: 'results'```
lucid furnace
#
Traceback (most recent call last):
  File "C:\Users\arien\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 378, in _run_event
    await coro(*args, **kwargs)
  File "C:\Dev\Flixer Buyer Bot\cogs\Key.py", line 105, in on_message
    await db.execute('INSERT INTO codes (user_id) VALUES (?)', (message.author.id,))
  File "C:\Users\arien\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\core.py", line 192, in execute
    cursor = await self._execute(self._conn.execute, sql, parameters)
  File "C:\Users\arien\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\core.py", line 137, in _execute
    return await future
  File "C:\Users\arien\AppData\Local\Programs\Python\Python310\lib\site-packages\aiosqlite\core.py", line 110, in run
    result = function()
sqlite3.IntegrityError: NOT NULL constraint failed: codes.code``` ich hab alles proebiert nix geht ```py
    @commands.Cog.listener()
    async def on_message(self, message):
        if message.author.bot:
            return

        async with aiosqlite.connect('Keys.db') as db:
            # check if row with same user_id already exists
            cursor = await db.execute('SELECT * FROM codes WHERE user_id = ?', (message.author.id,))
            row = await cursor.fetchone()
            if row is None:
                # insert new row
                await db.execute('INSERT INTO codes (user_id) VALUES (?)', (message.author.id,))
            await db.commit()```
lucid furnace
#

das ist neben deiner backspace taste

lucid furnace
#

ich habs jz so gemacht das ich kein error krieg aber der user wird nicht eingefügt

obtuse estuary
#

Mach das await von vor interaction.guild.bans weg

ruby sparrow
#

@wary vessel

onyx wave
#

Frage zu level_system von Timo, was wiederum zu rank abfrage geht mit eine embed. ich hab mal mit meine kleine wissen probiert entweder war der text mit xp und level über oder unter meine embed wie ich dem slash befehl ausgeführt habe. brachte mal kurze Einführung, tipps das ich es auch verstehe

frail loom
#

Kannst du einmal deinen Code hier kein senden wenn du magst?

  • Ja?`Dann bitte mit mit Codeblöcken.
#

Bitte nehme vorher deinen Token raus und Leake den nicht

onyx wave
#

Hab wieder so wie Timo in seine Video wieder

#

Die sind in .env

frail loom
#

Hast du die ganze Tutorial reihe von CodingKeks gesehen oder nur das Levelsystem?

onyx wave
#

Alles durch

frail loom
#

Denn braucht man einmal deinen Code vom Embed was erstellt werden soll.
Denn kann man dir besser sagen wo der Fehler sein könnte

onyx wave
#

hab noch nie code gesendet. Was wie mach ich das bei PCharm?

frail loom
#

einfach Kopieren und in einen Codeblock setzen

onyx wave
#

Danke kommt

frail loom
#

kein problem

onyx wave
#

Code zu lang. Soll nur die von oben nur mit dem rank dan senden

frail loom
#

den code ausschnitt von deinem Slash command /rank denke ich ist das

onyx wave
#

Von oben fehlen jetzt auch war noch -990 zeilen

ruby sparrow
#

weiss einer wie kann man status an zeigen lassen mit wieviel haben user

onyx wave
#
import discord
from discord.ext import commands
from discord.commands import slash_command, Option

import aiosqlite
import random


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

        await self.check_user(message.author.id)
        async with aiosqlite.connect(self.DB) as db:
            await db.execute(
                "UPDATE users SET msg_count = msg_count + 1, xp = xp + ? WHERE user_id = ?", (xp, message.author.id)
            )
            await db.commit()

        # check level up
        new_xp = await self.get_xp(message.author.id)  # Neue level durch den Bot

        old_level = self.get_level(new_xp - xp)        # Alte level xp was der User gehabt hat plus Formel im klammen
        new_level = self.get_level(new_xp)             # Neue level xp bekommt

        if old_level == new_level:                     # Mit dem if wird überprüft, ob beide gleich sind
            return
        # Hier wird dann eine neue level Rolle gegeben, durch xp aufstieg auf level2
        if new_level == 2:
            role = message.guild.get_role(1090409683166183495)   # level2 ID-Nummer
            await message.author.add_roles(role)
            await message.channel.send(f'Level Up! Du hast die Rolle {role.mention} erhalten!')

    @slash_command(description='Deine Aktuelle xp-level')
    async def rank(self, ctx):
            xp = await self.get_xp(ctx.author.id)
            lvl = LevelSystem.get_level(xp)
            await ctx.respond(f'Du hast **{xp}** XP und bist Level **{lvl}**')


def setup(bot):
    bot.add_cog(LevelSystem(bot))```
frail loom
#

aber wo soll denn doer ein embed sein?
Du sagtest ja der schickt text über oder unters embed

onyx wave
#

Hab keine Error, ist nicht der ganze Code hier. Könnte leider nicht senden, ich will das es in eine embed drinne ist wenn aud Dc /rank ausgeführt wird. meine hab ich schon gelöscht weil nicht funktioniert hat

wise stone
#

@frail loom

#

@onyx wave

#

das sollte euch helfen

tawdry leaf
#

2 mal gleich des selbe xD

onyx wave
#

Hab schon oft angeschaut, komme damit nicht klar

wise stone
#

was daran so schwer bitte

onyx wave
#

Jo Doppelt schauen👍 😂

wise stone
#

du erstellst ein embed und lasst es senden

#

so wie im video

tawdry leaf
#

😮

frail loom
wise stone
#
embed = discord.Embed(color=discord.Colour.embed_background(), description=f"der Code hier wo der result der Daten kommt")
#

das sind nur paar Zeilen leute....

#

es würde auch im Video leicht erklärt

tawdry leaf
#

wieso denn blau samma

#

und wo bleibt der title

#

xD

frail loom
tawdry leaf
#

true

wise stone
#

sry aber im Video wurde es gezeigt

tawdry leaf
#

ja reicht doch des video schicken wow

#

einmal..

frail loom
#

ja und ?
Lass ihn doch trotzdem fragen ich versuche ihm doch grad zu helfen

onyx wave
#

Video ist oft anders wie wenn jemand es erklärt warum wieso ....

frail loom
#

ist ja nicht so das er nach nem fertigen code fragt sondern wo das problem ist

wise stone
#

das Problem eher ist ich sehe ja kein embed oben

frail loom
#

ja denn lass ihn doch weiter machen ?
Du grätscht ja grad rein ^^

tawdry leaf
wise stone
#

ok dann macht das

onyx wave
#

hab nicht mehr drinne

wise stone
#

sry wenn ich nur helfen will

tawdry leaf
#

du hilfst nd du grätscht rein

onyx wave
#

ich danke an alle die mir helfen

tawdry leaf
#

wie willst helfen wenn du nd des Problem kennst bruh

ruby sparrow
onyx wave
#

nein

ruby sparrow
#

also wenn du über level 2 bist geht nicht mehr

#

weiss einer wie geht das

#

@onyx wave wenn du über level 2 bist auf dein server denn geht auch nicht

onyx wave
#

bin noch level 1, ich bin am lernen mit dem ganze

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @onyx wave, du bist jetzt Level 4 🎉

Du hast insgesamt 41 Nachrichten geschrieben.

ruby sparrow
frail loom
#

ich dachte du hast irgendwo schon einen command wo ein Embed mitgeschickt wird

#

Und der text nicht im embed verschickt wird

vocal isle
#

lol

ruby sparrow
#

@onyx wave komm mal call in coding

vocal isle
#

@ruby sparrow bitte geb dich nicht als jemand vom pycord team aus :)

onyx wave
#

slash_command hab ich mit /rank zum abrufen´ganz normal wie in dem video

frail loom
#

@ruby sparrow Lala ist wirklich im pycord team ^^

vocal isle
ruby sparrow
#

ich wolle was was machen

ruby sparrow
vocal isle
#

danke

ruby sparrow
tawdry leaf
tawdry leaf
#

@ruby sparrow

urban glen
#

    @discord.ui.button(label="Credits", style=discord.ButtonStyle.gray, emoji=f"![V_Trophy](https://cdn.discordapp.com/emojis/1077871679205822557.webp?size=128 "V_Trophy")", custom_id="credits", row=2)
    async def button_callback1(self, button, interaction):
        user_id = str(interaction.user.id)
        credits = data.get(user_id, {"credits": 0})["credits"]
        await interaction.response.send_message(f"{interaction.user.mention}, du hast {credits} Credits", ephemeral=True)
vivid sky
solid ingot
#

dafür braucht dein bot nur globale slash commands - also befehle, die man auf allen servern nutzen kann

#

du darfst also zb keine debug_guilds festlegen

urban glen
vivid sky
# urban glen ``` @discord.ui.button(label="Credits", style=discord.ButtonStyle.gray, emo...

versuchs mal mit

@discord.ui.button(label="Credits", style=discord.ButtonStyle.gray, emoji="![V_Trophy](https://cdn.discordapp.com/emojis/1077871679205822557.webp?size=128 "V_Trophy")", custom_id="credits", row=2)
async def button_callback1(self, button: discord.ui.Button, interaction: discord.Interaction):
    user_id = str(interaction.user.id)
    credits = data.get(user_id, {"credits": 0}).get("credits")
    if credits is None:
        credits = 0
    await interaction.response.send_message(f"{interaction.user.mention}, du hast {credits} Credits.", ephemeral=True)
#

@urban glen

civic granite
#

Gude

#

Was ist an diesem Code falsch?
Ich verstehe es nicht es soll eine Bestellung stornieren wenn die Kundennr übereinstimmt und die Bestellnr (lfdnr)
Wenn die Kundennr nicht die selbe ist (ist die user_id) dann soll er nen Fehler ausgeben
Die SQL hat davor ohne Probleme funktioniert
Nur hat er immer ausgegeben dass es storniert wurde auch wenn es nicht aus der Datenbank gelöscht hat

Jetzt hab ich das umgeändert (Siehe Bild) und es wird nicht mehr aus der Datenbank gelöscht und es kommt immer die Meldung dass es nicht funktioniert hat.
Ich verstehe es nicht

  1. Hab ich nichts an der SQL geändert und 2. Verstehe ich nicht warum immer kommt dass es nicht storniert wurde
#

Bitte dringenst um Hilfe sitze an dem sch... schon seit 2 Tagen

solid ingot
#

welche meldung meinst du?

civic granite
#

Die Respond

#

Und ja ich ändere es auf ctx um

#

Oh fuck

#

Hab den falschen Code geschickt

#

Der hier ist es

#

Okay hab grad den ersten Fehler gefunden:

Die if ist vor dem commit

solid ingot
#

mach mal dieses if aiosqlite.Error weg

civic granite
#

Okay

#

Dann wird aber immer ausgegeben dass es storniert wurde

solid ingot
#

das soll doch auch ausgegeben werden oder nicht?

#

der command heißt doch stornieren

civic granite
#

Ja aber wenn die Kundennr nicht der userid entspricht soll das nicht kommen

#

Dann soll kommen dass es fehlgeschlagen ist

#

Oder dass man nicht berechtigt ist die Bestellung eines anderen zu stornieren

solid ingot
#

dann musst du das vorher prüfen, das mit dem aiosqlite.Error danach ist falsch

civic granite
#

Wie krieg ich das hin?
Hab es anfangs mit einem Try versucht aber dann ist mir eingefallen dass es keinen Sinn macht da es keinen Python Fehler gibt

civic granite
#

Bzw wie

solid ingot
#

davor, zum beispiel mit einem select statement

civic granite
#

Sorry,
Verstehe grad nich wie du das meinst 😅

solid ingot
#

select statements sind dazu da, um daten aus der datenbank zu lesen

civic granite
#

Also ich solle selectieren ob es eine bestellnummer gibt die die eingegebene bestellnummer hat?

civic granite
solid ingot
#

nein kein aiosqlite.Error

#

das ist falsch

civic granite
#

Sondern

#

Mir fällt sonst nichts weiteres ein wie ich es lösen könnte

solid ingot
#

du holst dir das was du prüfen willst aus der DB und prüfst es dann

civic granite
#

Aber das heißt ich müsste eine if einbauen

#

Aber wie soll das gehen?

#

Also wie eine if funktioniert ist mir bewusst

solid ingot
#

na dann

civic granite
#

Aber verstehe nicht wie ich das koppeln soll

#

Also wenn die select nicht zustimmt dann steht in der Variable None ?

#

Oder is die dann einfach leer

solid ingot
#

probiers doch mal aus

civic granite
#

Hm oki danke dir glaub ich hab verstanden was du meintest

restive herald
#

hey, finde dazu leider nichts:
Wenn ich sowas mit optionen machen will was ein user bei nem slashcommand auswählen kann z.b. ob er etwas deutsch oder englisch haben will macht man das mit autocomplete oder wie macht man das

civic granite
#

Hm warum macht er das nicht?

#

Habs gefunden

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @civic granite, du bist jetzt Level 9 🎉

Du hast insgesamt 360 Nachrichten geschrieben.

civic granite
#

Also bei richtigen Datensätzen die er finden konnte gibt er es aus

#

Bei falschen wo keine Übereinstimmung ist macht er gar nicht
Dann kommt "Die Anwendung reagiert nicht"

solid ingot
civic granite
#

Und es wird kein python Error gesendet und nichts

#

Also ist es None?

civic granite
#

Gimo?

solid ingot
#

gerne

restive herald
#

ups verschrieben

civic granite
solid ingot
#

ohne code wissen wir das auch nicht

civic granite
#

@slash_command()
    async def stornieren(self, ctx, bestellnr: Option(int)):

        if ctx.author.bot:
            return
        async with aiosqlite.connect(self.DB) as db:
            async with db.execute(
                "SELECT lfdnr, kundennr FROM bestellungen WHERE lfdnr = ? and kundennr = ?", (bestellnr, ctx.author.id,)
            )  as cursor:
                async for kundennr, lfdnr in cursor:
                    kundennr = kundennr
                    lfdnr = lfdnr
                    print(kundennr, lfdnr)
                    await ctx.respond("Test")

tawdry leaf
#

benutzt man nicht statt , AND ?

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @tawdry leaf, du bist jetzt Level 37 🎉

Du hast insgesamt 6,530 Nachrichten geschrieben.

civic granite
#

Beim SELECT vorne?

tawdry leaf
#

ja

#

nach lfdnr

civic granite
#

Da normalerweise mit , in der WHERE mit AND

#

So hab ich es gelernt
Und so hat es bisher immer funktioniert

tawdry leaf
#

man schreibt eig bei datenbanken so oder so alles groß..

#

also FROM AND usw

civic granite
#

Ja das and hab ich vergessen

#

Aber ändert nichts an der Funktionalität

tawdry leaf
#

sieht cleaner aus

civic granite
#

Ist nur zum besseren Code Übersicht

tawdry leaf
#

richtig

civic granite
#

Aber was steht denn nun in den Variablen D:
Ist es None, einfach nur leer oder hab ich was falsch gecodet

tawdry leaf
#

Was ist nun des Problem bei dem code

civic granite
#

Naja will nur wissen was in den Variablen steht wenn die SQL keinen Datensatz findet

tawdry leaf
#

null ig

civic granite
tawdry leaf
#

ja?

civic granite
tawdry leaf
#

weiß ich nd xD

civic granite
# tawdry leaf ja?

Und ich will da ne Abfrage rein hauen ob der Kunde (Welcher in der DB kundennr ist mit der user_id) den Index hat (LFDNR (Fortlaufende Nummer für die Bestellnummer)

tawdry leaf
#

bringt dir des eine da nix warte

civic granite
#

Jetzt will ich wissen was passiert wenn der Kunde die falsche bestellnummer also lfdnr hat

#

Bzw was in den Variablen steht

tawdry leaf
#

da kannste mal testen wie des alles funktioniert

civic granite
#

Dass ich damit ein IF Statement setzen kann und dann falls es einen Datensatz gibt es mit delete löscht und wenn nicht halt ausgegeben wird dass man keine bestellungen von anderen löschen kann

#

Ja klar findet halt nichts weil es keinen Datensatz mit Id 15 gibt

#

Aber was steht dann in der Variable wenn man es ausliest

#

Weil hab das ja jetzt getestet und wenn es einen datensatz findet schreibt er das schön rein und alles

#

Aber wenn es keinen findet reagiert der Bot nicht auf die Nachricht

#

Und es wird kein Python Fehler oder sonst was ausgegeben

civic granite
#

Nix oder none

restive herald
civic granite
#

Aber wenn es leer ist ist blöd weil es Integer sind

tawdry leaf
#

null müsse es sein oder es steht nix

civic granite
#

Bei Text könnte ich es ja mit "" abfragen

#

Aber wie mach ich es mit Zahlen?

tawdry leaf
#

ist aber dumm nvm xD

tawdry leaf
civic granite
#

Yeah

tawdry leaf
#

ja einf if int...

civic granite
#

Also ich meine wie soll ich eine Zahl abfragen die gar nicht existiert

tawdry leaf
#

aber

civic granite
#

Bzw die Variable komplett leer ist

#

Da nichtmal eine 0 drin steht

tawdry leaf
#

@civic granite wenn du doch die dings hast den er löschen mag

#

wieso machste denn dann nd als select und schaust wem die gehört die bestellung

#

also das du schaust des was er löschen mag ob des der käufer ist

civic granite
#

Das mach ich ja

tawdry leaf
#

okay 😅

#

ups

civic granite
#

"SELECT lfdnr, kundennr FROM bestellungen WHERE lfdnr = ? AND kundennr = ?", (bestellnr, ctx.author.id,)

#

Und danach kommt dann halt noch ein delete

snow hatch
#

Mal eine Frage
Wie Funktioniert es das wie z.b. das Banner immer geändert wird, also was für eine extra Library braucht man oder so
Bzw. ist das im Code vom bot oder wie ungefähr (Prinzip) hat das

tawdry leaf
#

welches banner meinste

civic granite
#

Aber des Problem is ich will halt bestätigen wenn es geklappt hat und wenn nicht dass es dann sagt du kannst nur eigene löschen

tawdry leaf
#

serverbanner?

civic granite
#

Hab ich schon versucht

tawdry leaf
#

gestern nh

civic granite
#

Aber ist ja kein Pythonfehler

#

Genau

#

Und mit dem aiosqlite.Error hab ich es auch versucht geht auch nicht

civic granite
#

Timo meinte ich solle es erst selectieren und dann abfragen und prüfen und da sitz ich grad dran aber wie soll ich es denn prüfen wenn die Variable leer ist

#

Also nichts drin

#

Kein None keine 0

snow hatch
civic granite
#

Wäre das Feld ein String würde es ja gehen aber mit Zahlen?

solid ingot
solid ingot
tawdry leaf
civic granite
civic granite
civic granite
solid ingot
# restive herald Wie theoretisch direkt festlegen?

naja, discord hat eine funktion um commands in verschiedenen sprachen anzuzeigen, je nachdem was der user eingestellt hat. den link zur anleitung findest du in meiner nachricht oben. es geht aber auch ohne das ganz normal mit choices

#

das ist genau das event, dass du benutzt

tawdry leaf
restive herald
solid ingot
#

dann choices

civic granite
solid ingot
#

ich hab nicht gesagt dass du das falsche event nutzt, ich habe gesagt dass du dieses event falsch nutzt

#

schau dir an was für parameter in den klammern stehen

#

bei dir ist einer zu vuiel

tawdry leaf
#

😮

civic granite
#

Muss ich die Variable erst in nen String umwandeln?
Glaub dann gibt es einen Error

civic granite
#

Ne ne auf was bezogen?

Dass es nicht geht?

solid ingot
#

was?

tawdry leaf
solid ingot
#

schau dir die events die benutzt mal in den docs an. da siehst du, welche parameter das hat und von welchem typ diese sind

civic granite
#

Habs halt mal getestet xD

tawdry leaf
#

mach mal if kundennr != ctx.author

civic granite
#

Ich versuchs mal mit dem Umwandeln in string dann müssten es ja leere " sein oder

tawdry leaf
#

ne

#

wieso sollte des leer sein höö

#

steh ich aufm schlauch

civic granite
tawdry leaf
#

wieso sollte die nicht vorhanden sein ???

civic granite
#

Weil es den Datensatz ja nicht ausspuckt xD

#

Weil es ja keinen Gibt

tawdry leaf
#

das wäre fatal

tawdry leaf
civic granite
#

Wie gesagt Kundennr steht dann leer

tawdry leaf
#

wieso sollte es keinen geben ey mann

civic granite
#

Ist doch ganz einfach

tawdry leaf
#

Erkläre ma

civic granite
#

Also nochmal:

"SELECT lfdnr, kundennr FROM bestellungen WHERE lfdnr = ? AND kundennr = ?", (bestellnr, ctx.author.id,)
#

So
Kundennr ist der ctx.author aber nicht der Index

Der index liegt auf lfdnr der sich hochzählt

restive herald
civic granite
#

Wenn ich jetzt abfrage ob die lfdnr eine dieselbe Kundennr hat wie die User_id von dem ist der den Command ausführt und es stimmt dann gibt er genau den einen Datensatz asu

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
civic granite
#

Aus

Wenn aber die lfdnr einer anderen Kundennr zugewiesen ist dann kann er ja keinen Datensatz ausgeben

restive herald
solid ingot
civic granite
#

Verstehst jetzt wie ich meine?

tawdry leaf
civic granite
#

Ja stimmt schon

tawdry leaf
#

komme da nd mit 🙂

civic granite
#

Aber wüsste nich wie ich das einfacher hinkriegen soll

tawdry leaf
#

table pro user

civic granite
#

Boah wäre viel komplizierter

#

Weil ich dann ja pro User in eine Extra tabelle springen müsste

#

Der Code würde sich um das doppelte verlängern

solid ingot
#

@restive herald ups, in dem embed video zeige ich gar keine choices, das mache ich in folge 6

restive herald
#

danke haha

civic granite
#

Und das abfragen nach der Tabelle und diese dann auszuführen wäre viel aufwendiger

tawdry leaf
solid ingot
#

kommt drauf an für was. bei vielen sachen ist es aber egal

civic granite
#

Aber ich frage beim Befehl nicht die Kundennr ab sondern die LFDNR also die Bestellnummer

#

Weil die lfdnr nur einmal vorkommen kann weil es der index ist

#

Und die Kundennummer kann ja öfters vorkommen wenn man mehrere Bestellungen macht

solid ingot
#

mit "geht nicht" kann ich nicht viel anfangen, dass kann alles heißen

tawdry leaf
civic granite
#

Wenn der Datensatz vorhanden ist ja

tawdry leaf
#

passt doch

civic granite
#

Wenn nich dann kommt gar nichts weder eine Fehlermeldung noch irgendeinen Text

tawdry leaf
#

ist ja ein print xD

civic granite
#

Ja klar

solid ingot
#

add_roles mit s. wenn da steht dass das es das attribute nicht gibt, kannst du übrigens immer in den docs nachschauen was für attribute es gibt, in diesem fall für Member

civic granite
#

Aber das zeigt mir halt dass die Variable dadurch nicht gefüllt wird bzw mit nichts gefüllt wird

tawdry leaf
#

@civic granite ich denke mir was und dann sehe ich dein Code und denke mir einf what xD

civic granite
#

Und wie soll ich das bitte abfragen ob es mit nichts gefüllt wurde

tawdry leaf
#

schaue dazu in die documentation 🙂

#

muss ja da stehen nh

civic granite
tawdry leaf
civic granite
tawdry leaf
#

des ist so des unwichtigste bei nem shop

civic granite
#

Ja aber der Rest wäre soweit fertig 😂

tawdry leaf
#

sus

civic granite
#

Hängt nur noch an dem scheiß

#

Sehr sus

tawdry leaf
#

dann ja

#

würde dann mal wieder fragen was des Problem ist xD

civic granite
#

Perfekt fangen wir von vorne an 😂

tawdry leaf
#

ja lass mal machen

#

vllt fällt was auf

civic granite
#

Alsooo

#

Warte ich schick mal den ganzen Code

tawdry leaf
#

xD

civic granite
#

Vielleicht verstehst die Struktur dann besser

tawdry leaf
#

finde aiosqlite docs beschissen

civic granite
#

Musste es jetzt so machen weil sind 170 Zeilen Code

civic granite
tawdry leaf
#

Also mach maybe mal eine variable für kundennr weil da steht ctx.author.id ?

civic granite
#

Die Kundennr soll ja auch die ID von dem User werden der den Befehl nutzt bzw der ne Bestellung aufgibt

#

Von dem her ist das legitim

civic granite
#

Muss ja abgefragt werden ob die ID die Kundennummer ist wo zur lfdnr gehört

tawdry leaf
#

ja würde des danach machen und dann sagen wenn es nd so ist das es nd seine bestellung ist

civic granite
#

Hm und wie mach ich das xD

tawdry leaf
#

neue variable einf zum einpflegen

civic granite
#

Select von der lfdnr

Und dann die lfdnr in eine Variable packen?

#

Und danach erst die Kundennr selecten

#

Die in eine andere variable stecken

tawdry leaf
civic granite
#

Und dann mit dem delete ?

#

Aber das is im prinzip das selbe

#

Ach man ich verzweifel noch an dem scheiß

civic granite
tawdry leaf
#

ne

#

nur bestellnr

civic granite
#

Das hab ich ja

tawdry leaf
#

ja ey man

civic granite
#

Das ein scheiß oder 😂

#

Der ganze Shop hat soweit einigermaßen gut geklappt klar ich musste ab und an mal nachfragen wie das nochmal ging aber da konnte mir zumindest bisher immer geholfen werden

#

Aber an dem letzten Ding da werd ich alt oder wie? 😂

#

Ich glaub echt bevor ich das hinbekomme bin ich gestorben 😂

#

Aber es MUSS ja irgendwie möglich sein

#

Beim programmieren gibt es im Prinzip kein geht nicht

#

Naja ich geh jetzt mal eine rauchen vllt fällt mir dann noch was ein

#

Bis in 5 Min

tawdry leaf
civic granite
#

Im Prinzip haste recht aber wenn man schon seit 7 Jahren raucht ist es leider schwer aufzuhören

tawdry leaf
civic granite
#

Versuche es ja immer wieder erst vor 2 Wochen wollte ich komplett Cut machen Kalten Entzug

#

Am Abend des selben Tages hatte ich dann wieder ne Kippe im Mund

#

Naja vielleicht irgendwann mal

tawdry leaf
civic granite
#

Ich weiß sind "nur" 7 Jahre es gibt Menschen die haben 40 Jahre geraucht und von heute auf morgen aufhören können

#

Aber ich kann es nich

#

Bin wieder da

#

Und das ohne jegliche Idee

#

Test = []

Wäre es so eine Möglichkeit?

#

Dass ich die Zahl da reinpacke?

#

bzw die kundennr

#

@tawdry leaf 😅
Sorry falls ich störe oder nerve 😅

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @civic granite, du bist jetzt Level 10 🎉

Du hast insgesamt 485 Nachrichten geschrieben.

Du hast <@&1032921984612433952> erhalten!

tawdry leaf
civic granite
#

Perfekt dann hast genau so viel Ahnung wie ich 😂

#

Ne funktioniert auch nich -_-

#

Maaaan

tawdry leaf
civic granite
#

?

tawdry leaf
#

fpr wasn

tawdry leaf
#

welchen

#

modal

civic granite
tawdry leaf
#

self.message.value

civic granite
tawdry leaf
#

meine bei meiner msg xD

#

grad schlecht

#

bei description vom embed

#

das machst du doch?

#

warte

#

bei button_callback

#

send_modal

#

send_modal ist es aber ka wie des bei py-cord ist

#

ne

tawdry leaf
#

also bei discord.py ist es so das man es wie eine normale msg macht nur eben statt send_message send_modal

lucid furnace
#

wie lad ich was aus meiner config.json also jz den token aber ja

lucid furnace
#

hab schon ist egal

civic granite
#

Hey Freunde:

Folgendes ich habe 2 Bestellungen gemacht
Und hab mir dann die Bestellungen anzeigen lassen wollen allerdings zeigt er mir nur eine an?
Woran könnte das liegen?

Mehr Details entnehme bitte den Bildern.
Es gab keinen Error

civic granite
#

Hm beim anderen ging es aber auch

#

Ah oke

#

Habs gefunden

#

Habs beim anderen mit desc += gemacht

#

Also die for schleife war schon da nur hat es halt jedes mal überschrieben

urban glen
#

könnte deine hilfe gebrauchen daru

#

m

tawdry leaf
#

😮

urban glen
#

du weiß ja diesen bot status video von timo wie kann ich es machen das der status sich nur für den einen server ändert ? oder geht das überhaup?

tawdry leaf
#

der bot kann nur bei allen server des gleiche anzeigen

#

wie ein normaler user eben

urban glen
#

wie kann ich es dann so machen das nur der owner (nur der der den bot gemacht hat) acces zu den command hat

#

da muss ich irgendwie auf meine discord id zugreifen glaube ich

tawdry leaf
#

ich benutze dazu einfach @commands.is_owner()

urban glen
#

so dumm bin ich nicht

#

doch

#

ich bin dumm

#

ist doch richtig

#

dachte man muss da ein if statement benutzen

urban glen
#

wie mach ich so was 😭

tawdry leaf
urban glen
#

sag mal

urban glen
tawdry leaf
#

gibt es bestimmt günstiger xD

burnt prairieBOT
#
tawdry leaf
#

da ist ein video

urban glen
#

easy pil hört sich an wie diese drogen von berlin bf

urban glen
tawdry leaf
urban glen
#

ich glaube ich muss den easy pil code als ein variable machen und im embed code schreibe
embed.set_image(test)

#

oder?

#

bitte antworte peepokay

#

huch

#

es ist 3 uhr

#

error während ic versuche easy_pil zu installieren

#

auf der keksbot hosting website geht es aba

#

gn

tawdry leaf
#

Kann den am Handy nd sehen

urban glen
#

Ja

urban glen
#

warum pingt der bot nicht

obtuse estuary
#

Weil das eventuell in den Server Einstellungen aus gemacht wurde

urban glen
#

nein

#

hab alles gecheckt

obtuse estuary
#

Hm

urban glen
#

hab extr administrator rolle auch gemacht

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @brave flower, du bist jetzt Level 12 🎉

Du hast insgesamt 734 Nachrichten geschrieben.

urban glen
#

hööö

#

ich hab keine everyone rolle

obtuse estuary
#

Dann weiß ich es auch nicht

obtuse estuary
urban glen
#

hää

#

wie soll ich die jetzt wieder machen?

#

._.

#

jetzt ist sie wieder da ._.

#

der bot hat ein fehler

#

ich kann pingen

obtuse estuary
#

Perfekt

urban glen
#
welcome =background = Editor(Canvas((900, 270), "#23272a"))
profile = Editor("assets/pfp.png").resize((200, 200)).circle_image()

# For profile to use users profile picture load it from url using the load_image/load_image_async function
# profile_image = load_image(str(ctx.author.avatar_url))
# profile = Editor(profile_image).resize((150, 150)).circle_image()


# Fonts to use with different size
poppins_big = Font.poppins(variant="bold", size=50)
poppins_mediam = Font.poppins(variant="bold", size=40)
poppins_regular = Font.poppins(variant="regular", size=30)
poppins_thin = Font.poppins(variant="light", size=18)

card_left_shape = [(0, 0), (0, 270), (330, 270), (260, 0)]

background.polygon(card_left_shape, "#2C2F33")
background.paste(profile, (40, 35))
background.ellipse((40, 35), 200, 200, outline="white", stroke_width=3)
background.text((600, 20), "WELCOME", font=poppins_big, color="white", align="center")
background.text(
    (600, 70), "Shahriyar#9770", font=poppins_regular, color="white", align="center"
)
background.text(
    (600, 120), "YOU ARE MEMBER", font=poppins_mediam, color="white", align="center"
)
background.text(
    (600, 160), "GUILD 4359", font=poppins_regular, color="white", align="center"
)
background.text(
    (620, 245),
    "THANK YOU FOR JOINING. HOPE YOU WILL ENJOY YOUR STAY",
    font=poppins_thin,
    color="white",
    align="center",
)

background.show()```
#

welcome ist die variable

#

oder muss ich das in eine file reinpacken die ich dann erwähnen muss?

#

(wird ein welcome banner im embed)

obtuse estuary
urban glen
#

nach async def kommt doch der code name

obtuse estuary
#

Genau

urban glen
#

bin grad verwirrt

obtuse estuary
#
 async def code(parameter)
Code```
#

Bin gerade am Handy deswegen kann ichs schlecht erklären

urban glen
#

kennst du vllt ein video oder so wo ich es erklärt bekomme peeposhy

obtuse estuary
#

Vielleicht musst du gucken

#

Kannst ja mal suchen Python funktionen

#

Oder so

mystic flower
#
 
async def code(parameter)
Code```
urban glen
#

dachte der code ist falsch

#

der typ geiert auf die farben

obtuse estuary
mystic flower
urban glen
#

digga chatgpt benutzt py-cord 0.1 oder so

#

hat der anders reingeschissen

urban glen
dense magnet
onyx wave
#

Meine frage an @solid ingot wie kriegt man hin das in embed.add_field unter value= Farbig wird? wie bei dir ist🙂 Bild

dense magnet
onyx wave
#

okay sry

#

ich hab unter Pycord gesucht nix gefunden. Weißt du wie man es hinbekommt?

dense magnet
onyx wave
#

unter ID, LEVEL und XP die Zahlen.

dense magnet
#

Das dir Zahlen Farbig werden?

#

meinst du sowas?

onyx wave
#

genau

dense magnet
onyx wave
#

wie meinst ```py
@slash_command(description='User Xp Level Information')
async def rank(self, ctx):
xp = await self.get_xp(ctx.author.id)
lvl = self.get_level(xp)
embed = discord.Embed(
title=f"RANK INFROMATION ! {ctx.author}", description='', color=0x05fa05)
embed.add_field(name=' ** ⚡ - ID - ⚡ ** ', value=f' {ctx.author.id} ', inline=True)
embed.add_field(name='📈 LEVEL', value=f' {lvl} ', inline=True)
embed.add_field(name='⚔️ XP', value=f' {xp} \n', inline=True)

    embed.timestamp = datetime.now()
    embed.set_thumbnail(url=ctx.author.avatar.url)
    await ctx.respond(content=f"{ctx.author.mention}", embed=embed)
#

das ist der code abschnitt von rank abfrage

#

unter value= sollte was noch rein

solid ingot
#

Farben kannst du zum Beispiel erreichen, indem du bestimmte Programmiersprachen bei den codeblöcken angibst, zB mit ```yaml

urban glen
solid ingot
#

das Profilbild kannst du direkt laden ohne datei

burnt prairieBOT
#
solid ingot
#

benutze die Antwortfunktion aber bitte zum antworten, nicht zum pingen

urban glen
#

dann ist es so richtig?

solid ingot
#

probier's aus, dann siehst du ja direkt obs richtig ist

urban glen
#

ich hab ein problem mit easy-pil zu installieren muss keksbot hosting website benutzen und das starten dauert übels lang

solid ingot
#

du kannst durch die Server in einer for schleife durchgehen

#

bot.guilds bzw self.bot.guilds

ruby sparrow
#

kannst du ein sagen

#

timo

#

@solid ingot

solid ingot
#

ein

ruby sparrow
#

mehr bilder

solid ingot
#

dazu habe ich ein Video gemacht

ruby sparrow
floral monolith
ruby sparrow
#

weiss ein wurde warum nicht import

urban glen
#

Reinstall easypil or check if its correctly in the interpeter settings

urban glen
ruby sparrow
urban glen
ruby sparrow
ruby sparrow
#
async def afk(ctx, *, grund=None, _afk=None):
    member = ctx.author
    current_name = member.display_name

    if member == ctx.guild.owner:
        return

    if member.id in _afk:
        _afk.remove(member.id)

        await member.edit(nick=current_name[5:])
        await ctx.send(f'{member.mention} ist wieder da!')

    else:
        _afk.append(member.id)
        await ctx.send(f'{member.mention} Ist jetzt AFK. Grund: {grund}')
        await ctx.respond("Du bist nun AFK!", ephemeral=True)
        await member.edit(nick=f'[AFK] {member.display_name}')

        await ctx.respond(embed=embed)

@bot.event
async def on_message(message, _afk=None, ctx=None):
    if message.author.bot:
        return

    for mention in message.mentions:
        if mention.id in _afk:
            await message.reply(f'{mention.display_name} ist gerade AFK!')

    await bot.process_commands(message)

    await bot.process_commands(message)

    ```await ctx.respond(embed=embed)
obtuse estuary
#

Kannst du mir mal nh screenshot schicken?

#

Bin am Handy

ruby sparrow
#

ja

obtuse estuary
#

Ja du kannst nicht 2 mal responden

solid ingot
#

doch peeposhy

obtuse estuary
#

Oh oki

#

Warte aber man kann nicht ctx.send machen oder?

solid ingot
#

doch, aber man muss trotzdem responden

obtuse estuary
#

☹️

solid ingot
#

@ruby sparrow wenn eine deiner If Bedingung true wird, hast du keine response. dann wird also auch nicht geantwortet

solid ingot
#

bei allen fällen

#

wenn du einfach Return machst wird natürlich auch keine Antwort gesendet

ruby sparrow
#

also

ruby sparrow
solid ingot
#

bin nicht zu hause

ruby sparrow
obtuse estuary
#

Nein vor dem return musst du noch einmal responden

obtuse estuary
ruby sparrow
obtuse estuary
#

Nein… await ctx.respond….

ruby sparrow
#

ja

#

sry

obtuse estuary
#

Bitte guck dir noch mal die ersten vids von coding keks an

solid ingot
#

wieso änderst du was am on message Event, hattest du nicht gefragt wieso dein slash command nicht funktioniert?

urban glen
#

was soll ich mit den bild der von easy-pil code rausgekommen ist tuen

burnt prairieBOT
#
obtuse estuary
urban glen
obtuse estuary
#

Ok

urban glen
#

ey timo wie kann ich den pixel ungefähr bei einen image finden?

solid ingot
#

zeige ich im video

urban glen
#

nein

solid ingot
urban glen
#

ich weiß aber ich meine direkt

#

also ungefähr

solid ingot
#

paint

urban glen
#

wie mache ich ein easy-pil bild in ein embed

ivory orchid
#

Hey. Wie kann ich nen Namen von nem user, der mein Modal gerade ausfüllt, abgreifen und in ner embed nach dem abschicken wiedergeben?

#

Soll ne mention im embed werden ^^

solid ingot
#

auf den user kannst du mit interaction.user zugreifen, und mention dann mit interaction.user.mention

ivory orchid
#

An welcher stelle müsste ich denn das ganze einfügen? Hab noch nicht die lange python Erfahrung. Ich hangel mich da seit Stunden langsam mit deinen Tutorials durch ^^

        embed = discord.Embed(
            title="Testtitle",
            color=discord.Color.green()
        )
        embed.add_field(name="test1:", value=self.children[0].value, inline= False)
        embed.add_field(name="test2:", value=self.children[1].value, inline= False)
        embed.add_field(name="test3:", value=self.children[2].value, inline= False)
        await interaction.response.send_message(embed=embed)```

Ist das dann überhaupt im callback einzufügen?
limpid wolf
#

naja da wo du das stehen haben möchtest

#

wenn du z.b. in der description stehen haben möchtest machst du:

description='{interaction.user.mention} hat das Modal benutzt',
ivory orchid
#

Super! Das hat schonmal funktioniert. Vielen Dank!

ivory orchid
#

Was muss ich denn anfügen wenn ich dem User, der das modal ausgefüllt hat eine Rolle zuweisen will? Funktioniert das mit „await interaction.user.add_role (roleID)? Oder muss man das anders machen?

wise stone
quiet socket
#
      async def callback(self, interaction):
        if self.values[0] == 'Bewerbung':
            await interaction.response.send(Bewerbung())
        elif self.values[0] == 'Sponsering':
            await interaction.response.send(Sponsering())
        elif self.values[0] == 'Allgemeiner Support':
            await interaction.response.send(Allgemeiner_Suppport())
        elif self.values[0] == 'Bug Report':
            await interaction.response.send(Bug_Report())
        elif self.values[0] == 'User Report':
            await interaction.response.send(User_Report())
        elif self.values[0] == 'Admin Ticket':
            await interaction.response.send(Adminticket())
#

wie kann ich ein modal in einem Select absenden?

#

bei send_modal kommt ein error

solemn musk
#
  File "/home/container/.local/lib/python3.10/site-packages/discord/ext/tasks/__init__.py", line 169, in _loop
    await self.coro(*args, **kwargs)
  File "/home/container/cogs/Key.py", line 113, in check_expiry
    expiry = datetime.datetime.strptime(user[4], "%Y-%m-%d %H:%M:%S")
IndexError: tuple index out of range```

code ```py
    @tasks.loop(minutes=5)
    async def check_expiry(self):
        async with aiosqlite.connect("database.db") as db:
            now = datetime.datetime.utcnow()
            cursor = await db.execute("SELECT * FROM users WHERE redeemed = TRUE")
            users = await cursor.fetchall()
            for user in users:
                expiry = datetime.datetime.strptime(user[4], "%Y-%m-%d %H:%M:%S")
                if expiry < now:
                    guild = self.bot.get_guild(1093476234538799195)
                    member = guild.get_member(user[1])
                    role = discord.utils.get(guild.roles, name="Basic Users")
                    await member.remove_roles(role)
                    await db.execute(
                        "UPDATE users SET redeemed = FALSE, expiry = NULL WHERE user_id = ?",
                        (user[1],),
                    )
                    
                    # Send message and ping user in channel
                    channel = self.bot.get_channel(1094667794768994404) # replace with appropriate channel ID
                    await channel.send(f"Hey {member.mention}, the code has expired. **Please renew it!**")
                    
                    # DM user about renewing code
                    user_id = 1074232009196580905 # replace with appropriate user ID
                    user = self.bot.get_user(user_id)
                    if user:
                        dm_channel = await user.create_dm()
                        await dm_channel.send("Hey there, the code has expired. **Please renew it by typing /code_assign! and put it on linkvertise and send the linkvertise link in key updates**")
            await db.commit()```
snow hatch
#

Hey
bei der Rank Nachricht ist der Text ja hier blau
Wie geht das, das der Text eine andere Farbe hat?

solemn musk
obtuse estuary
obtuse estuary
#

Habe ich im Internet gefunden

#

Aber du musst gucken ob das so ganz funktioniert

solemn musk
#
Blau
#
blau```
#
Blauer Text
#

geht nd @obtuse estuary

#

und gibts das noch in dark theme

obtuse estuary
snow hatch
#

Probier ich nachher nochmal aus danks

obtuse estuary
#

👍

solemn musk
#

ich hab doch gesagt geht nd

#

warte ich guck andere farbe

snow hatch
#

Vielleicht geht das nur in embeds

solemn musk
#
Grün```
#
Grün```
solemn musk
solemn musk
#

@snow hatch ich weiss wie du blauen text machst aber dan hast du sein # da vor

snow hatch
#

Wie?

solemn musk
snow hatch
#

Kp
Sehe am Handy gerade nuchts

ivory orchid
#

Hey. Ich hab ein modal in nem cog das mit nem Button aufgeht. Nun ist der Button nach jedem Neustart neu zu generieren. Gibts eine Möglichkeit den nach einem Neustart automatisch wieder aktiv zu schalten?

obtuse estuary
#

Ja

obtuse estuary
#

Das wird in dem Video erklärt

solemn musk
#

ooh das muss ich auch noch gucken

ivory orchid
#

Ah super. Dann schau ich mir das später mal an. Danke 🙂

snow hatch
solemn musk
snow hatch
#

Aber das # wird dann ja mitgesendet
Muss ja was geben womit es nicht gesendet wird

snow hatch
#

danke!

obtuse estuary
limpid wolf
limpid wolf
solemn musk
#
Test
#

aja

ivory orchid
#

Wie bekomme ich denn das embed in nen anderen channel?

        await interaction.response.send_message(embed=embed)```
solemn musk
#

das embed

#

channel = self.bot.fetch_channel(CHANEL_ID)
await channel.send(embed=EMBED_NAME)

snow hatch
# solemn musk aja
Ich bin Bunt
#

klappt wie geil

ivory orchid
solemn musk
ivory orchid
#

Hätte gedacht das muss mit rein, wenn das embed von nem modal kommt.

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @ivory orchid, du bist jetzt Level 3 🎉

Du hast insgesamt 19 Nachrichten geschrieben.

solemn musk
#

aso wenns davon kommt habe ich keine ahnung, ich kenne mich nicht mit buttons, modals etc aus lol

#

ich muss noch die vids von timo gucken

ivory orchid
#

Das geht garnicht. Hab das jetzt so gelöst:

        await channel.send(embed=embed)
        await interaction.response.send_message(embed=embed, ephemeral=True)```
solemn musk
#
from discord.ext import commands
from discord.commands import slash_command


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

    @slash_command()
    async def button1(self, ctx):
        await ctx.respond("Click here", view=View)


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


class View(discord.ui.View):
    @discord.ui.button(
        label="Click here",
        style=discord.ButtonStyle.primary,
        emoji="![CH_FlamePurple](https://cdn.discordapp.com/emojis/1093503752704622613.webp?size=128 "CH_FlamePurple")",
    )
    async def button_callback(self, button, interaction):
        await interaction.response.send_message(
            "Hey! Thank you that you clicked me, I was starting to get lonely\n\nHeres a cookie because you clicked me ![keks](https://cdn.discordapp.com/emojis/1010921670862708767.webp?size=128 "keks")"
        )

error ```Ignoring exception in command button1:
Traceback (most recent call last):
File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 124, in wrapped
ret = await coro(arg)
File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 978, in _invoke
await self.callback(self.cog, ctx, **kwargs)
File "C:\Dev\Lunar\cogs\Button.py", line 12, in button1
await ctx.respond("Click here", view=View)
File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\context.py", line 282, in respond
return await self.interaction.response.send_message(
File "C:\Dev\Lunar\venv\lib\site-packages\discord\interactions.py", line 789, in send_message
payload["components"] = view.to_components()
TypeError: View.to_components() missing 1 required positional argument: 'self'

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

Traceback (most recent call last):
File "C:\Dev\Lunar\venv\lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
await ctx.command.invoke(ctx)
File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 375, in invoke
await injected(ctx)
File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 132, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: View.to_components() missing 1 required positional argument: 'self'```

solid ingot
#

hinter view=View() fehlen die runden klammern

solemn musk
burnt prairieBOT
#
Keks-Überweisung

@solemn musk hat @solid ingot 1 keks geschenkt!

Timo hat jetzt 13,039 keks

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


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

    @slash_command()
    async def modal(self, ctx):
        modal = Modal2(title="Create an Embed!")
        await ctx.send_modal(modal)


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


class Modal2(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Embed Title", placeholder="The title of the embed"
            )
            *args,
            **kwargs
        )
Traceback (most recent call last):
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "C:\Dev\Lunar\cogs\Modal.py", line 12, in modal
    modal = Modal2(title="Create an Embed!")
  File "C:\Dev\Lunar\cogs\Modal.py", line 23, in __init__
    discord.ui.InputText(
TypeError: can't multiply sequence by non-int of type 'InputText'

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

Traceback (most recent call last):
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 375, in invoke
    await injected(ctx)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 132, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: can't multiply sequence by non-int of type 'InputText'```
#
Traceback (most recent call last):
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 124, in wrapped
    ret = await coro(arg)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 978, in _invoke
    await self.callback(self.cog, ctx, **kwargs)
  File "C:\Dev\Lunar\cogs\Modal.py", line 12, in modal
    modal = Modal2(title="Create an Embed!")
  File "C:\Dev\Lunar\cogs\Modal.py", line 29, in __init__
    style=discord.ui.InputTextStyle.long,
AttributeError: module 'discord.ui' has no attribute 'InputTextStyle'

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

Traceback (most recent call last):
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\bot.py", line 1114, in invoke_application_command
    await ctx.command.invoke(ctx)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 375, in invoke
    await injected(ctx)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\commands\core.py", line 132, in wrapped
    raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: module 'discord.ui' has no attribute 'InputTextStyle'```

code ```py
import discord
from discord.ext import commands
from discord.commands import slash_command


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

    @slash_command()
    async def modal(self, ctx):
        modal = Modal2(title="Create an Embed!")
        await ctx.send_modal(modal)


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


class Modal2(discord.ui.Modal):
    def __init__(self, *args, **kwargs):
        super().__init__(
            discord.ui.InputText(
                label="Embed Title", placeholder="The title of the embed"
            ),
            discord.ui.InputText(
                label="Embed Description",
                placeholder="The description of the embed",
                style=discord.ui.InputTextStyle.long,
            ),
            *args,
            **kwargs
        )


    async def callback(self, interaction):
        e = discord.Embed(
            title=self.children[0].value,
            description=self.children[1].value,
            color=discord.Color.blurple()
        )

        await interaction.response.send_message(e)

        ```
#

das hast du so im vid gezaigt 🤷‍♂️

#

und es hat auch so geklappt

#

ne modals

#

oh huch

#

timo bei mir wird sowas gesendet <discord.embeds.Embed object at 0x000001D57D8E9510> und nicht das embed

#

ah ne nvm

solemn musk
obtuse estuary
#

Supi

vivid sky
#

ist es normal das ich hier kein error bekomme?

        if discord.UserFlags.partner in member.public_flags:
            role = guild.get_role(1018231774435868823)
            await member.add_roles(role)

        if discord.UserFlags.verified_bot_developer in member.public_flags:
            role1 = guild.get_role(1094781639109902346)
            await member.add_roles(role1)

        if discord.UserFlags.early_supporter in member.public_flags:
            role3 = guild.get_role(1094822334512246825)
            await member.add_roles(role3)
floral monolith
wise stone
#

versuchs Mal mit prints

urban glen
snow hatch
#
Ich bin Bunt
vivid sky
solemn musk
urban glen
#

mit yaml

#

```yaml
text
```

wise stone
solemn musk
#
abc123```
#

ah ok

vivid sky
vivid sky
#

in bio

#
Ignoring exception in on_member_join
Traceback (most recent call last):
  File "/home/container/.local/lib/python3.10/site-packages/discord/client.py", line 377, in _run_event
    await coro(*args, **kwargs)
  File "/home/container/commands/join_role.py", line 27, in on_member_join
    if discord.UserFlags.active_developer in member.public_flags:
AttributeError: type object 'UserFlags' has no attribute 'active_developer'
wise stone
#

sollte gehen

vivid sky
#

ist auch nicht blau

#

@wise stone kannst du kurz joinen?

solemn musk
#

@solid ingot sorry für ping aber wie soll ich wissen wie was geht in ezcord

#

ok

vivid sky
solemn musk
mental hamlet
#

Den von ezcord

solemn musk
#

ne

mental hamlet
#

dann ist das dein Problem wenn du nicht lernen willst peeposlurp

mental hamlet
restive herald
#

hey hey, will bei ner datenbank nen boolean eingeben... weiß jmd wie ich das mache? muss ich da eif True bei Value angeben oder 1 für true 0 für false?

solid ingot
#

welche datenbank nutzt du denn? bei den meisten wird das als INTEGER gemacht

obtuse estuary
restive herald
#

sqlite3 nutze ich. hab ich auch zuerst gemacht das ich das so hatte:

        await db.execute(
                """
                CREATE TABLE IF NOT EXISTS secon (
                server_id STR PRIMARY KEY,
                lr1 STRING,
                lr2 STRING ,
                lr3 STRING,
                lr4 STRING,
                lr5 STRING,
                language STRING,
                disabled INT DEFAULT 0,
                )
                """
            )

Und dann halt mit

await db.execute("UPDATE secon disabled = 1")

das updaten zu 1

solid ingot
#

ja

#

STRING gibt bei standardmäßig bei sqlite nicht, da würde ich TEXT empfehlen, und die server_id kannst du zb als integer abspeichern

restive herald
solid ingot
#

ah ja, bei den slash commands geht es nicht als int, bei sqlite aber schon

restive herald
#

deswegen hab ich STR hingeschrieben

#

aber ich ersetze es mal durch TEXT

#

ach ne warte ich merks xD

restive herald
# solid ingot ja

also wenn ich z.b. jtzt machen will das etwas true oder false ist kann ich das so machen oder:

        async with aiosqlite.connect(self.DB) as db:
            await db.execute(
                """
                CREATE TABLE IF NOT EXISTS beispiel (
                wert INT DEFAULT 0)""")


Erstes Einfügen zu richtig: 
        async with aiosqlite.connect(self.DB) as db:
            await db.execute("INSERT INTO beispiel (wert) VALUES (1))")

überprüfen obs richtig oder falsch ist

                async with aiosqlite.connect(self.DB) as db:
                  async with db.execute("SELECT wert FROM beispiel") as cursor:
                result = await cursor.fetchone()
                if result == 1:
                  print("Wert ist Richtig")
reef wing
#

Hallo, wieso kommt bei meinem Bot dieser Fehler?
Application Command raised an exception: Forbidden: 403 Forbidden (error code: 50001): Missing Access

Der Bot hat Adminrechte

restive herald
reef wing
restive herald
reef wing
vivid sky
restive herald
#

wobei kam der error denn? wenn du nen command ausführen wolltest?

restive herald
reef wing
restive herald
obtuse estuary
restive herald
#

war der fehler in ner bestimmten zeile?

reef wing
vivid sky
#

Hast du den richtigen Channel angegeben? und hat der Bot alle rechte?

restive herald
#

bot hat adminrechte

#

laut ihm

#

ig is nen falscher kanal

vivid sky
#

Wie sieht die main.py aus vielleicht hast du keine intents?

reef wing
#

Habe die Falsche Channel ID kopiert

vivid sky
reef wing
#

Danke für die Hilfe

restive herald
vivid sky
solemn musk
vivid sky
reef wing
solid ingot
#

create_instant_invite

urban glen
solid ingot
urban glen
#

Ah timo war schneller

solemn musk
#

moin, weiss wer was ich zu mein bot hinzufühgen kann etwas was ich noch nicht getan habe(moderation usw hab ich schon)

snow hatch
solemn musk
# snow hatch

meinst du sowas wie client = discord.Bot() is das gleiche als bot = discord.Bot() ja

snow hatch
#

nein meine sachen wie z.b die discord.VoiceClient sachen

#

da ich mir da jetzt unsicher bin ob ich damit auch den status von usern herausfinden kann

solid ingot
# snow hatch

discord.Bot und discord.Client unterscheiden sich, weil discord.Client sehr veraltet ist und discord.Bot nicht.

discord.VoiceClient hat aber nichts mit Bot oder Client zu tun, das heißt einfach so

snow hatch
#

achso

#

sollte man bei einem voice leveling system eher mit connect und disconect arebeiten oder on_voice_state_update?

restive herald
reef wing
#

Eine Frage:
Wie kann man ein Ticketsystem erstellen?

restive herald
#

also was alels drin sein muss?

reef wing
restive herald
#

mom.

#

ich habs so das ich nen embed mit nem command schicke, das embed hat nen button wo wenn man draufklickt nen channel (das ticket) erstellt wird, wenn man darein geht kann man sich die ticketregeln durchlesen ticket claimen und schließen. man kann auch noch log etc. hinzufügen

#

ich hab noch nen anderen command mit dem man ticket konfiguriert weil mein system auf verschiedenen servern verwendet werden können soll

restive herald
reef wing
restive herald
#

schade

reef wing
restive herald
#

hmm das mies

burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @restive herald, du bist jetzt Level 7 🎉

Du hast insgesamt 153 Nachrichten geschrieben.

snow hatch
#

moin was mache ich falsch das ich kein xp kriege? Datenbank wird in einer anderen klasse erstellen ```py
class VoiceLeveling(commands.Cog):
def init(self, bot):
self.bot = bot

async def on_voice_state_update(self ,member, before, after):
    data = dict()
    await self.check_user(member)
    xp = 10
    minutes = (time.time() - data[member.id]) // 60
    async with aiosqlite.connect(self.DB) as db:
        await db.execute(
            f"UPDATE users SET  xp = xp + (? * {minutes}) WHERE user_id = ?", (xp,member.id)
        )
        await db.commit()
restive herald
#

also du hast komma statt punkt gesetzt ig

snow hatch
#

ah fu**

#

danke

#

ne

restive herald
#

gerne xD

snow hatch
#

ist schon richtig

#

das frage zeichen ist die xp

restive herald
#

ah

#

macht sinn

snow hatch
#

und member id das zweite ?

snow hatch
restive herald
#

ich schau mal

#

kenn mich nd mit voice aus arbeite gerade erst am normalem

restive herald
snow hatch
#

weiß ich auch nicht

restive herald
#

weil wozu gibts sonst das system mit ?

snow hatch
#

habe nicht soviel erfahrung mit db

solemn musk
solemn musk
#

wie vergibt maan nh rolle wenn man auf ein button drückt

solemn musk
restive herald
snow hatch
restive herald
#

in #1027677692730036294 gibts nen paar rr codes da kannst schauen

snow hatch
burnt prairieBOT
#
Level Up!

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

Du hast insgesamt 793 Nachrichten geschrieben.

Du hast <@&1024276907136663562> erhalten!

restive herald
#

@solemn musk internet leider zu schlecht

restive herald
#

ich mach das lvl system eif komplett neu

#

kann dich ja fragen bei db fragen

solemn musk
#

benutzt aiosqlite das ist besser peepokek

restive herald
#

sqlite3 👀

solemn musk
#

aiosqlite

urban glen
#

aiosqlite basiert auf sqlite3
ist nur asyncron

also ist aiosqlite einfach nur asynchrones sqlite3

restive herald
#

benutze das was timo im tuto benutzt xD

solemn musk
burnt prairieBOT
#
Level Up!

Herzlichen Glückwunsch @solemn musk, du bist jetzt Level 6 🎉

Du hast insgesamt 144 Nachrichten geschrieben.

restive herald
vivid sky
#

was heißt das?

#

lol

solid ingot
#

das heißt genau das was da steht

urban glen
#

du hast zu viele requests an die discord api geschickt

vivid sky
urban glen
#

hast jetzt nen api ban

urban glen
vivid sky
#

Komischer weiße sind meine beiden bots Offline

urban glen
#

< HTTP/1.1 429 TOO MANY REQUESTS
< Content-Type: application/json
< Retry-After: 65
< X-RateLimit-Limit: 10
< X-RateLimit-Remaining: 0
< X-RateLimit-Reset: 1470173023.123
< X-RateLimit-Reset-After: 64.57
< X-RateLimit-Bucket: abcd1234
< X-RateLimit-Scope: user
{
  "message": "You are being rate limited.",
  "retry_after": 64.57,
  "global": false
}
storm seal
#

wie heißt nochmal das Statement wenn der User was an seinem Profil ändert

urban glen
storm seal
urban glen
#

bin nicht sicher, aber vermute before und after

storm seal
#

alles gut habe es gefunden

storm seal
urban glen
restive herald
#

TEXT glaube

urban glen
urban glen
solemn musk
vivid sky
#

?

solemn musk
#

ka 30min her

burnt prairieBOT
solemn musk
#

Wie gebe ich jemand eine role wenn er ein button drückt

urban glen
solemn musk
urban glen
#

Wie meinst du wie normal?

solemn musk
# urban glen ?

ja normal halt also

role = self.bot.get:role(ROLE_ID)
await member.add_roles(role)

urban glen
urban glen
#

was ja oder nein?

solemn musk
urban glen
solemn musk
#
Traceback (most recent call last):
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Dev\Lunar\cogs\Button.py", line 29, in button_callback
    role = self.bot.get_role(1095093132397379624)
AttributeError: 'View' object has no attribute 'bot'```

```py
class View(discord.ui.View):
    @discord.ui.button(label="Verifizier", style=discord.ButtonStyle.success, emoji="✅")
    async def button_callback(self, button, interaction):
        e = discord.Embed(title="Erfolgreich verifiziert", color=discord.Color.green())
        await interaction.response.send_message(embed=e)
        role = self.bot.get_role(1095093132397379624)
        await interaction.add_roles(role)
tawdry leaf
#
@client.tree.command()
async def userinfo(interaction:discord.Interaction, member:discord.Member=None):
    if member is None:
        member=interaction.user
    userstatus = interaction.guild.get_member(member.id).status
    banner_user = interaction.guild.get_member(member.id)
    rlist = []
    for role in member.roles:
        rlist.append(str(role.mention))

    rlist.reverse()

    embed = discord.Embed(title=f"Userinfo über {member.display_name}", color=0x5965f2)
    embed.add_field(name="Name:", value=f"{member}")
    embed.add_field(name="Nickname", value=f"{member.nick}" if member.nick else "hat keinen Nickname",inline=True)
    embed.add_field(name="Display Name", value=f"{member.display_name}")
    embed.add_field(name="Farbe", value=f"{member.colour}")
    # embed.add_field(name="Aktivität", value=f"{str(member.activity.type).title().split('.')[1]} "
    #                                             f"{member.activity.name}" if member.activity is not None
    #                                             else "nicht gegeben", inline=False)
    embed.add_field(name="Erwähnung", value=f"{member.mention}")
    embed.add_field(name="Status:", value=userstatus)
    embed.add_field(name="Booster", value=f"Ja" if member.premium_since else "Nein")
    embed.add_field(name="Höchste Rolle", value=f"{member.top_role.mention}")
    embed.add_field(name="Bot:", value=f'{("Ja" if member.bot else "Nein")}')
    embed.add_field(name="Server beigetreten:", value=f"<t:{int(member.joined_at.timestamp())}:R>")
    embed.add_field(name="Discord beigetreten:", value=f"<t:{int(member.created_at.timestamp())}:R>")
    embed.add_field(name=f"Rollen: {len(member.roles) - 1}", value=','.join(rlist))
    embed.add_field(name="Aktivität",value=member.activities)
    embed.set_author(name=f"{member}", icon_url=f"{member.display_avatar}")
    embed.set_image(url=banner_user.banner)
    embed.set_thumbnail(url=f"{member.display_avatar}")
    embed.set_footer(text=f'Angefragt von {interaction.user.name}{interaction.user.id}', icon_url=interaction.user.display_avatar)
    await interaction.response.send_message(embed=embed)```
Jemand eine Idee wieso da dann nur () Kommen bei der Aktivität
solid ingot
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
tawdry leaf
#

müsste des sein?

tawdry leaf
#

asoo xD

solid ingot
#

das hier @solemn musk

tawdry leaf
solemn musk
solid ingot
#

brauchst presence intent

tawdry leaf
#

meinst du die?

solid ingot
#

ja

tawdry leaf
#

hatte ich schon an

solid ingot
#

auch im code?

tawdry leaf
#

liegt nd daran

tawdry leaf
solid ingot
#

siehste

tawdry leaf
#

ging früher ohne 🙂

solid ingot
#

früher als es noch keine intents gab

tawdry leaf
tawdry leaf
solemn musk
#
Traceback (most recent call last):
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\ui\view.py", line 414, in _scheduled_task
    await item.callback(interaction)
  File "C:\Dev\Lunar\cogs\Button.py", line 33, in button_callback
    await interaction.user.add_roles(role)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\member.py", line 1007, in add_roles
    await req(guild_id, user_id, role.id, reason=reason)
  File "C:\Dev\Lunar\venv\lib\site-packages\discord\http.py", line 365, in request
    raise Forbidden(response, data)
discord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions```

ich check nicht warum er das sagt der bot hat alle rechte
solid ingot
#

auch mit allen rechten gibt es einschränkungen bei rollenverteilung

tawdry leaf
#

habs xD

solemn musk
tawdry leaf
solemn musk
#

ne

tawdry leaf
#

also der Bot steht unter dem User in der Hierachie

tawdry leaf
solemn musk
#

also ja ich versuch mir der owner ne rolle zu geben

#

geht das nd?

tawdry leaf
#

hm verstehe nd genau was du meinst

solemn musk
#

ich hab den server gemacht und versuch mir nh rolle zu geben durch ein button geht das

urban glen
#

Wie gette ich nochmal das Server Profilbild

#

ctx.guild.???.url

limpid wolf
urban glen
#

sag es doch einfach

limpid wolf
#

les es doch einfach nach

urban glen
#

du weißt es ja EZ_laugh

#

finde nix

#

dann helf nicht 👍

solid ingot
urban glen
#

OH

#

icon_url

solid ingot
urban glen
#

aber mit icon_url geht es

solid ingot
#

dann solltest du deine version upgraden

tawdry leaf
#

😮

snow hatch
#

Hey, verstehe diesen fehlercodde nicht
C:\Users\gianl\PycharmProjects\discordbot\cogs\task.py:26: RuntimeWarning: coroutine 'Loop.call' was never awaited
self.is_connected()
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

#

@tasks.loop(seconds=1)
    async def is_connected(self, user):
        print("a")```
#

will halt ein leveling system machen deshalb soll er prüfen ob wer im voice ist

mental hamlet
snow hatch
#

was braucht ihr den noch? Es ist ja erstmal eine ganz normale task

#
import discord
from discord.ext import commands, tasks
from cogs.level_system import VoiceLeveling
from cogs.library import Vorlagen
from cogs.embeds import Buttons
from cogs.feedback import FeedbackButton


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

        self.persistent_views_added = False

    @commands.Cog.listener()
    async def on_ready(self):
        self.channel_task.start()
        if not self.persistent_views_added:
            self.bot.add_view(FeedbackButton())
            self.bot.add_view(Buttons())
            self.bot.add_view(Vorlagen())

            self.persistent_views_added = True

        self.deletecommands.start()
        self.is_connected()
    @tasks.loop(minutes=1)
    async def deletecommands(self):
        def is_not_pin(message):
            return not message.pinned

        channel = self.bot.get_channel(962322711554715708)

        await channel.purge(limit=100, check=is_not_pin)```
snow hatch
mental hamlet
#

await fehlt

#

udn was soll self.is_connected()

snow hatch
#

das ist doch der loop name so wie bei on_ready

mental hamlet
#

musst es awaiten

#

steht ja im error

restive herald
#

@crude heath

crude heath
#

thx

burnt prairieBOT
crude heath
#

bei den db videos benutzt timo bei events immer wieder user_id, wo bekommt er die her? 👀

urban glen
#

Meinst du etwa "user_id" im SQL Statement?

crude heath
urban glen
#

Dazu sag ich jetzt nix.

solid ingot
crude heath
solid ingot
#

ja

crude heath
#

d. h. ich kann auch ein guild_id nehmen und das wär dann bei on_message halt eif message.guild.id oder?

solid ingot
#

ja

crude heath
#

danke

reef wing
#

Hallo, wie verwendet man das #💻・cookie-hosting ?

solid ingot
#

hey, bei #💻・cookie-hosting findest du eine anleitung

reef wing
solid ingot
#

alle dateien die du für deinen bot brauchst, plus die requirements datei

reef wing
solid ingot
#

ja

reef wing
#

ok